summaryrefslogtreecommitdiffstats
path: root/tests/pyanaconda_test/flags_test.py
blob: e4046d56d45f118eb8a5306af11f238fef08a3f7 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/usr/bin/python

# Test Bug 500198

import mock
import sys


class FlagsTest(mock.TestCase):
    """Simulate /proc/cmdline parameters parsing (#500198)"""

    def setUp(self):
        self.setupModules(["_isys", "block", "ConfigParser"])

        self.fs = mock.DiskIO()

        import pyanaconda.flags

        self.mock2 = mock.Mock()
        pyanaconda.flags.open = mock.Mock(return_value=self.mock2)

    def tearDown(self):
        self.tearDownModules()

    def createcmdlinedict_1_test(self):
        """/proc/cmdline without BOOT_IMAGE param"""
        import pyanaconda.flags

        self.cmd = 'vmlinuz initrd=initrd.img stage2=hd:LABEL="Fedora" xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        cmddict = pyanaconda.flags.flags.createCmdlineDict()

        self.assertEqual(set(cmddict.keys()),
            set(['vmlinuz', 'initrd', 'stage2', 'xdriver', 'nomodeset']))

    def createcmdlinedict_2_test(self):
        """/proc/cmdline param: quotes at end"""
        import pyanaconda.flags

        self.cmd = 'vmlinuz BOOT_IMAGE=/boot/img initrd=initrd.img stage2=hd:LABEL="Fedora"'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        try:
            cmddict = pyanaconda.flags.flags.createCmdlineDict()
        except (ValueError):
            self.assertTrue(False, "ValueError exception was raised.")

        self.assertEqual(set(cmddict.keys()),
            set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))

    def createcmdlinedict_3_test(self):
        """/proc/cmdline param BOOT_IMAGE with quotes (no quotes at end)"""
        import pyanaconda.flags

        self.cmd = 'vmlinuz BOOT_IMAGE="img img" initrd=initrd.img'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        cmddict = pyanaconda.flags.flags.createCmdlineDict()

        self.assertEqual(set(cmddict.keys()),
            set(['vmlinuz', 'BOOT_IMAGE', 'initrd']))

    def createcmdlinedict_4_test(self):
        """/proc/cmdline param BOOT_IMAGE with quotes (no quotes at end) v2"""
        import pyanaconda.flags

        self.cmd = 'vmlinuz BOOT_IMAGE="/boot/img" stage2=hd:LABEL="Fedora" initrd=initrd.img'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        cmddict = pyanaconda.flags.flags.createCmdlineDict()

        self.assertEqual(set(cmddict.keys()),
            set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))

    def createcmdlinedict_5_test(self):
        """/proc/cmdline param: BOOT_IMAGE with quotes (+ quotes at end)"""
        import pyanaconda.flags

        self.cmd = 'vmlinuz BOOT_IMAGE="/boot/img img" initrd=initrd.img stage2=hd:LABEL="Fedora"'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        try:
            cmddict = pyanaconda.flags.flags.createCmdlineDict()
        except (ValueError):
            self.assertTrue(False, "ValueError exception was raised.")

        self.assertEqual(set(cmddict.keys()),
            set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))

    def setattr_getattr_1_test(self):
        import pyanaconda.flags
        RET = 1
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        pyanaconda.flags.flags.sshd = RET
        self.assertEqual(RET, pyanaconda.flags.flags.sshd)

    def setattr_getattr_2_test(self):
        import pyanaconda.flags
        RET = 0
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        pyanaconda.flags.flags.sshd = RET
        self.assertEqual(RET, pyanaconda.flags.flags.sshd)

    def setattr_getattr_3_test(self):
        import pyanaconda.flags
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)

        def f(): return pyanaconda.flags.flags.fooattr
        self.assertRaises(AttributeError, f)

    def setattr_getattr_4_test(self):
        import pyanaconda.flags
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)

        def f(): pyanaconda.flags.flags.fooattr = 1
        self.assertRaises(AttributeError, f)

    def get_1_test(self):
        import pyanaconda.flags
        RET = 'text'
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        ret = pyanaconda.flags.flags.get('foobar', RET)
        self.assertEqual(RET, ret)

    def get_2_test(self):
        import pyanaconda.flags
        RET = 'text'
        self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
        self.mock2.read = mock.Mock(return_value=self.cmd)
        ret = pyanaconda.flags.flags.get('sshd', RET)
        self.assertNotEqual(RET, ret)