Пример #1
0
    def test_multi_key_optional(self):
        """
        Test optional section containing multiple keys.
        """
        definition = "shots/{Shot}[.{branch}.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        relative_path = os.path.join("shots",
                                     "s1.mmm.v003.002.ma")

        expected = os.path.join(self.project_root, relative_path)

        fields = { "Shot": "s1",
                   "branch":"mmm",
                   "version": 3,
                   "snapshot": 2}
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)

        # if one key from optional section missing, whole section skipped.
        relative_path = os.path.join("shots",
                                     "s1.002.ma")

        expected = os.path.join(self.project_root, relative_path)

        fields = { "Shot": "s1",
                   "branch":"mmm",
                   "snapshot": 2}

        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #2
0
    def test_optional_values(self):
        definition = "shots/{Sequence}/{Shot}/{Step}/work/{Shot}[.{branch}][.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        relative_path = os.path.join("shots", "seq_1", "s1", "Anm", "work",
                                     "s1.mmm.v003.002.ma")
        expected = os.path.join(self.project_root, relative_path)

        fields = {
            "Sequence": "seq_1",
            "Shot": "s1",
            "Step": "Anm",
            "branch": "mmm",
            "version": 3,
            "snapshot": 2
        }
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)

        # remove optional value
        del (fields["snapshot"])
        relative_path = os.path.join("shots", "seq_1", "s1", "Anm", "work",
                                     "s1.mmm.v003")
        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)

        # remove optional value
        del (fields["branch"])
        relative_path = os.path.join("shots", "seq_1", "s1", "Anm", "work",
                                     "s1.v003")
        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #3
0
    def test_format_default(self):
        definition = "shots/{Shot}.{branch}.{frame}.ext"
        template = TemplatePath(definition, self.keys, self.project_root)
        fields = {"Shot": "s1", "branch": "loon"}

        # default format
        expected = os.path.join(self.project_root, "shots", "s1.loon.%04d.ext")
        self.assertEquals(expected, template.apply_fields(fields))

        # specify default format
        expected = os.path.join(self.project_root, "shots", "s1.loon.####.ext")
        fields["frame"] = "FORMAT:#"
        self.assertEquals(expected, template.apply_fields(fields))
Пример #4
0
    def test_format_default(self):
        definition = "shots/{Shot}.{branch}.{frame}.ext"
        template = TemplatePath(definition, self.keys, self.project_root)
        fields = { "Shot": "s1",
                   "branch": "loon"}
                   
        # default format
        expected = os.path.join(self.project_root, "shots", "s1.loon.%04d.ext")
        self.assertEquals(expected, template.apply_fields(fields))

        # specify default format
        expected = os.path.join(self.project_root, "shots", "s1.loon.####.ext")
        fields["frame"] = "FORMAT:#"
        self.assertEquals(expected, template.apply_fields(fields))
Пример #5
0
 def test_default(self):
     template = TemplatePath("{Shot}/{Step}/file.ex", self.keys,
                             self.project_root)
     expected = os.path.join(self.project_root, "s1", "Anm", "file.ex")
     fields = {"Step": "Anm"}
     result = template.apply_fields(fields)
     self.assertEquals(expected, result)
Пример #6
0
    def test_optional_values(self):
        definition = "shots/{Sequence}/{Shot}/{Step}/work/{Shot}[.{branch}][.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        relative_path = os.path.join("shots",
                                     "seq_1",
                                     "s1",
                                     "Anm",
                                     "work",
                                     "s1.mmm.v003.002.ma")
        expected = os.path.join(self.project_root, relative_path)

        fields = {"Sequence": "seq_1",
                   "Shot": "s1",
                   "Step": "Anm",
                   "branch":"mmm",
                   "version": 3,
                   "snapshot": 2}
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)

        # remove optional value
        del(fields["snapshot"])
        relative_path = os.path.join("shots",
                                     "seq_1",
                                     "s1",
                                     "Anm",
                                     "work",
                                     "s1.mmm.v003")
        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)


        # remove optional value
        del(fields["branch"])
        relative_path = os.path.join("shots",
                                     "seq_1",
                                     "s1",
                                     "Anm",
                                     "work",
                                     "s1.v003")
        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #7
0
    def test_optional_none_value(self):
        definition = "shots/{Shot}[.{branch}][.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        fields = {"Shot": "s1", "branch": None, "version": 3, "snapshot": 2}

        relative_path = os.path.join("shots", "s1.v003.002.ma")

        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #8
0
    def test_good_alphanumeric(self):
        """
        Tests applying valid values for alphanumeric key.
        """
        key = StringKey("alpha_num", filter_by="alphanumeric")
        template = TemplatePath("{alpha_num}", {"alpha_num":key}, self.project_root)

        valid_values = ["allChars", "123454", "mixed09", "29mixed", "mi2344xEd", "CAPS"]
        for valid_value in valid_values:
            result = template.apply_fields({"alpha_num": valid_value})
            expected = os.path.join(self.project_root, valid_value)
            self.assertEquals(expected, result)
Пример #9
0
    def test_multi_key_optional(self):
        """
        Test optional section containing multiple keys.
        """
        definition = "shots/{Shot}[.{branch}.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        relative_path = os.path.join("shots", "s1.mmm.v003.002.ma")

        expected = os.path.join(self.project_root, relative_path)

        fields = {"Shot": "s1", "branch": "mmm", "version": 3, "snapshot": 2}
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)

        # if one key from optional section missing, whole section skipped.
        relative_path = os.path.join("shots", "s1.002.ma")

        expected = os.path.join(self.project_root, relative_path)

        fields = {"Shot": "s1", "branch": "mmm", "snapshot": 2}

        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #10
0
    def test_aliased_key(self):
        """
        Apply values to a template which has an aliased key.
        """
        key = IntegerKey("aliased_name")
        keys = {"initial_name": key}
        definition = "{initial_name}"
        template = TemplatePath(definition, keys, self.project_root)

        expected = os.path.join(self.project_root, "2")
        fields = {"aliased_name": 2}
        self.assertEquals(expected, template.apply_fields(fields))

        fields = {"initial_name": 2}
        self.assertRaises(TankError, template.apply_fields, fields)
Пример #11
0
    def test_good_alphanumeric(self):
        """
        Tests applying valid values for alphanumeric key.
        """
        key = StringKey("alpha_num", filter_by="alphanumeric")
        template = TemplatePath("{alpha_num}", {"alpha_num": key},
                                self.project_root)

        valid_values = [
            "allChars", "123454", "mixed09", "29mixed", "mi2344xEd", "CAPS"
        ]
        for valid_value in valid_values:
            result = template.apply_fields({"alpha_num": valid_value})
            expected = os.path.join(self.project_root, valid_value)
            self.assertEquals(expected, result)
Пример #12
0
    def test_optional_none_value(self):
        definition = "shots/{Shot}[.{branch}][.v{version}][.{snapshot}.ma]"
        template_path = TemplatePath(definition, self.keys, self.project_root)

        fields = { "Shot": "s1",
                   "branch": None,
                   "version": 3,
                   "snapshot": 2}

        relative_path = os.path.join("shots",
                                     "s1.v003.002.ma")

        expected = os.path.join(self.project_root, relative_path)
        result = template_path.apply_fields(fields)
        self.assertEquals(expected, result)
Пример #13
0
    def test_aliased_key(self):
        """
        Apply values to a template which has an aliased key.
        """
        key = IntegerKey("aliased_name")
        keys = {"initial_name": key}
        definition = "{initial_name}"
        template = TemplatePath(definition, keys, self.project_root)

        expected = os.path.join(self.project_root, "2")
        fields = {"aliased_name": 2}
        self.assertEquals(expected, template.apply_fields(fields))

        fields = {"initial_name": 2}
        self.assertRaises(TankError, template.apply_fields, fields)
Пример #14
0
 def test_default(self):
     template = TemplatePath("{Shot}/{Step}/file.ex", self.keys, self.project_root)
     expected = os.path.join(self.project_root, "s1", "Anm", "file.ex")
     fields = {"Step": "Anm"}
     result = template.apply_fields(fields)
     self.assertEquals(expected, result)