mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 16:01:15 -05:00
DRY-up creating auth headers for requests
The rest of the tests need to construct the header directly so they can pass custom tokens. But for the three tests that actually make a request to prove the auth functions work as wrappers, we can use the same factory functions we use everywhere else in the tests.
This commit is contained in:
@@ -32,6 +32,10 @@ def create_service_authorization_header(service_id, key_type=KEY_TYPE_NORMAL):
|
|||||||
|
|
||||||
def create_admin_authorization_header():
|
def create_admin_authorization_header():
|
||||||
client_id = current_app.config['ADMIN_CLIENT_ID']
|
client_id = current_app.config['ADMIN_CLIENT_ID']
|
||||||
|
return create_internal_authorization_header(client_id)
|
||||||
|
|
||||||
|
|
||||||
|
def create_internal_authorization_header(client_id):
|
||||||
secret = current_app.config['INTERNAL_CLIENT_API_KEYS'][client_id][0]
|
secret = current_app.config['INTERNAL_CLIENT_API_KEYS'][client_id][0]
|
||||||
token = create_jwt_token(secret=secret, client_id=client_id)
|
token = create_jwt_token(secret=secret, client_id=client_id)
|
||||||
return 'Authorization', 'Bearer {}'.format(token)
|
return 'Authorization', 'Bearer {}'.format(token)
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ from app.dao.api_key_dao import (
|
|||||||
get_unsigned_secrets,
|
get_unsigned_secrets,
|
||||||
)
|
)
|
||||||
from app.dao.services_dao import dao_fetch_service_by_id
|
from app.dao.services_dao import dao_fetch_service_by_id
|
||||||
|
from tests import (
|
||||||
|
create_admin_authorization_header,
|
||||||
|
create_internal_authorization_header,
|
||||||
|
create_service_authorization_header,
|
||||||
|
)
|
||||||
from tests.conftest import set_config_values
|
from tests.conftest import set_config_values
|
||||||
|
|
||||||
|
|
||||||
@@ -61,29 +66,22 @@ def service_jwt_token(sample_api_key, service_jwt_secret):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_requires_auth_should_allow_valid_token_for_request(
|
def test_requires_auth_should_allow_valid_token_for_request(client, sample_api_key):
|
||||||
client,
|
header = create_service_authorization_header(sample_api_key.service_id)
|
||||||
service_jwt_token,
|
response = client.get('/notifications', headers=[header])
|
||||||
):
|
|
||||||
response = client.get('/notifications', headers={'Authorization': 'Bearer {}'.format(service_jwt_token)})
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
def test_requires_admin_auth_should_allow_valid_token_for_request(client):
|
def test_requires_admin_auth_should_allow_valid_token_for_request(client):
|
||||||
admin_jwt_client_id = current_app.config['ADMIN_CLIENT_ID']
|
header = create_admin_authorization_header()
|
||||||
admin_jwt_secret = current_app.config['INTERNAL_CLIENT_API_KEYS'][admin_jwt_client_id][0]
|
response = client.get('/service', headers=[header])
|
||||||
admin_jwt_token = create_jwt_token(admin_jwt_secret, admin_jwt_client_id)
|
|
||||||
|
|
||||||
response = client.get('/service', headers={'Authorization': 'Bearer {}'.format(admin_jwt_token)})
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
def test_requires_govuk_alerts_auth_should_allow_valid_token_for_request(client):
|
def test_requires_govuk_alerts_auth_should_allow_valid_token_for_request(client):
|
||||||
govuk_alerts_jwt_client_id = current_app.config['GOVUK_ALERTS_CLIENT_ID']
|
jwt_client_id = current_app.config['GOVUK_ALERTS_CLIENT_ID']
|
||||||
govuk_alerts_jwt_secret = current_app.config['INTERNAL_CLIENT_API_KEYS'][govuk_alerts_jwt_client_id][0]
|
header = create_internal_authorization_header(jwt_client_id)
|
||||||
govuk_alerts_jwt_token = create_jwt_token(govuk_alerts_jwt_secret, govuk_alerts_jwt_client_id)
|
response = client.get('/v2/govuk-alerts', headers=[header])
|
||||||
|
|
||||||
response = client.get('/v2/govuk-alerts', headers={'Authorization': 'Bearer {}'.format(govuk_alerts_jwt_token)})
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user