setools/tests-gui/conftest.py
Chris PeBenito 5a88e29f29 Add new CommonQueryTab implementation.
Signed-off-by: Chris PeBenito <pebenito@ieee.org>
2024-02-14 09:11:35 -05:00

79 lines
2.2 KiB
Python

# SPDX-License-Identifier: GPL-2.0-only
# pylint: disable=attribute-defined-outside-init
from unittest.mock import Mock
import pytest
import setools
class SortableMock(Mock):
"""Mock class that can be sorted."""
def __lt__(self, other):
return self.name < other.name
def __repr__(self):
return f"<{self.__class__} name={self.name}>"
@pytest.fixture
def mock_policy() -> Mock:
"""Build a mock policy."""
foo_bool = SortableMock(setools.Boolean)
foo_bool.name = "foo_bool"
bar_bool = SortableMock(setools.Boolean)
bar_bool.name = "bar_bool"
common = SortableMock(setools.Common)
common.name = "common_perm_set"
common.perms = frozenset(("common_perm",))
foo_class = SortableMock(setools.ObjClass)
foo_class.name = "foo_class"
foo_class.perms = frozenset(("foo_perm1", "foo_perm2"))
foo_class.common = common
bar_class = SortableMock(setools.ObjClass)
bar_class.name = "bar_class"
bar_class.perms = frozenset(("bar_perm1", "bar_perm2"))
bar_class.common = common
foo_t = SortableMock(setools.Type)
foo_t.name = "foo_t"
bar_t = SortableMock(setools.Type)
bar_t.name = "bar_t"
fooattr = SortableMock(setools.TypeAttribute)
fooattr.name = "foo_type"
barattr = SortableMock(setools.TypeAttribute)
barattr.name = "bar_type"
foo_r = SortableMock(setools.Role)
foo_r.name = "foo_r"
bar_r = SortableMock(setools.Role)
bar_r.name = "bar_r"
foo_u = SortableMock(setools.User)
foo_u.name = "foo_u"
bar_u = SortableMock(setools.User)
bar_u.name = "bar_u"
policy = Mock(setools.SELinuxPolicy)
policy.bools.return_value = (foo_bool, bar_bool)
policy.classes.return_value = (foo_class, bar_class)
policy.commons.return_value = (common,)
policy.roles.return_value = (foo_r, bar_r)
policy.types.return_value = (foo_t, bar_t)
policy.typeattributes.return_value = (fooattr, barattr)
policy.users.return_value = (foo_u, bar_u)
return policy
@pytest.fixture
def mock_query(mock_policy) -> Mock:
"""Build a mock query with mocked policy."""
query = Mock(setools.PolicyQuery)
query.policy = mock_policy
return query