Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)))
Example #4
0
    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)))
Example #5
0
    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))
Example #6
0
    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)
Example #7
0
    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))
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
    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)