def assertCfgEquals(self, blob1, blob2):
     b1 = dict(SysConf(blob1.strip().splitlines()))
     b2 = dict(SysConf(blob2.strip().splitlines()))
     self.assertEqual(b1, b2)
     for (k, v) in b1.items():
         self.assertIn(k, b2)
     for (k, v) in b2.items():
         self.assertIn(k, b1)
     for (k, v) in b1.items():
         self.assertEqual(v, b2[k])
示例#2
0
 def test_parse_shell_vars(self):
     contents = 'USESMBAUTH=$XYZ'
     conf = SysConf(contents.splitlines())
     self.assertEqual(contents, str(conf))
     conf = SysConf('')
     conf['B'] = '${ZZ}d apples'
     # Should be quoted
     self.assertEqual('B="${ZZ}d apples"', str(conf))
     conf = SysConf('')
     conf['B'] = '$? d apples'
     self.assertEqual('B="$? d apples"', str(conf))
     contents = 'IPMI_WATCHDOG_OPTIONS="timeout=60"'
     conf = SysConf(contents.splitlines())
     self.assertEqual('IPMI_WATCHDOG_OPTIONS=timeout=60', str(conf))
示例#3
0
 def test_parse_shell_vars(self):
     contents = "USESMBAUTH=$XYZ"
     conf = SysConf(contents.splitlines())
     self.assertEqual(contents, str(conf))
     conf = SysConf("")
     conf["B"] = "${ZZ}d apples"
     # Should be quoted
     self.assertEqual('B="${ZZ}d apples"', str(conf))
     conf = SysConf("")
     conf["B"] = "$? d apples"
     self.assertEqual('B="$? d apples"', str(conf))
     contents = 'IPMI_WATCHDOG_OPTIONS="timeout=60"'
     conf = SysConf(contents.splitlines())
     self.assertEqual("IPMI_WATCHDOG_OPTIONS=timeout=60", str(conf))
示例#4
0
 def test_parse_add_new(self):
     contents = 'BLAH=b'
     conf = SysConf(contents.splitlines())
     conf['Z'] = 'd'
     contents = str(conf)
     self.assertIn("Z=d", contents)
     self.assertIn("BLAH=b", contents)
示例#5
0
 def test_parse_add_new(self):
     contents = "BLAH=b"
     conf = SysConf(contents.splitlines())
     conf["Z"] = "d"
     contents = str(conf)
     self.assertIn("Z=d", contents)
     self.assertIn("BLAH=b", contents)
示例#6
0
def read_sysconfig_file(fn):
    exists = False
    try:
        contents = util.load_file(fn).splitlines()
        exists = True
    except IOError:
        contents = []
    return (exists, SysConf(contents))
示例#7
0
 def test_parse_adjust(self):
     contents = 'IPV6TO4_ROUTING="eth0-:0004::1/64 eth1-:0005::1/64"'
     conf = SysConf(contents.splitlines())
     # Should be unquoted
     self.assertEqual("eth0-:0004::1/64 eth1-:0005::1/64",
                      conf["IPV6TO4_ROUTING"])
     conf["IPV6TO4_ROUTING"] = "blah \tblah"
     contents2 = str(conf).strip()
     # Should be requoted due to whitespace
     self.assertRegex(contents2, r"IPV6TO4_ROUTING=[\']blah\s+blah[\']")
示例#8
0
    def test_parse_no_change(self):
        contents = '''# A comment
USESMBAUTH=no
KEYTABLE=/usr/lib/kbd/keytables/us.map
SHORTDATE=$(date +%y:%m:%d:%H:%M)
HOSTNAME=blahblah
NETMASK0=255.255.255.0
# Inline comment
LIST=$LOGROOT/incremental-list
IPV6TO4_ROUTING='eth0-:0004::1/64 eth1-:0005::1/64'
ETHTOOL_OPTS="-K ${DEVICE} tso on; -G ${DEVICE} rx 256 tx 256"
USEMD5=no'''
        conf = SysConf(contents.splitlines())
        self.assertEqual(conf['HOSTNAME'], 'blahblah')
        self.assertEqual(conf['SHORTDATE'], '$(date +%y:%m:%d:%H:%M)')
        # Should be unquoted
        self.assertEqual(conf['ETHTOOL_OPTS'], ('-K ${DEVICE} tso on; '
                                                '-G ${DEVICE} rx 256 tx 256'))
        self.assertEqual(contents, str(conf))
示例#9
0
 def test_parse_empty(self):
     contents = ''
     conf = SysConf(contents.splitlines())
     self.assertEqual('', str(conf).strip())
示例#10
0
 def test_parse_no_adjust_shell(self):
     conf = SysConf(''.splitlines())
     conf['B'] = ' $(time)'
     contents = str(conf)
     self.assertEqual('B= $(time)', contents)
示例#11
0
 def test_parse_no_adjust_shell(self):
     conf = SysConf("".splitlines())
     conf["B"] = " $(time)"
     contents = str(conf)
     self.assertEqual("B= $(time)", contents)