cnfvar.print_cnf(cnf, out=devnull)
+class CnfVarUnittestVarnameCase(unittest.TestCase):
+ """Tests for verifying that uppercasing/lowercasing of varname works."""
+ # TODO: rethink whether this lower-casing is worth all the effort it causes
+
+ def test_dump_cnf_uppercase(self):
+ """Test dump of cnfvars results in uppercase var names."""
+ cnf = {"cnf": [
+ {"instance": 0, "varname": "dialout_mode",
+ "data": "ONLINE", "number": 1, "comment": None},
+ {"instance": 0, "varname": "dialout_defaultprovider_ref",
+ "data": "1", "number": 2, "comment": None},
+ {"instance": 0, "varname": "hypothetical_parent",
+ "data": "parent value", "number": 3, "comment": None,
+ "children": [
+ {"instance": 0, "varname": "hypothetical_child",
+ "data": "0", "number": 4, "parent": 3, "comment": None},
+ {"instance": 1, "varname": "hypothetical_child",
+ "data": "1", "number": 5, "parent": 3, "comment": None}]}
+ ]}
+ serialization = cnfvar.dump_json_string(cnf)
+ self.assertIn('DIALOUT_MODE', serialization)
+ self.assertIn('DIALOUT_DEFAULTPROVIDER_REF', serialization)
+ self.assertIn('HYPOTHETICAL_CHILD', serialization)
+ self.assertNotIn('dialout_mode', serialization)
+ self.assertNotIn('dialout_defaultprovider_ref', serialization)
+ self.assertNotIn('hypothetical_child', serialization)
+
+ def test_read_cnf_lowercase(self):
+ """Test that after reading, varnames are lowercase."""
+ cnf = cnfvar.read_cnf_json(demo_jsoncnf.encode('latin1'))
+ for parentvar in cnf['cnf']:
+ self.assertEqual(parentvar['varname'],
+ parentvar['varname'].lower())
+ if 'children' in parentvar:
+ for childvar in parentvar['children']:
+ self.assertEqual(parentvar['varname'],
+ parentvar['varname'].lower())
+
+
if __name__ == '__main__':
unittest.main()