1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#!/usr/bin/env python 2424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 3424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 4424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)# found in the LICENSE file. 5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)import unittest 7424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from manifest_features import ConvertDottedKeysToNested 9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)class ManifestFeaturesTest(unittest.TestCase): 11424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) def testConvertDottedKeysToNested(self): 12424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) docs = { 13424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc1.sub2': { 14424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc1.sub2' 15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc1': { 17424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc1' 18424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc2': { 20424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc2' 21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc1.sub1.subsub1': { 23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc1.sub1.subsub1' 24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc1.sub1': { 26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc1.sub1' 27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 28424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 29424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 30424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) expected_docs = { 31424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc1': { 32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc1', 33424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'children': { 34424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'sub1': { 35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'sub1', 36424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'children': { 37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'subsub1': { 38424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name' :'subsub1' 39424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 40424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 41424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 42424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'sub2': { 43424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'sub2' 44424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 45424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 46424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) }, 47424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'doc2': { 48424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'name': 'doc2' 49424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 50424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) } 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) self.assertEqual(expected_docs, ConvertDottedKeysToNested(docs)) 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)if __name__ == '__main__': 55424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) unittest.main() 56