diff --git a/scripts/UnitTests/SettingsParser/test_SettingsParser.py b/scripts/UnitTests/SettingsParser/test_SettingsParser.py index f515880..2ad2ad4 100644 --- a/scripts/UnitTests/SettingsParser/test_SettingsParser.py +++ b/scripts/UnitTests/SettingsParser/test_SettingsParser.py @@ -22,4 +22,64 @@ class TestSettingsParser(unittest.TestCase): self.parser.getSettingsDictByPath(['another', 'two']) len2 = len(self.parser.settings) - self.assertEqual(2, len2) \ No newline at end of file + self.assertEqual(2, len2) + + def test_processLine(self): + line1 = "x.y.name1 = 'value1'" + line2 = "x.y.name2 = 'value2'" + line3 = "x.z.name1 = 'value3'" + line4 = "x.z.name2 = 'value4'" + + line5 = "a.y.name1 = 'value5'" + line6 = "a.y.name2 = 'value6'" + line7 = "a.z.name1 = 'value7'" + line8 = "a.z.name2 = 'value8'" + + self.parser.processLine(line1) + self.parser.processLine(line2) + self.parser.processLine(line3) + self.parser.processLine(line4) + self.parser.processLine(line5) + self.parser.processLine(line6) + self.parser.processLine(line7) + self.parser.processLine(line8) + + self.assertEqual('value1', self.parser.settings['x']['y']['name1']) + self.assertEqual('value2', self.parser.settings['x']['y']['name2']) + self.assertEqual('value3', self.parser.settings['x']['z']['name1']) + self.assertEqual('value4', self.parser.settings['x']['z']['name2']) + + self.assertEqual('value5', self.parser.settings['a']['y']['name1']) + self.assertEqual('value6', self.parser.settings['a']['y']['name2']) + self.assertEqual('value7', self.parser.settings['a']['z']['name1']) + self.assertEqual('value8', self.parser.settings['a']['z']['name2']) + + def test_emptyLinesAndComments(self): + class PartialSettingsParser(SettingsParser): + def __init__(self): + self.processLineCall = 0 + + def processLine(self, line): + self.processLineCall += 1 + + self.parser = PartialSettingsParser() + content = """ +valid.line.with.setting = 'some value' +# this is comment + + another.valid.line = 'another value' + """ + + self.parser.parse(content) + + self.assertEqual(2, self.parser.processLineCall) + + + + + + + + + + diff --git a/scripts/parser/SettingsParser/SettingsParser.py b/scripts/parser/SettingsParser/SettingsParser.py index dcc2275..0561236 100644 --- a/scripts/parser/SettingsParser/SettingsParser.py +++ b/scripts/parser/SettingsParser/SettingsParser.py @@ -10,12 +10,22 @@ class SettingsParser: lines = content.splitlines() for line in lines: - self.processLine(line) + stripped = line.strip(' \t\n\r') + print (line, stripped) + + if len(stripped) == 0: + continue + if stripped.startswith("#"): + continue + + self.processLine(stripped) def processLine(self, line): parser = SettingsLineParser() - result = parser.parseLine(line) + setting = parser.parseLine(line) + + self.mergeSetting(setting) def mergeSetting(self, setting): value = setting['value']