Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-09-23 13:56:05 +0300
committerBastien Montagne <bastien@blender.org>2021-09-23 13:56:05 +0300
commitf48a4aa0f9157c1338a190d5d1b907cfc7d3da10 (patch)
tree8fc39a6de2b1f1caad9f5deff8e76aaa35f847a2 /tests/python
parentcb173d05dc3e17f0407ebdeb7d092344242ea4ad (diff)
LibLink Append: Expose 'reuse ID' through new BLO flag, and add basic tests.
Option is now available to append operator, alsthough hidden and disabled by default.
Diffstat (limited to 'tests/python')
-rw-r--r--tests/python/bl_blendfile_liblink.py76
1 files changed, 70 insertions, 6 deletions
diff --git a/tests/python/bl_blendfile_liblink.py b/tests/python/bl_blendfile_liblink.py
index 992bf6b89d9..4186ba58817 100644
--- a/tests/python/bl_blendfile_liblink.py
+++ b/tests/python/bl_blendfile_liblink.py
@@ -165,7 +165,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Mesh")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=False, set_fake=False, use_recursive=False)
+ instance_object_data=False, set_fake=False, use_recursive=False, do_reuse_local_id=False)
assert(len(bpy.data.meshes) == 1)
assert(bpy.data.meshes[0].library is None)
@@ -179,7 +179,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Mesh")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=True, set_fake=False, use_recursive=False)
+ instance_object_data=True, set_fake=False, use_recursive=False, do_reuse_local_id=False)
assert(len(bpy.data.meshes) == 1)
assert(bpy.data.meshes[0].library is None)
@@ -194,7 +194,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Mesh")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=False, set_fake=True, use_recursive=False)
+ instance_object_data=False, set_fake=True, use_recursive=False, do_reuse_local_id=False)
assert(len(bpy.data.meshes) == 1)
assert(bpy.data.meshes[0].library is None)
@@ -208,7 +208,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Object")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=False, set_fake=False, use_recursive=False)
+ instance_object_data=False, set_fake=False, use_recursive=False, do_reuse_local_id=False)
assert(len(bpy.data.meshes) == 1)
# This one fails currently, for unclear reasons.
@@ -224,7 +224,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Object")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=False, set_fake=False, use_recursive=True)
+ instance_object_data=False, set_fake=False, use_recursive=True, do_reuse_local_id=False)
assert(len(bpy.data.meshes) == 1)
assert(bpy.data.meshes[0].library is None)
@@ -239,7 +239,7 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
link_dir = os.path.join(output_lib_path, "Collection")
bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
- instance_object_data=False, set_fake=False, use_recursive=True)
+ instance_object_data=False, set_fake=False, use_recursive=True, do_reuse_local_id=False)
assert(bpy.data.meshes[0].library is None)
assert(bpy.data.meshes[0].users == 1)
@@ -251,9 +251,73 @@ class TestBlendLibAppendBasic(TestBlendLibLinkHelper):
assert(bpy.data.collections[0].users == 1)
+class TestBlendLibAppendReuseID(TestBlendLibLinkHelper):
+
+ def __init__(self, args):
+ self.args = args
+
+ def test_append(self):
+ output_dir = self.args.output_dir
+ output_lib_path = self.init_lib_data_basic()
+
+ # Append of a single Object, and then append it again.
+ self.reset_blender()
+
+ link_dir = os.path.join(output_lib_path, "Object")
+ bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
+ instance_object_data=False, set_fake=False, use_recursive=True, do_reuse_local_id=False)
+
+ assert(len(bpy.data.meshes) == 1)
+ assert(bpy.data.meshes[0].library is None)
+ assert(bpy.data.meshes[0].use_fake_user is False)
+ assert(bpy.data.meshes[0].users == 1)
+ assert(bpy.data.meshes[0].library_weak_reference is not None)
+ assert(bpy.data.meshes[0].library_weak_reference.filepath == output_lib_path)
+ assert(bpy.data.meshes[0].library_weak_reference.id_name == "MELibMesh")
+ assert(len(bpy.data.objects) == 1)
+ for ob in bpy.data.objects:
+ assert(ob.library is None)
+ assert(ob.library_weak_reference is None)
+ assert(len(bpy.data.collections) == 0) # Scene's master collection is not listed here
+
+ bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
+ instance_object_data=False, set_fake=False, use_recursive=True, do_reuse_local_id=True)
+
+ assert(len(bpy.data.meshes) == 1)
+ assert(bpy.data.meshes[0].library is None)
+ assert(bpy.data.meshes[0].use_fake_user is False)
+ assert(bpy.data.meshes[0].users == 2)
+ assert(bpy.data.meshes[0].library_weak_reference is not None)
+ assert(bpy.data.meshes[0].library_weak_reference.filepath == output_lib_path)
+ assert(bpy.data.meshes[0].library_weak_reference.id_name == "MELibMesh")
+ assert(len(bpy.data.objects) == 2)
+ for ob in bpy.data.objects:
+ assert(ob.library is None)
+ assert(ob.library_weak_reference is None)
+ assert(len(bpy.data.collections) == 0) # Scene's master collection is not listed here
+
+ bpy.ops.wm.append(directory=link_dir, filename="LibMesh",
+ instance_object_data=False, set_fake=False, use_recursive=True, do_reuse_local_id=False)
+
+ assert(len(bpy.data.meshes) == 2)
+ assert(bpy.data.meshes[0].library_weak_reference is None)
+ assert(bpy.data.meshes[1].library is None)
+ assert(bpy.data.meshes[1].use_fake_user is False)
+ assert(bpy.data.meshes[1].users == 1)
+ assert(bpy.data.meshes[1].library_weak_reference is not None)
+ assert(bpy.data.meshes[1].library_weak_reference.filepath == output_lib_path)
+ assert(bpy.data.meshes[1].library_weak_reference.id_name == "MELibMesh")
+ assert(len(bpy.data.objects) == 3)
+ for ob in bpy.data.objects:
+ assert(ob.library is None)
+ assert(ob.library_weak_reference is None)
+ assert(len(bpy.data.collections) == 0) # Scene's master collection is not listed here
+
+
TESTS = (
TestBlendLibLinkSaveLoadBasic,
TestBlendLibAppendBasic,
+ TestBlendLibAppendReuseID,
)