mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2024-11-05 11:03:12 +00:00
90 lines
2.3 KiB
Python
90 lines
2.3 KiB
Python
|
from tests.common import generate_api_query
|
||
|
from tests.conftest import TOKENS_FILE_CONTENTS, DEVICE_WE_AUTH_TESTS_WITH
|
||
|
|
||
|
ORIGINAL_DEVICES = TOKENS_FILE_CONTENTS["tokens"]
|
||
|
|
||
|
|
||
|
def assert_ok(response, request):
|
||
|
data = assert_data(response)
|
||
|
data[request]["success"] is True
|
||
|
data[request]["message"] is not None
|
||
|
data[request]["code"] == 200
|
||
|
|
||
|
|
||
|
def assert_errorcode(response, request, code):
|
||
|
data = assert_data(response)
|
||
|
data[request]["success"] is False
|
||
|
data[request]["message"] is not None
|
||
|
data[request]["code"] == code
|
||
|
|
||
|
|
||
|
def assert_empty(response):
|
||
|
assert response.status_code == 200
|
||
|
assert response.json().get("data") is None
|
||
|
|
||
|
|
||
|
def assert_data(response):
|
||
|
assert response.status_code == 200
|
||
|
data = response.json().get("data")
|
||
|
assert data is not None
|
||
|
assert "api" in data.keys()
|
||
|
return data["api"]
|
||
|
|
||
|
|
||
|
API_DEVICES_QUERY = """
|
||
|
devices {
|
||
|
creationDate
|
||
|
isCaller
|
||
|
name
|
||
|
}
|
||
|
"""
|
||
|
|
||
|
|
||
|
def request_devices(client):
|
||
|
return client.post(
|
||
|
"/graphql",
|
||
|
json={"query": generate_api_query([API_DEVICES_QUERY])},
|
||
|
)
|
||
|
|
||
|
|
||
|
def graphql_get_devices(client):
|
||
|
response = request_devices(client)
|
||
|
data = assert_data(response)
|
||
|
devices = data["devices"]
|
||
|
assert devices is not None
|
||
|
return devices
|
||
|
|
||
|
|
||
|
def set_client_token(client, token):
|
||
|
client.headers.update({"Authorization": "Bearer " + token})
|
||
|
|
||
|
|
||
|
def assert_token_valid(client, token):
|
||
|
set_client_token(client, token)
|
||
|
assert graphql_get_devices(client) is not None
|
||
|
|
||
|
|
||
|
def assert_same(graphql_devices, abstract_devices):
|
||
|
"""Orderless comparison"""
|
||
|
assert len(graphql_devices) == len(abstract_devices)
|
||
|
for original_device in abstract_devices:
|
||
|
assert original_device["name"] in [device["name"] for device in graphql_devices]
|
||
|
for device in graphql_devices:
|
||
|
if device["name"] == original_device["name"]:
|
||
|
assert device["creationDate"] == original_device["date"].isoformat()
|
||
|
|
||
|
|
||
|
def assert_original(client):
|
||
|
devices = graphql_get_devices(client)
|
||
|
assert_original_devices(devices)
|
||
|
|
||
|
|
||
|
def assert_original_devices(devices):
|
||
|
assert_same(devices, ORIGINAL_DEVICES)
|
||
|
|
||
|
for device in devices:
|
||
|
if device["name"] == DEVICE_WE_AUTH_TESTS_WITH["name"]:
|
||
|
assert device["isCaller"] is True
|
||
|
else:
|
||
|
assert device["isCaller"] is False
|