f8f4c7531f
To simplify udica testing on Fedora, add an option that allows running the tests with real system packages (selinux and semanage).
52 lines
1.9 KiB
Diff
52 lines
1.9 KiB
Diff
From ec0fa884fe5f3880c76fa08a6dac1fd3abee9d30 Mon Sep 17 00:00:00 2001
|
|
From: Jan Zarsky <jzarsky@redhat.com>
|
|
Date: Tue, 7 May 2019 10:48:00 +0200
|
|
Subject: [PATCH 1/2] Add an option for running tests with real modules
|
|
|
|
For testing purposes, the selinux and semanage modules are mocked. This
|
|
allows running the tests without SELinux enabled (e.g. in a container).
|
|
On SELinux-enabled systems, it makes sense to rerun the tests with the
|
|
actual selinux and semanage modules present on the system. For this
|
|
purpose, add a global constant named 'SELINUX_ENABLED'.
|
|
---
|
|
tests/test_main.py | 11 +++++++++++
|
|
1 file changed, 11 insertions(+)
|
|
|
|
diff --git a/tests/test_main.py b/tests/test_main.py
|
|
index 9d8ac6d..08805db 100644
|
|
--- a/tests/test_main.py
|
|
+++ b/tests/test_main.py
|
|
@@ -22,6 +22,11 @@ from unittest.mock import patch
|
|
sys.path.insert(0, os.path.abspath('..'))
|
|
import udica.__main__
|
|
|
|
+# Use the selinux and semanage packages provided by the system instead of the mock ones. When
|
|
+# running on a system with SELinux disabled (e.g. in a container), it must be set to False.
|
|
+# On RHEL, CentOS or Fedora it may be set to True.
|
|
+SELINUX_ENABLED = False
|
|
+
|
|
class TestMain(unittest.TestCase):
|
|
"""Test basic functionality of udica"""
|
|
|
|
@@ -72,11 +77,17 @@ class TestMain(unittest.TestCase):
|
|
# FIXME: the load_policy function is not properly restoring current working directory
|
|
self.cwd = os.getcwd()
|
|
|
|
+ if SELINUX_ENABLED:
|
|
+ sys.path = [path for path in sys.path if path not in (os.getcwd(), '')]
|
|
+
|
|
import selinux
|
|
importlib.reload(selinux)
|
|
import semanage
|
|
importlib.reload(semanage)
|
|
|
|
+ if SELINUX_ENABLED:
|
|
+ sys.path = [''] + sys.path
|
|
+
|
|
with patch('sys.argv', args):
|
|
with patch('sys.stderr.write') as mock_err, patch('sys.stdout.write') as mock_out:
|
|
mock_out.output = ""
|
|
--
|
|
2.20.1
|
|
|