Skip to content

Commit 3d89944

Browse files
authored
Update test_enforcer.py
1 parent 48abb7f commit 3d89944

1 file changed

Lines changed: 0 additions & 78 deletions

File tree

tests/test_enforcer.py

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -575,84 +575,6 @@ def test_link_condition_function(self):
575575
self.assertFalse(e.enforce("alice", "domain5", "data5", "read"))
576576
self.assertFalse(e.enforce("alice", "domain5", "data5", "write"))
577577

578-
def test_enforce_ex_no_str_call_when_logging_disabled(self):
579-
"""Test that str() is not called on rvals when logging is disabled."""
580-
import logging
581-
582-
# Create a custom class that tracks str() calls
583-
class TrackedObject(str):
584-
"""A string subclass that tracks when str() is called."""
585-
586-
str_call_count = 0
587-
588-
def __new__(cls, value):
589-
instance = super().__new__(cls, value)
590-
return instance
591-
592-
def __str__(self):
593-
TrackedObject.str_call_count += 1
594-
return super().__str__()
595-
596-
e = self.get_enforcer(
597-
get_examples("basic_model.conf"),
598-
get_examples("basic_policy.csv"),
599-
)
600-
601-
# Get the actual enforcer (for SyncedEnforcer, it's wrapped in _e)
602-
actual_enforcer = e._e if hasattr(e, "_e") else e
603-
604-
# Set logger to ERROR level (above INFO and WARNING)
605-
actual_enforcer.logger.disabled = False
606-
actual_enforcer.logger.setLevel(logging.ERROR)
607-
608-
# Reset counter
609-
TrackedObject.str_call_count = 0
610-
611-
# Call enforce_ex with TrackedObject instances
612-
obj1 = TrackedObject("alice")
613-
obj2 = TrackedObject("data1")
614-
obj3 = TrackedObject("read")
615-
616-
result, explain = e.enforce_ex(obj1, obj2, obj3)
617-
618-
# str() should not be called when logging is disabled
619-
self.assertEqual(TrackedObject.str_call_count, 0, "str() should not be called when logging is disabled")
620-
self.assertTrue(result)
621-
622-
# Now enable INFO level logging
623-
actual_enforcer.logger.setLevel(logging.INFO)
624-
TrackedObject.str_call_count = 0
625-
626-
result, explain = e.enforce_ex(obj1, obj2, obj3)
627-
628-
# str() should be called when logging is enabled
629-
self.assertGreater(TrackedObject.str_call_count, 0, "str() should be called when logging is enabled")
630-
self.assertTrue(result)
631-
632-
# Test with WARNING level (for failed enforce)
633-
actual_enforcer.logger.setLevel(logging.WARNING)
634-
TrackedObject.str_call_count = 0
635-
636-
obj4 = TrackedObject("alice")
637-
obj5 = TrackedObject("data2")
638-
obj6 = TrackedObject("read")
639-
640-
result, explain = e.enforce_ex(obj4, obj5, obj6)
641-
642-
# str() should be called for WARNING level
643-
self.assertGreater(TrackedObject.str_call_count, 0, "str() should be called for WARNING level")
644-
self.assertFalse(result)
645-
646-
# Test with ERROR level (logging disabled for WARNING)
647-
actual_enforcer.logger.setLevel(logging.ERROR)
648-
TrackedObject.str_call_count = 0
649-
650-
result, explain = e.enforce_ex(obj4, obj5, obj6)
651-
652-
# str() should not be called when logging is disabled
653-
self.assertEqual(TrackedObject.str_call_count, 0, "str() should not be called when WARNING logging is disabled")
654-
self.assertFalse(result)
655-
656578

657579
class TestConfigSynced(TestConfig):
658580
def get_enforcer(self, model=None, adapter=None):

0 commit comments

Comments
 (0)