summaryrefslogtreecommitdiffstats
path: root/tests/pyanaconda_test/simpleconfig_test.py
blob: 265ed8879d25bfd467889dbe178a0129af81715d (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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/usr/bin/python

import mock
import os
import sys

class SimpleconfigTest(mock.TestCase):
    def setUp(self):
        self.setupModules(["_isys", "block", "ConfigParser"])
        import pyanaconda.simpleconfig

        # Stuff for IfcfgFile class tests
        self.DIR = '/tmp/'
        self.IFACE = 'eth0'
        self.PATH = "%sifcfg-%s" % (self.DIR, self.IFACE)
        self.CONTENT = '# Broadcom Corporation NetXtreme BCM5761 Gigabit Ethernet\n'
        self.CONTENT += 'DEVICE=eth0\n'
        self.CONTENT += 'HWADDR=00:10:18:61:35:98\n'
        self.CONTENT += 'ONBOOT=no\n'
        open(self.PATH, 'w').write(self.CONTENT)

    def tearDown(self):
        self.tearDownModules()

    def uppercase_ascii_string_letters_test(self):
        """Converting to uppercase (letters)"""
        import pyanaconda.simpleconfig
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('abcd')
        self.assertEqual(ret, 'ABCD')
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('aBCD')
        self.assertEqual(ret, 'ABCD')
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('ABCD')
        self.assertEqual(ret, 'ABCD')

    def uppercase_ascii_string_numbers_test(self):
        """Converting to uppercase (numbers)"""
        import pyanaconda.simpleconfig
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('123')
        self.assertEqual(ret, '123')

    def uppercase_ascii_string_others_test(self):
        """Converting to uppercase (special chars)"""
        import pyanaconda.simpleconfig
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('--')
        self.assertEqual(ret, '--')
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string(' ')
        self.assertEqual(ret, ' ')
        ret = pyanaconda.simpleconfig.uppercase_ASCII_string('')
        self.assertEqual(ret, '')

    def unquote_test(self):
        from pyanaconda.simpleconfig import unquote
        self.assertEqual(unquote("plain string"), "plain string")
        self.assertEqual(unquote('"double quote"'), "double quote")
        self.assertEqual(unquote("'single quote'"), "single quote")

    def quote_test(self):
        from pyanaconda.simpleconfig import quote
        self.assertEqual(quote("nospaces"), "nospaces")
        self.assertEqual(quote("plain string"), '"plain string"')
        self.assertEqual(quote("alwaysquote", always=True), '"alwaysquote"')

    def set_and_get_test(self):
        """Setting and getting values"""
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.SimpleConfigFile()
        scf.set(('key1', 'value1'))
        self.assertEqual(scf.get('key1'), 'value1')
        scf.set(('KEY2', 'value2'))
        self.assertEqual(scf.get('key2'), 'value2')
        scf.set(('KEY3', 'value3'))
        self.assertEqual(scf.get('KEY3'), 'value3')
        scf.set(('key4', 'value4'))
        self.assertEqual(scf.get('KEY4'), 'value4')

    def unset_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.SimpleConfigFile()
        scf.set(('key1', 'value1'))
        scf.unset(('key1'))
        self.assertEqual(scf.get('key1'), '')

    def write_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.SimpleConfigFile()
        scf.set(('key1', 'value1'))
        scf.write('/tmp/file')
        self.assertEqual(open('/tmp/file').read(), 'KEY1=value1\n')

    def read_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.SimpleConfigFile()
        open('/tmp/file', 'w').write('KEY1="value1"\n')
        scf.read('/tmp/file')
        self.assertEqual(scf.get('key1'), 'value1')

    def read_write_test(self):
        from pyanaconda.simpleconfig import SimpleConfigFile
        scf = SimpleConfigFile()
        scf.read(self.PATH)
        scf.write("/tmp/file")
        self.assertEqual(open("/tmp/file").read(), self.CONTENT)

    def write_new_keys_test(self):
        from pyanaconda.simpleconfig import SimpleConfigFile
        scf = SimpleConfigFile()
        scf.read(self.PATH)
        scf.set(("key1", "value1"))
        scf.write("/tmp/file")
        self.assertEqual(open("/tmp/file").read(),
                         self.CONTENT+"KEY1=value1\n")

    def remove_key_test(self):
        from pyanaconda.simpleconfig import SimpleConfigFile
        scf = SimpleConfigFile()
        scf.read(self.PATH)
        scf.unset("BOOT")
        scf.write("/tmp/file")
        scf.reset()
        scf.read("/tmp/file")
        self.assertEqual(scf.get("BOOT"), "")

    def ifcfgfile_path_property_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.IfcfgFile(self.DIR, self.IFACE)
        self.assertEqual(scf.path, self.PATH)

    def ifcfgfile_read_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.IfcfgFile(self.DIR, self.IFACE)
        scf.read()
        self.assertEqual(scf.get('device'), 'eth0')
        self.assertEqual(scf.get('hwaddr'), '00:10:18:61:35:98')
        self.assertEqual(scf.get('onboot'), 'no')

    def ifcfgfile_read_and_clear_test(self):
        import pyanaconda.simpleconfig        
        scf = pyanaconda.simpleconfig.IfcfgFile(self.DIR, self.IFACE)
        scf.read()
        scf.clear()
        self.assertEqual(scf.get('device'), '')
        self.assertEqual(scf.get('hwaddr'), '')
        self.assertEqual(scf.get('onboot'), '')

    def ifcfgfile_write_test(self):
        import pyanaconda.simpleconfig
        scf = pyanaconda.simpleconfig.IfcfgFile(self.DIR, self.IFACE)
        scf.set(('device', 'eth0'))
        scf.set(('hwaddr', '00:11:22:33:44:55'))
        scf.set(('onboot', 'no'))
        scf.write()
        self.assertEqual(open(self.PATH).read(),
            'DEVICE="eth0"\nHWADDR="00:11:22:33:44:55"\nONBOOT="no"\n')