releasetools: Add dict-like setter to BuildInfo.
BuildInfo already has dict-like getters. This CL adds the matching setter method to keep it backward compatible with device-specific scripts that expect a dict. It also adds items() method that allows iterating the items. Bug: 111087332 Test: python -m unittest test_ota_from_target_files.BuildInfoTest Test: Generate an incremental OTA that sets info_dict in device-specific releasetools script. Change-Id: Idd033f98a9186740f9da1a300d4c2bdddd9c1345
This commit is contained in:
@@ -190,6 +190,16 @@ class BuildInfoTest(unittest.TestCase):
|
||||
self.assertRaises(KeyError,
|
||||
lambda: target_info['build.prop']['ro.build.foo'])
|
||||
|
||||
def test___setitem__(self):
|
||||
target_info = BuildInfo(copy.deepcopy(self.TEST_INFO_DICT), None)
|
||||
self.assertEqual('value1', target_info['property1'])
|
||||
target_info['property1'] = 'value2'
|
||||
self.assertEqual('value2', target_info['property1'])
|
||||
|
||||
self.assertEqual('build-foo', target_info['build.prop']['ro.build.foo'])
|
||||
target_info['build.prop']['ro.build.foo'] = 'build-bar'
|
||||
self.assertEqual('build-bar', target_info['build.prop']['ro.build.foo'])
|
||||
|
||||
def test_get(self):
|
||||
target_info = BuildInfo(self.TEST_INFO_DICT, None)
|
||||
self.assertEqual('value1', target_info.get('property1'))
|
||||
@@ -209,6 +219,12 @@ class BuildInfoTest(unittest.TestCase):
|
||||
self.assertRaises(KeyError,
|
||||
lambda: target_info.get('build.prop')['ro.build.foo'])
|
||||
|
||||
def test_items(self):
|
||||
target_info = BuildInfo(self.TEST_INFO_DICT, None)
|
||||
items = target_info.items()
|
||||
self.assertIn(('property1', 'value1'), items)
|
||||
self.assertIn(('property2', 4096), items)
|
||||
|
||||
def test_GetBuildProp(self):
|
||||
target_info = BuildInfo(self.TEST_INFO_DICT, None)
|
||||
self.assertEqual('build-foo', target_info.GetBuildProp('ro.build.foo'))
|
||||
|
Reference in New Issue
Block a user