Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit e8de1cd

Browse files
committed
small fixes in unit tests
1 parent d43543b commit e8de1cd

4 files changed

Lines changed: 19 additions & 16 deletions

File tree

beacon_api/utils/validate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ async def token_middleware(request, handler):
206206
raise BeaconUnauthorised(obj, request.host, "invalid_token", f'Expired signature: {e}') # pragma: no cover
207207
except InvalidClaimError as e:
208208
raise BeaconForbidden(obj, request.host, f'Token info not corresponding with claim: {e}') # pragma: no cover
209-
except InvalidTokenError as e:
209+
except InvalidTokenError as e: # pragma: no cover
210210
raise BeaconUnauthorised(obj, request.host, "invalid_token", f'Invalid authorization token: {e}') # pragma: no cover
211211
else:
212212
request["token"] = {"bona_fide_status": False,

tests/test_basic.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,9 @@
66
from beacon_api.utils.validate import token_scheme_check, verify_aud_claim
77
from beacon_api.permissions.ga4gh import get_ga4gh_controlled, get_ga4gh_bona_fide, validate_passport
88
from beacon_api.permissions.ga4gh import check_ga4gh_token, decode_passport, get_ga4gh_permissions
9-
from deploy.test.mock_auth import generate_token
10-
from .test_app import PARAMS
9+
from .test_app import PARAMS, generate_token
1110
from testfixtures import TempDirectory
1211
from test.support import EnvironmentVarGuard
13-
# Hack to import a function from beyond top-level package
14-
# used for test_decode_passport() to get a real token
15-
import sys
16-
sys.path.append("..")
1712

1813

1914
def mock_token(bona_fide, permissions, auth):
@@ -368,19 +363,21 @@ async def test_ga4gh_bona_fide(self):
368363

369364
@asynctest.mock.patch('beacon_api.permissions.ga4gh.get_jwk')
370365
@asynctest.mock.patch('beacon_api.permissions.ga4gh.jwt')
371-
async def test_validate_passport(self, m_jwt, m_jwk):
366+
@asynctest.mock.patch('beacon_api.permissions.ga4gh.LOG')
367+
async def test_validate_passport(self, mock_log, m_jwt, m_jwk):
372368
"""Test passport validation."""
373369
m_jwk.return_value = 'jwk'
374370
# Test: validation passed
375371
m_jwt.return_value = MockDecodedPassport()
376372
await validate_passport({})
377-
#
378-
# This test doesn't work
379-
#
373+
380374
# # Test: validation failed
381-
# m_jwt.return_value = MockDecodedPassport(validated=False)
375+
m_jwt.return_value = MockDecodedPassport(validated=False)
382376
# with self.assertRaises(Exception):
383-
# await validate_passport({})
377+
await validate_passport({})
378+
# we are not raising the exception we are just doing a log
379+
# need to assert the log called
380+
mock_log.error.assert_called_with("Something went wrong when processing JWT tokens: 1")
384381

385382
@asynctest.mock.patch('beacon_api.permissions.ga4gh.get_ga4gh_permissions')
386383
async def test_check_ga4gh_token(self, m_get_perms):
@@ -404,9 +401,9 @@ async def test_check_ga4gh_token(self, m_get_perms):
404401

405402
async def test_decode_passport(self):
406403
"""Test key-less JWT decoding."""
407-
_, token, _ = generate_token()
404+
token, _ = generate_token('http://test.csc.fi')
408405
header, payload = await decode_passport(token)
409-
self.assertEqual(header.get('alg'), 'RS256')
406+
self.assertEqual(header.get('alg'), 'HS256')
410407
self.assertEqual(payload.get('iss'), 'http://test.csc.fi')
411408

412409
@asynctest.mock.patch('beacon_api.permissions.ga4gh.get_ga4gh_bona_fide')

tests/test_db_load.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ async def test_load_datafile(self, db_mock, mock_log):
308308
@asynctest.mock.patch('beacon_api.utils.db_load.LOG')
309309
@asynctest.mock.patch('beacon_api.utils.db_load.asyncpg.connect')
310310
async def test_insert_variants(self, db_mock, mock_log):
311-
"""Test load_datafile."""
311+
"""Test insert variants."""
312312
db_mock.return_value = Connection()
313313
await self._db.connection()
314314
db_mock.assert_called()

tests/test_response.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ async def test_get_jwk(self, m):
164164
self.assertTrue(isinstance(result, dict))
165165
self.assertTrue(result["keys"][0]['alg'], 'RSA256')
166166

167+
@asynctest.mock.patch('beacon_api.permissions.ga4gh.LOG')
168+
async def test_get_jwk_bad(self, mock_log):
169+
"""Test get JWK exception log."""
170+
await get_jwk('http://test.csc.fi/jwk')
171+
mock_log.error.assert_called_with("Could not retrieve JWK from http://test.csc.fi/jwk")
172+
167173
@asynctest.mock.patch('beacon_api.utils.validate.OAUTH2_CONFIG', return_value={'server': None})
168174
async def test_bad_get_key(self, oauth_none):
169175
"""Test bad test_get_key."""

0 commit comments

Comments
 (0)