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