forked from retoor/devplacepy
Merge branch 'master' into typosaurus/ticket-150
This commit is contained in:
@@ -64,3 +64,56 @@ def test_register_invalid_json_rejected(app_server):
|
||||
headers={"Content-Type": "application/json"},
|
||||
)
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_public_key_endpoint_lists_providers(app_server):
|
||||
r = requests.get(f"{BASE_URL}/push.json")
|
||||
assert r.status_code == 200
|
||||
body = r.json()
|
||||
assert body["publicKey"]
|
||||
assert body["providers"]["webpush"]["publicKey"] == body["publicKey"]
|
||||
|
||||
|
||||
def test_register_accepts_an_explicit_webpush_provider(app_server):
|
||||
s = _session_push()
|
||||
r = s.post(
|
||||
f"{BASE_URL}/push.json",
|
||||
json={
|
||||
"provider": "webpush",
|
||||
"endpoint": "https://push.example.com/explicit",
|
||||
"keys": {"p256dh": "p256dh_fake", "auth": "auth_fake"},
|
||||
},
|
||||
)
|
||||
assert r.status_code == 200, r.text
|
||||
assert r.json().get("registered") is True
|
||||
|
||||
|
||||
def test_register_is_idempotent_for_the_same_subscription(app_server):
|
||||
s = _session_push()
|
||||
body = {
|
||||
"endpoint": "https://push.example.com/idempotent",
|
||||
"keys": {"p256dh": "p256dh_fake", "auth": "auth_fake"},
|
||||
}
|
||||
assert s.post(f"{BASE_URL}/push.json", json=body).status_code == 200
|
||||
assert s.post(f"{BASE_URL}/push.json", json=body).status_code == 200
|
||||
|
||||
|
||||
def test_register_unknown_provider_rejected(app_server):
|
||||
s = _session_push()
|
||||
r = s.post(
|
||||
f"{BASE_URL}/push.json",
|
||||
json={"provider": "carrier-pigeon", "token": "a" * 64},
|
||||
)
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_register_apns_rejected_while_unconfigured(app_server):
|
||||
s = _session_push()
|
||||
r = s.post(f"{BASE_URL}/push.json", json={"provider": "apns", "token": "a" * 64})
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_register_non_object_body_rejected(app_server):
|
||||
s = _session_push()
|
||||
r = s.post(f"{BASE_URL}/push.json", json=["nope"])
|
||||
assert r.status_code == 400
|
||||
|
||||
Reference in New Issue
Block a user