#
# Tests for the 'osbuild.util.selinux' module.
#
import io
import unittest
from osbuild.util import selinux
class TestObjectStore(unittest.TestCase):
def test_selinux_config(self):
f = io.StringIO()
cfg = selinux.parse_config(f)
self.assertIsNotNone(cfg)
policy = selinux.config_get_policy(cfg)
self.assertIsNone(policy)
example_good = """
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
"""
f = io.StringIO(example_good)
cfg = selinux.parse_config(f)
self.assertIn('SELINUX', cfg)
self.assertIn('SELINUXTYPE', cfg)
self.assertEqual(cfg['SELINUX'], 'enforcing')
self.assertEqual(cfg['SELINUXTYPE'], 'targeted')
policy = selinux.config_get_policy(cfg)
self.assertEqual(policy, 'targeted')