def test_already_restored(self): """Make invalid 0.5.2 hierarchy, upgrade, and restore""" hierarchy = """ loc1: .meta: group1.dict: group2.dict: group3.list: group4.matrix: group5.dict: loc2: .meta: group6.dict: """ hierarchy = yaml.load(hierarchy) root = os.path.join(self.root_path, 'root2') self.make_hierarchy(root, hierarchy) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 4) history = upgrade.walk(root) self.assertEquals(history, list()) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 4) # No history was captured self.assertRaises(ValueError, upgrade.restore, root)
def test_restore_invalid(self): """Make invalid 0.5.2 hierarchy, upgrade, and restore""" hierarchy = """ loc1: .meta: group1.matrix: .group2: group3.list: group4: group5.wrongdict: loc2: .meta: group6.dict: """ hierarchy = yaml.load(hierarchy) root = os.path.join(self.root_path, 'root1') self.make_hierarchy(root, hierarchy) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 1) upgrade.walk(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 2) upgrade.restore(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 1) # Once restored, there shouldn't be a history left self.assertFalse( os.path.exists( os.path.join(root, upgrade.HISTORY_FILE)))
def test_restore_invalid(self): """Make invalid 0.5.2 hierarchy, upgrade, and restore""" hierarchy = """ loc1: .meta: group1.matrix: .group2: group3.list: group4: group5.wrongdict: loc2: .meta: group6.dict: """ hierarchy = yaml.load(hierarchy) root = os.path.join(self.root_path, 'root1') self.make_hierarchy(root, hierarchy) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 1) upgrade.walk(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 2) upgrade.restore(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 1) # Once restored, there shouldn't be a history left self.assertFalse( os.path.exists(os.path.join(root, upgrade.HISTORY_FILE)))
def test_restorable(self): """Make invalid 0.5.2 hierarchy, upgrade, and restore""" hierarchy = """ loc1: .meta: group1: """ hierarchy = yaml.load(hierarchy) root = os.path.join(self.root_path, 'root3') self.make_hierarchy(root, hierarchy) types = self.counts(root) self.assertEquals(types.get('total', 0), 4) self.assertEquals(types.get('dict', 0), 0) upgrade.walk(root) self.assertTrue(upgrade.restorable(root))
def setUp(self): hierarchy = """ 0.5.2: .meta: client.dict: address: street.string: "Blackwall way" phone.string: "112" city.string: "London" production.dict: camera.dict: resolution: delivery.dict: inhouse: another: spiderman: .meta: range.dict: start.int: 1000 end.int: 2000 world.matrix: x.float: 0.1 y.float: 0.15 z.float: 0.1 """ root_path = tempfile.mkdtemp() hierarchy = yaml.load(hierarchy) self.make_hierarchy(root_path, hierarchy) self.root_path = root_path types = self.counts() self.assertEquals(types['total'], 15) self.assertEquals(types['dict'], 5) self.assertEquals(types['matrix'], 1)
def test_restore(self): """Make new 0.5.2 hierarchy, upgrade, and restore""" hierarchy = """ loc1: .meta: group1: group2.dict: group3.dict: group4: group5.dict: loc2: .meta: group6: """ hierarchy = yaml.load(hierarchy) root = os.path.join(self.root_path, 'root0') self.make_hierarchy(root, hierarchy) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 3) upgrade.walk(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 6) upgrade.restore(root) types = self.counts(root) self.assertEquals(types.get('total', 0), 11) self.assertEquals(types.get('dict', 0), 3)
def setUp(self): """Write fixture Hierarchy syntax; JSON, plus a few additional concepts. - Underscore (_) means an empty file - Prefix and suffix underscore means write as-is, not string """ hierarchy = """ CONTAINER: deep.dict: data.dict: key.string: "value" duplicate.int: 5 duplicate.string: "five" simple.string: "value" CaseSensitive: CONTAINER: data.string: "value here" empty: root: content: jobs: spiderman: CONTAINER: apps.dict: houdini.dict: maya.dict: name.string: "Maya 2015 Base" version.int: 2015 deep.dict: subdeep.dict: value.string: "Value" corrupt.string: True height.int: 10 nosuffix_novalue: _ nosuffix.string: "string value" standard_int.int: 10 unknown.abc: _ unknown_corrupt.abc: _corrupt_ unknown_string.abc: "this is of type string" 1000: CONTAINER: apps.dict: houdini.dict: maya.dict: name.string: "Maya 2015 Shot 1000" """.replace('CONTAINER', openmetadata.path.Path.CONTAINER) root_path = tempfile.mkdtemp() project_path = os.path.join(root_path, 'root', 'content', 'jobs', 'spiderman') asset_path = os.path.join(project_path, 'Peter') case_path = os.path.join(root_path, 'CaseSensitive') hierarchy = yaml.load(hierarchy) self.make_hierarchy(root_path, hierarchy) self.root_path = root_path self.project_path = project_path self.asset_path = asset_path self.empty_path = os.path.join(root_path, 'empty') self.case_path = case_path self.file_path = os.path.join(root_path, 'file.txt') self.root = om.Location(root_path) self.project = om.Location(project_path) self.asset = om.Location(asset_path)