47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
def test_calc_response_contract(client, alter_token, minimal_calc_config):
|
|
response = client.post(
|
|
'/api/calc',
|
|
headers={'alter-token': alter_token},
|
|
json=minimal_calc_config,
|
|
)
|
|
|
|
assert response.status_code == 200
|
|
payload = response.json()
|
|
assert payload['code'] == 200
|
|
assert payload['message'] == 'Success'
|
|
assert isinstance(payload['data'], dict)
|
|
|
|
data = payload['data']
|
|
assert set(['uuid', 'skills', 'info', 'suits', 'buffer']).issubset(data)
|
|
assert isinstance(data['uuid'], str)
|
|
assert isinstance(data['skills'], list)
|
|
assert isinstance(data['info'], list)
|
|
assert isinstance(data['buffer'], bool)
|
|
|
|
|
|
def test_character_response_contract_with_gzip(client, alter_token):
|
|
response = client.get(
|
|
'/api/character',
|
|
headers={'alter-token': alter_token, 'accept-encoding': 'gzip'},
|
|
)
|
|
|
|
assert response.status_code == 200
|
|
assert response.headers['content-encoding'] == 'gzip'
|
|
assert response.headers['vary'] == 'Accept-Encoding'
|
|
payload = response.json()
|
|
assert payload['code'] == 200
|
|
assert payload['message'] == 'Success'
|
|
assert set(['alter', 'skills', 'equips', 'suits']).issubset(payload['data'])
|
|
|
|
|
|
def test_character_response_contract_without_gzip(client, alter_token):
|
|
response = client.get(
|
|
'/api/character',
|
|
headers={'alter-token': alter_token, 'accept-encoding': 'identity'},
|
|
)
|
|
|
|
assert response.status_code == 200
|
|
assert 'content-encoding' not in response.headers
|
|
assert response.headers['vary'] == 'Accept-Encoding'
|
|
assert response.json()['code'] == 200
|