aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-07-24 11:42:17 -0500
committerFrederick Muriuki Muriithi2025-07-24 11:42:17 -0500
commitb6ee8a4af986154729fb14f9dbad8726c3397853 (patch)
tree95c75cc3417ff1807184e31aca170be9b6c740e6
parentfb430dfa9cb12ba90036e4c4d26128a9f10192f6 (diff)
downloadgn-libs-b6ee8a4af986154729fb14f9dbad8726c3397853.tar.gz
Add test to check for reduction of specifications.
-rw-r--r--tests/unit/test_privileges_spec_parsing.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/unit/test_privileges_spec_parsing.py b/tests/unit/test_privileges_spec_parsing.py
index 68ddd0e..88b15fc 100644
--- a/tests/unit/test_privileges_spec_parsing.py
+++ b/tests/unit/test_privileges_spec_parsing.py
@@ -148,3 +148,23 @@ def test_complex(spec, expected):
THEN: Verify that the specification parses correctly
"""
assert parse(spec) == expected
+
+
+@pytest.mark.unit_test
+@pytest.mark.parametrize(
+ "spec,expected",
+ (("(AND priv1 (or priv2 priv3) priv4 (or priv5 priv6))",
+ ("AND",
+ ("priv1", "priv4"),
+ ("OR", ("priv2", "priv3", "priv5", "priv6")))),
+ ("(OR priv1 (or priv2 priv3 (or priv4 priv5)) (or priv6 priv7))",
+ ("OR", ("priv1", "priv6", "priv7", "priv2", "priv3", "priv4", "priv5")))))
+def test_reduction(spec, expected):
+ """
+ GIVEN: A spec that can be reduced
+ WHEN: The specification is parsed
+ THEN:
+ - Verify that after parsing, it is reduced to the minimum number of levels
+ - possible.
+ """
+ assert parse(spec) == expected