def test_recursive_substitutions()

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