normalize varname as cnfvar.py expects it
authorPhilipp Gesang <philipp.gesang@intra2net.com>
Mon, 5 Nov 2018 09:39:12 +0000 (10:39 +0100)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Mon, 5 Nov 2018 11:21:05 +0000 (12:21 +0100)
When cnfvar reads variables, it normalizes the names to
lowercase. Only when emitting classic CNF_FILE style output
the names are uppercased for set_cnf.

src/simple_cnf.py
test/test_simple_cnf.py

index ae7c264..25cb52e 100644 (file)
@@ -273,7 +273,7 @@ class SimpleCnf(object):
         :rtype: int
         """
         result = 0
-        varname = varname.upper()
+        varname = varname.lower()
         for entry in self.__cnfvars:
             if entry['varname'] == varname:
                 result = max(result, entry['number']+1)
@@ -310,7 +310,7 @@ class SimpleCnf(object):
         elif number is None:
             number = self._find_new_number(self.__cnfvars)
 
-        new_var = dict(varname=varname.upper(), data=data,
+        new_var = dict(varname=varname.lower(), data=data,
                        number=number, comment=None, instance=instance)
         if children:
             new_var['children'] = children   # only add if non-empty
@@ -511,7 +511,7 @@ class SimpleCnf(object):
             dict_key = 'number'
         else:                      # assume key name
             dict_key = 'varname'
-            item = item.upper()
+            item = item.lower()
 
         # search all entries for matches
         results = [dict_entry for dict_entry in self.__cnfvars
@@ -558,7 +558,7 @@ class SimpleCnf(object):
         if name is None:
             name_test = lambda test_val: True
         else:
-            name = name.upper()
+            name = name.lower()
             name_test = lambda test_val: name == test_val['varname']
 
         if value is None:
index c0583d9..49a77c3 100755 (executable)
@@ -230,9 +230,12 @@ class SimpleCnfTest(unittest.TestCase):
         """ test method :py:meth:`SimpleCnf.get_children` """
         with self.assertRaises(ValueError):
             self.cnf.get_children()
-
         self.assertEqual(len(self.cnf.get(name='user', value='mueller')
                              .get_children()), 16)
+        self.assertEqual(self.cnf.get(name='user'),
+                         self.cnf.get(name='USER'))
+        self.assertEqual(self.cnf.get(name='user', value='mueller'),
+                         self.cnf.get(name='USER', value='mueller'))
         self.assertEqual(len(self.cnf[57].get_children()), 1)
         self.assertEqual(self.cnf[57].get_children().get_value(), '7200')