[Bf-blender-cvs] [1b2342b4d36] master: Tests: Add basic unittest for library reload and relocate operators.

Bastien Montagne noreply at git.blender.org
Tue Nov 2 15:34:06 CET 2021


Commit: 1b2342b4d3641a5b438cba86a9378be944cec103
Author: Bastien Montagne
Date:   Tue Nov 2 15:33:30 2021 +0100
Branches: master
https://developer.blender.org/rB1b2342b4d3641a5b438cba86a9378be944cec103

Tests: Add basic unittest for library reload and relocate operators.

===================================================================

M	tests/python/bl_blendfile_liblink.py

===================================================================

diff --git a/tests/python/bl_blendfile_liblink.py b/tests/python/bl_blendfile_liblink.py
index ab26059e944..6017d3f1a1e 100644
--- a/tests/python/bl_blendfile_liblink.py
+++ b/tests/python/bl_blendfile_liblink.py
@@ -370,10 +370,69 @@ class TestBlendLibAppendReuseID(TestBlendLibLinkHelper):
         assert(len(bpy.data.collections) == 0)  # Scene's master collection is not listed here
 
 
+class TestBlendLibLibraryReloadRelocate(TestBlendLibLinkHelper):
+
+    def __init__(self, args):
+        self.args = args
+
+    def test_link_reload(self):
+        output_dir = self.args.output_dir
+        output_lib_path = self.init_lib_data_basic()
+
+        # Simple link of a single Object, and reload.
+        self.reset_blender()
+
+        link_dir = os.path.join(output_lib_path, "Object")
+        bpy.ops.wm.link(directory=link_dir, filename="LibMesh")
+
+        assert(len(bpy.data.meshes) == 1)
+        assert(len(bpy.data.objects) == 1)
+        assert(len(bpy.data.collections) == 0)  # Scene's master collection is not listed here
+
+        orig_data = self.blender_data_to_tuple(bpy.data, "orig_data")
+
+        bpy.ops.wm.lib_reload(library=bpy.data.objects[0].name)
+
+        reload_data = self.blender_data_to_tuple(bpy.data, "reload_data")
+
+        print(orig_data)
+        print(reload_data)
+        assert(orig_data == reload_data)
+
+    def test_link_relocate(self):
+        output_dir = self.args.output_dir
+        output_lib_path = self.init_lib_data_basic()
+
+        # Simple link of a single Object, and reload.
+        self.reset_blender()
+
+        link_dir = os.path.join(output_lib_path, "Object")
+        bpy.ops.wm.link(directory=link_dir, filename="LibMesh")
+
+        assert(len(bpy.data.meshes) == 1)
+        assert(len(bpy.data.objects) == 1)
+        assert(len(bpy.data.collections) == 0)  # Scene's master collection is not listed here
+
+        orig_data = self.blender_data_to_tuple(bpy.data, "orig_data")
+
+        lib_path, lib_ext = os.path.splitext(output_lib_path)
+        new_lib_path = lib_path + "_relocate" + lib_ext
+        os.rename(output_lib_path, new_lib_path)
+
+        bpy.ops.wm.lib_relocate(library=bpy.data.objects[0].name, directory="", filename=new_lib_path)
+
+        relocate_data = self.blender_data_to_tuple(bpy.data, "relocate_data")
+
+        print(orig_data)
+        print(relocate_data)
+        assert(orig_data == relocate_data)
+
+
 TESTS = (
     TestBlendLibLinkSaveLoadBasic,
     TestBlendLibAppendBasic,
     TestBlendLibAppendReuseID,
+    TestBlendLibLibraryReloadRelocate,
 )



More information about the Bf-blender-cvs mailing list