aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/test_privileges_checking.py
blob: 05969b1147859cd4e9bcee4e39f545d7b484860b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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