def test_get_mfa_settings_not_found(self):
        # prepare
        self.keycloak_api_mock.get_user_mfa_settings.side_effect = ResourceNotFoundError(
            "not found")
        # act
        resp = self.app_client.get(self._get_mfa_settings_endpoint())

        # assert
        self.assertEqual(404, resp.status_code)
        self.assertTrue("not found".casefold() in resp.json.casefold())
    def test_delete_webauthn_settings_not_found(self):
        # prepare
        self.keycloak_api_mock.is_credential_enabled_for_user.side_effect = ResourceNotFoundError(
            "not found")

        # act
        resp = self.app_client.delete(self._get_webauthn_endpoint())

        # assert
        self.assertEqual(404, resp.status_code)
        self.assertTrue("not found".casefold() in resp.json.casefold())
    def test_reset_otp_not_found(self):
        # prepare
        self.keycloak_api_mock.is_credential_enabled_for_user.side_effect = ResourceNotFoundError(
            "not found")
        # act
        resp = self.app_client.post(self._get_otp_reset_endpoint())

        # assert
        self.assertEqual(404, resp.status_code)
        self.assertTrue("not found".casefold() in resp.json.casefold())
        self.keycloak_api_mock.is_credential_enabled_for_user.assert_called_with(
            self.user_id, REQUIRED_ACTION_CONFIGURE_OTP, CREDENTIAL_TYPE_OTP)
Example #4
0
    def get_user_by_username(self, username, realm=None):
        """
        Get user by userID
        """
        if not realm:
            realm = self.realm
        headers = self.__get_admin_access_token_headers()
        url = "{0}/admin/realms/{1}/users?first=0&max=100&username={2}".format(
            self.base_url, realm, username
        )

        ret = self.send_request("get", url, headers=headers)

        self.logger.info("Getting user '{0}' object".format(username))
        found_users = json.loads(ret.text)

        for user in found_users:
            if user["username"] == username:
                self.logger.info("Found user '{0}' ({1})".format(username, user["id"]))
                return user

        self.logger.info("User '{0}' NOT found".format(username))
        raise ResourceNotFoundError("User not found")