Добавил тесты на settingsMerger

This commit is contained in:
rzaitov 2013-11-13 18:08:19 +04:00
parent 890a51af8a
commit d7e11e39f5
2 changed files with 40 additions and 3 deletions

View File

@ -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'])

View File

@ -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
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]