in tools/plisttool/plisttool_unittest.py [0:0]
def test_recursive_substitutions(self):
plist1 = _xml_plist(
'<key>Foo</key>'
'<dict>'
' <key>Foo1</key>'
' <string>${BUNDLE_NAME}</string>'
' <key>Foo2</key>'
' <string>RAW_NAME</string>'
' <key>Foo3</key>'
' <array>'
' <string>${BUNDLE_NAME}</string>'
' <string>RAW_NAME</string>'
' </array>'
'</dict>'
'<key>Bar</key>'
'<array>'
' <string>${BUNDLE_NAME}</string>'
' <string>RAW_NAME</string>'
' <dict>'
' <key>Baz</key>'
' <string>${BUNDLE_NAME}</string>'
' <key>Baz2</key>'
' <string>RAW_NAME</string>'
' </dict>'
'</array>'
)
outdict = _plisttool_result({
'plists': [plist1],
'variable_substitutions': {
'BUNDLE_NAME': 'MyBundle',
},
'raw_substitutions': {
'RAW_NAME': 'MyValue',
},
})
self.assertEqual('MyBundle', outdict.get('Foo').get('Foo1'))
self.assertEqual('MyValue', outdict.get('Foo').get('Foo2'))
self.assertEqual('MyBundle', outdict.get('Foo').get('Foo3')[0])
self.assertEqual('MyValue', outdict.get('Foo').get('Foo3')[1])
self.assertEqual('MyBundle', outdict.get('Bar')[0])
self.assertEqual('MyValue', outdict.get('Bar')[1])
self.assertEqual('MyBundle', outdict.get('Bar')[2].get('Baz'))
self.assertEqual('MyValue', outdict.get('Bar')[2].get('Baz2'))