diff --git a/tests/blends/multi_level_link/level1/level2/level3/level3.blend b/tests/blends/multi_level_link/level1/level2/level3/level3.blend new file mode 100644 index 0000000..e215d0d Binary files /dev/null and b/tests/blends/multi_level_link/level1/level2/level3/level3.blend differ diff --git a/tests/blends/multi_level_link/level1_lib/level1_lib.blend b/tests/blends/multi_level_link/level1_lib/level1_lib.blend new file mode 100644 index 0000000..0eb1e28 Binary files /dev/null and b/tests/blends/multi_level_link/level1_lib/level1_lib.blend differ diff --git a/tests/blends/multi_level_link/level1_lib/level2_lib/texture.png b/tests/blends/multi_level_link/level1_lib/level2_lib/texture.png new file mode 100644 index 0000000..ac4e48c Binary files /dev/null and b/tests/blends/multi_level_link/level1_lib/level2_lib/texture.png differ diff --git a/tests/test_cli.py b/tests/test_cli.py index cb83056..dc48127 100755 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1605,6 +1605,39 @@ class BamRelativeAbsoluteTest(BamSessionTestCase): # ret = bam_run_as_json(["ls", "subdir/rel/path", "--json"], proj_path) # self.assertEqual(ret[0], ["house_rel.blend", "file"]) + def test_absolute_relative_from_blendfiles_texture(self): + """ + Texture on library + """ + + session_name = "mysession" + proj_path, session_path = self.init_session(session_name) + + blendfile = os.path.join("root", "level1", "level2", "level3", "level3.blend") + + import shutil + shutil.copytree( + os.path.join(CURRENT_DIR, "blends", "multi_level_link"), + os.path.join(session_path, "root"), + ) + + stdout, stderr = bam_run(["commit", "-m", "multi_level_link"], session_path) + self.assertEqual("", stderr) + + shutil.rmtree(session_path) + + stdout, stderr = bam_run(["checkout", blendfile, "--output", session_path], proj_path) + self.assertEqual("", stderr) + + # finally run deps to see the paths are as we expect + ret = bam_run_as_json(["deps", "level3.blend", "--recursive", "--json"], session_path) + + self.assertEqual(ret[0][1], "//" + os.path.join("_root", "level1_lib", "level1_lib.blend")) + self.assertEqual(ret[0][3], "OK") + self.assertEqual(ret[1][1], "//" + os.path.join("..", "..", "_root", "level1_lib", "level2_lib", "texture.png")) + self.assertEqual(ret[1][3], "OK") + + shutil.rmtree(session_path) class BamIgnoreTest(BamSessionTestCase): """