diff options
author | Frederick Muriuki Muriithi | 2025-07-24 11:42:17 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2025-07-24 11:42:17 -0500 |
commit | b6ee8a4af986154729fb14f9dbad8726c3397853 (patch) | |
tree | 95c75cc3417ff1807184e31aca170be9b6c740e6 | |
parent | fb430dfa9cb12ba90036e4c4d26128a9f10192f6 (diff) | |
download | gn-libs-b6ee8a4af986154729fb14f9dbad8726c3397853.tar.gz |
Add test to check for reduction of specifications.
-rw-r--r-- | tests/unit/test_privileges_spec_parsing.py | 20 |
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 |