about summary refs log tree commit diff
path: root/tests/unit/test_privileges_spec_parsing.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_privileges_spec_parsing.py')
-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