adsb-receiver/build/portal/backend/tests/test_routes_links.py

218 wiersze
8.0 KiB
Python

from flask_jwt_extended import create_access_token
# POST /link
def test_post_link_200(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'name': 'Link Four',
'address': 'https://adsbportal.com/four'
}
response = client.post('/api/link', headers=request_headers, json=request_json)
assert response.status_code == 201
def test_post_link_401(client):
request_json = {
'name': 'Link Four',
'address': 'https://adsbportal.com/four'
}
response = client.post('/api/link', json=request_json)
assert response.status_code == 401
def test_post_link_400_missing_name(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'address': 'https://adsbportal.com/four'
}
response = client.post('/api/link', headers=request_headers, json=request_json)
assert response.status_code == 400
def test_post_link_400_missing_address(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'name': 'Link Four',
}
response = client.post('/api/link', headers=request_headers, json=request_json)
assert response.status_code == 400
# DELETE /link/{id}
def test_delete_link_204(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
response = client.delete('/api/link/1', headers=request_headers)
assert response.status_code == 204
def test_delete_link_401(client):
response = client.delete('/api/link/1')
assert response.status_code == 401
def test_delete_link_404(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
response = client.delete('/api/link/4', headers=request_headers)
assert response.status_code == 404
# GET /link/{id}
def test_get_link_200(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
response = client.get('/api/link/2', headers=request_headers)
assert response.status_code == 200
assert response.json['id'] == 2
assert response.json['address'] == "https://adsbportal.com/two"
def test_get_link_401(client, app):
response = client.get('/api/link/2')
assert response.status_code == 401
def test_get_user_404(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
response = client.get('/api/link/4', headers=request_headers)
assert response.status_code == 404
# PUT /link/{id}
def test_put_link_204(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'name': 'Link Three Updated',
'address': 'https://adsbportal.com/three-updated'
}
response = client.put('/api/link/3', headers=request_headers, json=request_json)
assert response.status_code == 204
def test_put_link_401(client):
request_json = {
'name': 'Link Three Updated',
'address': 'https://adsbportal.com/three-updated'
}
response = client.put('/api/link/3', json=request_json)
assert response.status_code == 401
def test_put_link_400_missing_name(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'address': 'https://adsbportal.com/three-updated'
}
response = client.put('/api/link/3', headers=request_headers, json=request_json)
assert response.status_code == 400
def test_put_link_400_missing_address(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'name': 'Link Three Updated'
}
response = client.put('/api/link/3', headers=request_headers, json=request_json)
assert response.status_code == 400
def test_put_link_404(client, app):
with app.app_context():
access_token = create_access_token(identity="developer")
request_headers = {
'Authorization': 'Bearer {}'.format(access_token),
}
request_json = {
'name': 'Link Four Updated',
'address': 'https://adsbportal.com/four-updated'
}
response = client.put('/api/link/4', headers=request_headers, json=request_json)
assert response.status_code == 404
# GET /links
def test_get_links_200(client):
response = client.get('/api/links')
assert response.status_code == 200
assert response.json['offset'] == 0
assert response.json['limit'] == 50
assert response.json['count'] == 3
assert response.json['links'][0]['id'] == 1
assert response.json['links'][0]['name'] == "Link One"
assert response.json['links'][0]['address'] == "https://adsbportal.com/one"
assert response.json['links'][1]['id'] == 3
assert response.json['links'][1]['name'] == "Link Three"
assert response.json['links'][1]['address'] == "https://adsbportal.com/three"
assert response.json['links'][2]['id'] == 2
assert response.json['links'][2]['name'] == "Link Two"
assert response.json['links'][2]['address'] == "https://adsbportal.com/two"
def test_get_links_200_offset(client):
response = client.get('/api/links?offset=2')
assert response.status_code == 200
assert response.json['offset'] == 2
assert response.json['limit'] == 50
assert response.json['count'] == 1
assert response.json['links'][0]['id'] == 2
assert response.json['links'][0]['name'] == "Link Two"
assert response.json['links'][0]['address'] == "https://adsbportal.com/two"
def test_get_links_200_limit(client):
response = client.get('/api/links?limit=1')
assert response.status_code == 200
assert response.json['offset'] == 0
assert response.json['limit'] == 1
assert response.json['count'] == 1
assert response.json['links'][0]['id'] == 1
assert response.json['links'][0]['name'] == "Link One"
assert response.json['links'][0]['address'] == "https://adsbportal.com/one"
def test_get_links_200_offset_and_limit(client):
response = client.get('/api/links?offset=1&limit=1')
assert response.status_code == 200
assert response.json['offset'] == 1
assert response.json['limit'] == 1
assert response.json['count'] == 1
assert response.json['links'][0]['id'] == 3
assert response.json['links'][0]['name'] == "Link Three"
assert response.json['links'][0]['address'] == "https://adsbportal.com/three"
def test_get_links_400_offset_less_than_0(client):
response = client.get('/api/links?offset=-1')
assert response.status_code == 400
def test_get_links_400_limit_less_than_0(client):
response = client.get('/api/links?limit=-1')
assert response.status_code == 400
def test_get_links_400_limit_greater_than_100(client):
response = client.get('/api/links?limit=101')
assert response.status_code == 400