Blame python/sepolicy/test_sepolicy.py

Packit Service 9fb14c
import unittest
Packit Service 9fb14c
import os
Packit Service 9fb14c
import shutil
Packit Service 9fb14c
from tempfile import mkdtemp
Packit Service 9fb14c
from subprocess import Popen, PIPE
Packit Service 9fb14c
Packit Service 9fb14c
Packit Service 9fb14c
class SepolicyTests(unittest.TestCase):
Packit Service 9fb14c
Packit Service 9fb14c
    def assertDenied(self, err):
Packit Service 9fb14c
        self.assert_('Permission denied' in err,
Packit Service 9fb14c
                     '"Permission denied" not found in %r' % err)
Packit Service 9fb14c
Packit Service 9fb14c
    def assertNotFound(self, err):
Packit Service 9fb14c
        self.assert_('not found' in err,
Packit Service 9fb14c
                     '"not found" not found in %r' % err)
Packit Service 9fb14c
Packit Service 9fb14c
    def assertFailure(self, status):
Packit Service 9fb14c
        self.assertNotEqual(status, 0,
Packit Service 9fb14c
                     'Succeeded when it should have failed')
Packit Service 9fb14c
Packit Service 9fb14c
    def assertSuccess(self, status, err):
Packit Service 9fb14c
        self.assertEqual(status, 0,
Packit Service 9fb14c
                     'sepolicy should have succeeded for this test %r' % err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_man_domain(self):
Packit Service 9fb14c
        "Verify sepolicy manpage -d works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'manpage', '-d', 'httpd_t'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_man_all(self):
Packit Service 9fb14c
        "Verify sepolicy manpage -a works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'manpage', '-a'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_network_l(self):
Packit Service 9fb14c
        "Verify sepolicy network -l works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'network', '-l'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_network_t(self):
Packit Service 9fb14c
        "Verify sepolicy network -t works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'network', '-t', 'http_port_t'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_network_p(self):
Packit Service 9fb14c
        "Verify sepolicy network -p works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'network', '-p', '80'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_network_d(self):
Packit Service 9fb14c
        "Verify sepolicy network -d works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'network', '-d', 'httpd_t'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_transition_s(self):
Packit Service 9fb14c
        "Verify sepolicy transition -s works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'transition', '-s', 'httpd_t'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_transition_t(self):
Packit Service 9fb14c
        "Verify sepolicy transition -t works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'transition', '-s', 'httpd_t', '-t', 'sendmail_t'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_booleans_a(self):
Packit Service 9fb14c
        "Verify sepolicy booleans -a works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'booleans', '-a'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_booleans_b_alias(self):
Packit Service 9fb14c
        "Verify sepolicy booleans -b works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'booleans', '-b', 'allow_ypbind'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_booleans_b(self):
Packit Service 9fb14c
        "Verify sepolicy booleans -b works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'booleans', '-b', 'nis_enabled'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_interface_l(self):
Packit Service 9fb14c
        "Verify sepolicy interface -l works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'interface', '-l'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_interface_a(self):
Packit Service 9fb14c
        "Verify sepolicy interface -a works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'interface', '-a'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_interface_p(self):
Packit Service 9fb14c
        "Verify sepolicy interface -u works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'interface', '-u'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
    def test_interface_ci(self):
Packit Service 9fb14c
        "Verify sepolicy interface -c -i works"
Packit Service 9fb14c
        p = Popen(['sepolicy', 'interface', '-c', '-i', 'apache_admin'], stdout=PIPE)
Packit Service 9fb14c
        out, err = p.communicate()
Packit Service 9fb14c
        self.assertSuccess(p.returncode, err)
Packit Service 9fb14c
Packit Service 9fb14c
if __name__ == "__main__":
Packit Service 9fb14c
    import selinux
Packit Service 9fb14c
    if selinux.is_selinux_enabled() and selinux.security_getenforce() == 1:
Packit Service 9fb14c
        unittest.main()
Packit Service 9fb14c
    else:
Packit Service 9fb14c
        print("SELinux must be in enforcing mode for this test")