Skip to content

Commit 17b9e50

Browse files
refactor: address quality issues
1 parent a473a5d commit 17b9e50

2 files changed

Lines changed: 26 additions & 15 deletions

File tree

openedx_authz/engine/enforcer.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,17 @@ def configure_enforcer_auto_loading(cls, auto_load_policy_interval: int = None):
8282
if not cls._enforcer.is_auto_loading_running():
8383
cls._enforcer.start_auto_load_policy(auto_load_policy_interval)
8484

85+
@classmethod
86+
def is_auto_save_enabled(cls) -> bool:
87+
"""Check if auto-save is currently enabled on the enforcer.
88+
89+
Returns:
90+
bool: True if auto-save is enabled, False otherwise
91+
"""
92+
if cls._enforcer is None:
93+
return False
94+
return cls._enforcer._e.auto_save # pylint: disable=protected-access
95+
8596
@classmethod
8697
def configure_enforcer_auto_save(cls, auto_save_policy: bool):
8798
"""Configure auto-save on the enforcer.
@@ -95,7 +106,7 @@ def configure_enforcer_auto_save(cls, auto_save_policy: bool):
95106
Returns:
96107
None
97108
"""
98-
if cls._enforcer._e.auto_save != auto_save_policy:
109+
if cls.is_auto_save_enabled() != auto_save_policy:
99110
cls._enforcer.enable_auto_save(auto_save_policy)
100111

101112
@classmethod

openedx_authz/tests/test_enforcer.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"""
77

88
import time
9-
from unittest.mock import Mock, patch
9+
from unittest.mock import patch
1010

1111
import casbin
1212
from ddt import data as ddt_data
@@ -594,7 +594,7 @@ def test_enforcer_auto_save_enabled_when_toggle_enabled(self, mock_toggle):
594594

595595
enforcer = AuthzEnforcer.get_enforcer()
596596

597-
self.assertTrue(enforcer._e.auto_save)
597+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
598598

599599
test_policy = [
600600
make_role_key("test_role"),
@@ -623,7 +623,7 @@ def test_enforcer_deactivated_when_toggle_disabled(self, mock_toggle):
623623

624624
enforcer = AuthzEnforcer.get_enforcer()
625625

626-
self.assertFalse(enforcer._e.auto_save)
626+
self.assertFalse(AuthzEnforcer.is_auto_save_enabled())
627627
self.assertFalse(enforcer.is_auto_loading_running())
628628

629629
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
@@ -640,7 +640,7 @@ def test_enforcer_auto_load_starts_when_toggle_enabled(self, mock_toggle):
640640
enforcer = AuthzEnforcer.get_enforcer()
641641

642642
self.assertTrue(enforcer.is_auto_loading_running())
643-
self.assertTrue(enforcer._e.auto_save)
643+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
644644

645645
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
646646
@override_settings(CASBIN_AUTO_LOAD_POLICY_INTERVAL=0.5)
@@ -660,7 +660,7 @@ def test_enforcer_auto_load_not_restarted_on_subsequent_calls(self, mock_toggle)
660660
enforcer2 = AuthzEnforcer.get_enforcer()
661661
self.assertIs(enforcer1, enforcer2)
662662
self.assertTrue(enforcer2.is_auto_loading_running())
663-
self.assertTrue(enforcer2._e.auto_save)
663+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
664664

665665
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
666666
@override_settings(CASBIN_AUTO_LOAD_POLICY_INTERVAL=0)
@@ -676,12 +676,12 @@ def test_toggle_state_checked_on_every_get_enforcer_call(self, mock_toggle):
676676
"""
677677
mock_toggle.is_enabled.return_value = False
678678
enforcer1 = AuthzEnforcer.get_enforcer()
679-
self.assertFalse(enforcer1._e.auto_save)
679+
self.assertFalse(AuthzEnforcer.is_auto_save_enabled())
680680

681681
mock_toggle.is_enabled.return_value = True
682682
enforcer2 = AuthzEnforcer.get_enforcer()
683683
self.assertIs(enforcer1, enforcer2)
684-
self.assertTrue(enforcer2._e.auto_save)
684+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
685685

686686
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
687687
@override_settings(CASBIN_AUTO_LOAD_POLICY_INTERVAL=0)
@@ -701,7 +701,7 @@ def test_dummy_toggle_behavior_in_tests(self, mock_toggle):
701701
enforcer = AuthzEnforcer.get_enforcer()
702702

703703
self.assertIsNotNone(enforcer)
704-
self.assertTrue(enforcer._e.auto_save)
704+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
705705

706706
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
707707
@override_settings(CASBIN_AUTO_LOAD_POLICY_INTERVAL=0)
@@ -719,12 +719,12 @@ def test_auto_save_preserved_with_interval_zero(self, mock_toggle):
719719

720720
enforcer = AuthzEnforcer.get_enforcer()
721721
enforcer.enable_auto_save(True)
722-
self.assertTrue(enforcer._e.auto_save)
722+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
723723

724724
# Call get_enforcer() again - should not disable auto-save
725725
enforcer2 = AuthzEnforcer.get_enforcer()
726726
self.assertIs(enforcer, enforcer2)
727-
self.assertTrue(enforcer2._e.auto_save)
727+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
728728

729729
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
730730
@override_settings(CASBIN_AUTO_LOAD_POLICY_INTERVAL=0)
@@ -767,7 +767,7 @@ def test_auto_save_disabled_explicitly(self, mock_toggle):
767767

768768
enforcer = AuthzEnforcer.get_enforcer()
769769

770-
self.assertFalse(enforcer._e.auto_save)
770+
self.assertFalse(AuthzEnforcer.is_auto_save_enabled())
771771
self.assertFalse(enforcer.is_auto_loading_running())
772772

773773
@patch("openedx_authz.engine.enforcer.libraries_v2_enabled")
@@ -817,9 +817,9 @@ def test_multiple_get_enforcer_calls_preserve_auto_save(self, mock_toggle):
817817
# First call
818818
enforcer1 = AuthzEnforcer.get_enforcer()
819819
enforcer1.enable_auto_save(True)
820-
self.assertTrue(enforcer1._e.auto_save)
820+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())
821821

822822
# Multiple subsequent calls
823823
for _ in range(5):
824-
enforcer = AuthzEnforcer.get_enforcer()
825-
self.assertTrue(enforcer._e.auto_save)
824+
AuthzEnforcer.get_enforcer()
825+
self.assertTrue(AuthzEnforcer.is_auto_save_enabled())

0 commit comments

Comments
 (0)