From d7e11e39f5bfbbe8134efa9e8f4b7cf795ae7791 Mon Sep 17 00:00:00 2001 From: rzaitov Date: Wed, 13 Nov 2013 18:08:19 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=BD=D0=B0=20settingsMerger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SettingsMerger/test_SettingsMerger.py | 29 +++++++++++++++++++ .../parsers/SettingsParser/SettingsMerger.py | 14 +++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/scripts/TouchinBuild/Tests/UnitTests/SettingsMerger/test_SettingsMerger.py b/scripts/TouchinBuild/Tests/UnitTests/SettingsMerger/test_SettingsMerger.py index 6936e13..a97056c 100644 --- a/scripts/TouchinBuild/Tests/UnitTests/SettingsMerger/test_SettingsMerger.py +++ b/scripts/TouchinBuild/Tests/UnitTests/SettingsMerger/test_SettingsMerger.py @@ -45,3 +45,32 @@ class TestSettingsMerger(unittest.TestCase): self.assertEqual('new_value3', self.globalSettings['child1']['sub_key1']) self.assertEqual('value4', self.globalSettings['child1']['sub_key2']) + def test_getPropertyName(self): + self.checkName(['one', 'two', 'three'], 'three') + self.checkName(['one', 'two'], 'two') + self.checkName(['one'], 'one') + + def checkName(self, segments, expectedName): + name = self.merger.getPropertyName(segments) + self.assertEqual(name, expectedName) + + def test_checkPath(self): + self.checkPath(['one', 'two', 'three'], ['one', 'two']) + self.checkPath(['one', 'two'], ['one']) + self.checkPath(['one'], []) + + def checkPath(self, segments, expectedPath): + path = self.merger.getPath(segments) + + self.assertListEqual(expectedPath, path) + + def test_mergeNotExistSetting(self): + description = { + 'segments': ['new_key'], + 'value': 'new_value' + } + + print self.globalSettings + self.assertEqual('new_value', self.globalSettings['new_key']) + + diff --git a/scripts/TouchinBuild/parsers/SettingsParser/SettingsMerger.py b/scripts/TouchinBuild/parsers/SettingsParser/SettingsMerger.py index 9bb5684..b45b829 100644 --- a/scripts/TouchinBuild/parsers/SettingsParser/SettingsMerger.py +++ b/scripts/TouchinBuild/parsers/SettingsParser/SettingsMerger.py @@ -6,8 +6,8 @@ class SettingsMerger: value = settingDescription['value'] segments = settingDescription['segments'] - propPath = segments[0:-1] - propName = segments[-1] + propPath = self.getPath(segments) + propName = self.getPropertyName(segments) settingsDict = self.getSettingsDictByPath(globalSettings, propPath) settingsDict[propName] = value @@ -22,4 +22,12 @@ class SettingsMerger: settingsDict = settingsDict[segment] - return settingsDict \ No newline at end of file + return settingsDict + + def getPath(self, segments): + assert segments is not None + return segments[0:-1] + + def getPropertyName(self, segments): + assert segments is not None + return segments[-1] \ No newline at end of file