Example #1
0
    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))
Example #2
0
    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))
Example #3
0
    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))
Example #4
0
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}