diff --git a/server/vbv_lernwelt/sso/role_sync/services.py b/server/vbv_lernwelt/sso/role_sync/services.py index e5f9359d..23df6078 100644 --- a/server/vbv_lernwelt/sso/role_sync/services.py +++ b/server/vbv_lernwelt/sso/role_sync/services.py @@ -15,6 +15,8 @@ logger = structlog.get_logger(__name__) CourseRolesType = List[Tuple[str, str]] KeyCloakRolesType = List[Dict[str, str]] +keycloak_admin = None # Needed for pytest + if settings.OAUTH_SYNC_ROLES: keycloak_connection = KeycloakOpenIDConnection( server_url=settings.OAUTH_SIGNIN_URL, diff --git a/server/vbv_lernwelt/sso/tests/test_role_sync.py b/server/vbv_lernwelt/sso/tests/test_role_sync.py index c1372b75..4d8ade2c 100644 --- a/server/vbv_lernwelt/sso/tests/test_role_sync.py +++ b/server/vbv_lernwelt/sso/tests/test_role_sync.py @@ -16,11 +16,13 @@ from vbv_lernwelt.sso.role_sync.services import ( ) +@override_settings(OAUTH_SYNC_ROLES=True) class ApiTestCase(TestCase): def setUp(self): self.user = User(email="test@example.com", first_name="Test", last_name="User") self.user.additional_json_data = {"intermediate_sso_id": "1234"} self.user.save() + self.course_roles = [ ("überbetriebliche-kurse", "EXPERT"), ("versicherungsvermittler-in", "MEMBER"), @@ -36,7 +38,6 @@ class ApiTestCase(TestCase): }, ] - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_add_roles_to_user_success(self, mock_keycloak_admin): mock_keycloak_admin.assign_realm_roles.return_value = None @@ -48,7 +49,6 @@ class ApiTestCase(TestCase): user_id="1234", roles=self.expected_roles ) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_add_roles_to_user_keycloak_post_error(self, mock_keycloak_admin): mock_keycloak_admin.assign_realm_roles.side_effect = KeycloakPostError @@ -62,7 +62,6 @@ class ApiTestCase(TestCase): self.assertEqual(error_obj.data, self.expected_roles) self.assertEqual(error_obj.action, SsoSyncError.Action.ADD) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_remove_roles_to_user_success(self, mock_keycloak_admin): mock_keycloak_admin.delete_realm_roles_of_user.return_value = None @@ -74,7 +73,6 @@ class ApiTestCase(TestCase): user_id="1234", roles=self.expected_roles ) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_remove_roles_to_user_keycloak_delete_error(self, mock_keycloak_admin): mock_keycloak_admin.delete_realm_roles_of_user.side_effect = KeycloakDeleteError @@ -88,7 +86,6 @@ class ApiTestCase(TestCase): self.assertEqual(error_obj.data, self.expected_roles) self.assertEqual(error_obj.action, SsoSyncError.Action.REMOVE) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.remove_roles_from_user") @patch("vbv_lernwelt.sso.role_sync.services.add_roles_to_user") def test_update_roles_to_user( @@ -101,7 +98,6 @@ class ApiTestCase(TestCase): mock_add_roles_to_user.assert_called_once() mock_remove_roles_from_user.assert_called_once() - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_sync_roles_to_user(self, mock_keycloak_admin): mock_keycloak_admin.get_realm_roles_of_user.return_value = ( @@ -121,7 +117,6 @@ class ApiTestCase(TestCase): user_id="1234", roles=self.expected_roles ) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_create_user(self, mock_keycloak_admin): mock_keycloak_admin.create_user.return_value = "im-an-uuid-1234" @@ -139,7 +134,6 @@ class ApiTestCase(TestCase): user_data, exist_ok=True ) - @override_settings(OAUTH_SYNC_ROLES=True) @patch("vbv_lernwelt.sso.role_sync.services.keycloak_admin") def test_ignore_missing_course(self, mock_keycloak_admin): mock_keycloak_admin.assign_realm_roles.return_value = None