about summary refs log tree commit diff
path: root/tests/unit/test_privileges_checking.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_privileges_checking.py')
-rw-r--r--tests/unit/test_privileges_checking.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/unit/test_privileges_checking.py b/tests/unit/test_privileges_checking.py
new file mode 100644
index 0000000..05969b1
--- /dev/null
+++ b/tests/unit/test_privileges_checking.py
@@ -0,0 +1,39 @@
+"""Tests to verify the privileges check works."""
+import pytest
+
+from gn_libs.privileges import check
+
+@pytest.mark.unit_test
+@pytest.mark.parametrize(
+    "spec,privileges,expected",
+    (("(AND priv1 priv2 priv3)",
+      ("priv2", "priv4", "priv1", "priv6", "priv3"),
+      True),
+     ("(AND priv1 priv2 priv3)",
+      ("priv1", "priv2", "priv4" "priv6"),
+      False),
+     ("(AND priv1 priv2 priv3)",
+      ("priv1", "priv4" "priv6"),
+      False),
+     ("(AND priv1 priv2 priv3)",
+      ("priv4", "priv5", "priv6"),
+      False),
+     ("(OR priv1 priv2 priv3)",
+      ("priv1", "priv2" "priv3"),
+      True),
+     ("(OR priv1 priv2 priv3)",
+      ("priv1", "priv2" "priv4", "priv5"),
+      True),
+     ("(OR priv1 priv2 priv3)",
+      ("priv1", "priv4", "priv5"),
+      True),
+     ("(OR priv1 priv2 priv3)",
+      ("priv4", "priv5", "priv6"),
+      False)))
+def test_check(spec, privileges, expected):
+    """
+    GIVEN: A privileges-check specification, and a tuple of privileges
+    WHEN: A check is performed
+    THEN: Verify that the check returns the expected value
+    """
+    assert check(spec, privileges) == expected