diff options
Diffstat (limited to 'tests/unit/test_privileges_spec_parsing.py')
-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 |