def test_get_user_by_credentials(self, m): user = User(email='*****@*****.**') m.get('https://edc.eu.auth0.com/api/v2/users', json=[user.to_dict()]) res = oauth.get_user_by_credentials(token='dfasvdsav', client_id='döoasvnoösdvi', client_secret='sdvdsv') self.assertEqual(1, len(res)) m.get('https://edc.eu.auth0.com/api/v2/users', json=[]) with self.assertRaises(api.ApiError) as e: oauth.get_user_by_credentials(token='dfasvdsav', client_id='döoasvnoösdvi', client_secret='sdvdsv') self.assertEqual(404, e.exception.status_code) self.assertEqual('No users found.', str(e.exception)) m.get('https://edc.eu.auth0.com/api/v2/users', json=[user.to_dict(), user.to_dict()]) with self.assertRaises(api.ApiError) as e: oauth.get_user_by_credentials(token='dfasvdsav', client_id='döoasvnoösdvi', client_secret='sdvdsv') self.assertEqual(400, e.exception.status_code) self.assertEqual('More than one user found.', str(e.exception)) m.get('https://edc.eu.auth0.com/api/v2/users', text='Error', status_code=400) with self.assertRaises(api.ApiError) as e: oauth.get_user_by_credentials(token='dfasvdsav', client_id='döoasvnoösdvi', client_secret='sdvdsv') self.assertEqual('Error', str(e.exception))
def test_get_permissions_by_user_id(self, m): user = User(email='*****@*****.**', user_id='drwho', username='******', family_name='who', given_name='dr', name='drwho', password='******', user_metadata={ 'client_id': 'snört', 'client_secret': 'sdvdsv' }, connection='Init', app_metadata={'geodb_role': 'test_role'}) m.get(f"https://edc.eu.auth0.com/api/v2/users/drwho/permissions", json=user.to_dict()) res = users.get_permissions_by_user_id('drwho', token='atoken') self.assertDictEqual(user.to_dict(), res) m.get(f"https://edc.eu.auth0.com/api/v2/users/drwho/permissions", text='No user', status_code=404) with self.assertRaises(api.ApiError) as e: users.get_permissions_by_user_id('drwho', token='atoken') self.assertEqual(404, e.exception.status_code) self.assertEqual('User not found.', str(e.exception)) m.get(f"https://edc.eu.auth0.com/api/v2/users/drwho/permissions", text='Server Error', status_code=500) with self.assertRaises(api.ApiError) as e: users.get_permissions_by_user_id('drwho', token='atoken') self.assertEqual(400, e.exception.status_code) self.assertEqual('Server Error', str(e.exception))
def test_get_token(self, m): user = User(email='*****@*****.**', user_id='drwho', username='******', family_name='who', given_name='dr', name='drwho', password='******', user_metadata={ 'client_id': 'snört', 'client_secret': 'sdvdsv' }, connection='Init', app_metadata={'geodb_role': 'test_role'}) m.get('https://edc.eu.auth0.com/api/v2/users', json=[user.to_dict()]) m.post("https://edc.eu.auth0.com/oauth/token", json={'access_token': 'asdcaswdc'}) m.get(f"https://edc.eu.auth0.com/api/v2/users/drwho/permissions", json=[ { 'permission_name': 'manage:collections' }, ]) token = { 'client_id': 'dfsv', 'client_secret': 'thdrth', 'aud': 'audience', 'grant_type': 'password' } res = oauth.get_token(body=token) self.assertIn('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', res) token = { 'client_id': 'id', 'client_secret': 'sdvdsv', 'aud': 'audience', 'grant_type': 'password' } res = oauth.get_token(body=token) self.assertEqual('asdcaswdc', res) m.post("https://edc.eu.auth0.com/oauth/token", text='error', status_code=401) with self.assertRaises(Unauthorized) as e: res = oauth.get_token(body=token) self.assertEqual( '401 Unauthorized: 401 Client Error: None for url: https://edc.eu.auth0.com/oauth/token', str(e.exception)) m.post("https://edc.eu.auth0.com/oauth/token", json={'access_token_fail': 'asdcaswdc'}) with self.assertRaises(Unauthorized) as e: res = oauth.get_token(body=token) self.assertEqual( '401 Unauthorized: 401 Client Error: None for url: https://edc.eu.auth0.com/oauth/token', str(e.exception))
def get_request_body_from_user(user: User): res = user.to_dict() for k, v in res.items(): res[k] = v.isoformat() if isinstance(v, datetime) else v return {k: v for k, v in res.items() if v is not None}