Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions openedx_authz/engine/enforcer.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,9 @@
from cms.djangoapps.contentstore.toggles import libraries_v2_enabled
except ImportError:
# If the CMS is not available, define a dummy toggle that is always enabled
class DummyToggle:
@staticmethod
def is_enabled():
return True

libraries_v2_enabled = DummyToggle()
def libraries_v2_enabled() -> bool:
"""Dummy toggle that is always enabled."""
return True


logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -162,7 +159,7 @@ def get_enforcer(cls) -> SyncedEnforcer:
# removed for the next release cycle.
# When replaced, we will only need to configure the enforcer here. Which
# is in charge of enabling/disabling auto-load and auto-save.
if libraries_v2_enabled.is_enabled():
if libraries_v2_enabled():
cls.configure_enforcer_auto_save_and_load()
else:
cls.deactivate_enforcer()
Expand Down
24 changes: 12 additions & 12 deletions openedx_authz/tests/test_enforcer.py
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ def test_enforcer_auto_save_enabled_when_toggle_enabled(self, mock_toggle):
- Policy changes are persisted to database
- CASBIN_AUTO_LOAD_POLICY_INTERVAL=0 doesn't disable auto-save
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()

Expand Down Expand Up @@ -619,7 +619,7 @@ def test_enforcer_deactivated_when_toggle_disabled(self, mock_toggle):
- Auto-save is disabled via deactivate_enforcer
- Auto-load is stopped
"""
mock_toggle.is_enabled.return_value = False
mock_toggle.return_value = False

enforcer = AuthzEnforcer.get_enforcer()

Expand All @@ -635,7 +635,7 @@ def test_enforcer_auto_load_starts_when_toggle_enabled(self, mock_toggle):
- Auto-load thread is started with configured interval
- Auto-save is enabled
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()

Expand All @@ -652,7 +652,7 @@ def test_enforcer_auto_load_not_restarted_on_subsequent_calls(self, mock_toggle)
- Subsequent calls don't restart the auto-load thread
- Auto-save remains enabled
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer1 = AuthzEnforcer.get_enforcer()
self.assertTrue(enforcer1.is_auto_loading_running())
Expand All @@ -674,11 +674,11 @@ def test_toggle_state_checked_on_every_get_enforcer_call(self, mock_toggle):
- First call with toggle off: auto-save disabled
- Second call with toggle on: auto-save enabled
"""
mock_toggle.is_enabled.return_value = False
mock_toggle.return_value = False
enforcer1 = AuthzEnforcer.get_enforcer()
self.assertFalse(AuthzEnforcer.is_auto_save_enabled())

mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True
enforcer2 = AuthzEnforcer.get_enforcer()
self.assertIs(enforcer1, enforcer2)
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
Expand All @@ -696,7 +696,7 @@ def test_dummy_toggle_behavior_in_tests(self, mock_toggle):
- Enforcer initializes successfully
- Auto-save is enabled (DummyToggle returns True)
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()

Expand All @@ -715,7 +715,7 @@ def test_auto_save_preserved_with_interval_zero(self, mock_toggle):
- Tests can manually enable auto-save
- Subsequent get_enforcer() calls preserve auto-save state
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()
enforcer.enable_auto_save(True)
Expand All @@ -735,7 +735,7 @@ def test_auto_save_persistence_with_interval_zero(self, mock_toggle):
- Policies added via add_policy() are persisted to database
- Policies can be reloaded from database
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()
enforcer.enable_auto_save(True)
Expand Down Expand Up @@ -763,7 +763,7 @@ def test_auto_save_disabled_explicitly(self, mock_toggle):
- Auto-save is disabled
- Auto-load is not running
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()

Expand All @@ -779,7 +779,7 @@ def test_policies_not_persisted_when_auto_save_disabled(self, mock_toggle):
- Policies added are only in memory
- Reloading from database clears them
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

enforcer = AuthzEnforcer.get_enforcer()

Expand Down Expand Up @@ -812,7 +812,7 @@ def test_multiple_get_enforcer_calls_preserve_auto_save(self, mock_toggle):
- After manually enabling auto-save, it stays enabled
- Multiple get_enforcer() calls don't change auto-save state
"""
mock_toggle.is_enabled.return_value = True
mock_toggle.return_value = True

# First call
enforcer1 = AuthzEnforcer.get_enforcer()
Expand Down