def test_loader_good_header(app, client): """With a good Authorization header, the permissions in the DB are allowed""" tok = FakeSerializer.prm(1) auth = json.loads( client.get('/test_tokenauth', headers=[('Authorization', 'Bearer ' + tok)]).data) eq_(auth['permissions'], ['test_tokenauth.zig'], auth)
def assert_prm_token(data, **attrs): token = _get_token(data) attrs['typ'] = 'prm' attrs['id'] = id = token.id attrs['token'] = FakeSerializer.prm(id) attrs['disabled'] = False _eq_token(token, attrs)
def test_from_str(app): """from_str returns a TokenUser object for a good token""" tok = FakeSerializer.prm(1) with app.app_context(): eq_( loader.token_loader.from_str(tok).permissions, set([p.test_tokenauth.zig]))
def test_loader_good_header_Authentication(app, client): """The old 'Authentication' header can be used instead of 'Authorization'""" # see https://github.com/mozilla/build-relengapi/pull/192/files tok = FakeSerializer.prm(1) auth = json.loads( client.get('/test_tokenauth', headers=[('Authentication', 'Bearer ' + tok)]).data) eq_(auth['permissions'], ['test_tokenauth.zig'], auth)
def test_query_prm_token_exists(client): """Querying a permanent token, with base.tokens.prm.view, returns that token.""" res = client.post_json('/tokenauth/tokens/query', FakeSerializer.prm(1)) eq_(res.status_code, 200) eq_(json.loads(res.data), {'result': {'id': 1, 'description': 'Zig only', 'typ': 'prm', 'permissions': ['test_tokenauth.zig'], 'disabled': False}})
def test_query_prm_token_exists(client): """Querying a permanent token, with base.tokens.prm.view, returns that token.""" res = client.post_json('/tokenauth/tokens/query', FakeSerializer.prm(1)) eq_(res.status_code, 200) assert_result(res.data, {'id': 1, 'description': 'Zig only', 'typ': 'prm', 'permissions': ['test_tokenauth.zig'], 'disabled': False})
def test_from_str(app): """from_str returns a TokenUser object for a good token""" tok = FakeSerializer.prm(1) with app.app_context(): eq_(loader.token_loader.from_str(tok).permissions, set([p.test_tokenauth.zig]))
def test_query_token_missing(client): """Querying a permanent token that does not exist returns status 404""" res = client.post_json('/tokenauth/tokens/query', FakeSerializer.prm(99)) eq_(res.status_code, 404)
def test_query_prm_token_forbidden_wrong_perm(client): """Querying a permanent token requires base.tokens.prm.view""" res = client.post_json('/tokenauth/tokens/query', FakeSerializer.prm(1)) eq_(res.status_code, 403)