summaryrefslogtreecommitdiffstats
path: root/tests/pyanaconda_test/security_test.py
blob: 33b94c18c015d387cedec3505863b276fdde818a (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/python

import mock
import sys

class SecurityTest(mock.TestCase):
    def setUp(self):
        self.setupModules(["_isys", "block", "ConfigParser"])

        self.fs = mock.DiskIO()

        import pyanaconda.security
        pyanaconda.security.log = mock.Mock()
        pyanaconda.security.open = self.fs.open
        pyanaconda.security.iutil = mock.Mock()

        import pyanaconda.flags
        pyanaconda.flags.flags.selinux = 1

    def tearDown(self):
        self.tearDownModules()

    def set_get_selinux_test(self):
        import pyanaconda.security

        states = pyanaconda.security.selinux_states
        scrt = pyanaconda.security.Security()

        for state in states:
            scrt.setSELinux(state)
            self.assertEqual(scrt.getSELinux(), state)

    def set_get_selinux_bad_sate_test(self):
        import pyanaconda.security

        states = pyanaconda.security.selinux_states
        scrt = pyanaconda.security.Security()
        scrt.setSELinux('bad_state')
        self.assertTrue(scrt.getSELinux() in states)

    def write_test(self):
        """Simulate writing security (simulate executing lokkit and authconfig)"""
        import pyanaconda.security

        scrt = pyanaconda.security.Security()
        pyanaconda.security.ROOT_PATH = "/tmp/security"
        scrt.write()

        self.assertEqual(pyanaconda.security.iutil.method_calls,
            [('execWithRedirect',
                ('/usr/sbin/lokkit', ['--selinux=enforcing']),
                {'root': '/tmp/security', 'stderr': '/dev/null', 'stdout': '/dev/null'}
             ),
             ('resetRpmDb', (), {}),
             ('execWithRedirect',
                ('/usr/sbin/authconfig',
                    ['--update', '--nostart', '--enableshadow', '--passalgo=sha512']
                ),
                {'root': '/tmp/security', 'stderr': '/dev/tty5', 'stdout': '/dev/tty5'}
             )
            ]
        )