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 <b.mont29@gmail.com>2020-02-14 13:02:22 +0300
committerBastien Montagne <b.mont29@gmail.com>2020-02-14 14:18:21 +0300
commit0c5014aaef854bba096bdaab7d6807fcfd45d7d0 (patch)
tree5fb3f0efd5555a997282f5aae5ff39bcf0b062f0 /tests/python/bl_blendfile_utils.py
parent5ca7c85e105d910f554db4855c099a6b74e59886 (diff)
Cleanup: Deduplicate some code in new blenfile io/linking tests.
Diffstat (limited to 'tests/python/bl_blendfile_utils.py')
-rw-r--r--tests/python/bl_blendfile_utils.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/python/bl_blendfile_utils.py b/tests/python/bl_blendfile_utils.py
new file mode 100644
index 00000000000..48e24cd0684
--- /dev/null
+++ b/tests/python/bl_blendfile_utils.py
@@ -0,0 +1,35 @@
+# Apache License, Version 2.0
+
+import os
+import pprint
+
+
+class TestHelper:
+
+ @staticmethod
+ def id_to_uid(id_data):
+ return (type(id_data).__name__,
+ id_data.name_full,
+ id_data.users)
+
+ @classmethod
+ def blender_data_to_tuple(cls, bdata, pprint_name=None):
+ ret = sorted(tuple((cls.id_to_uid(k), sorted(tuple(cls.id_to_uid(vv) for vv in v)))
+ for k, v in bdata.user_map().items()))
+ if pprint_name is not None:
+ print("\n%s:" % pprint_name)
+ pprint.pprint(ret)
+ return ret
+
+ @staticmethod
+ def ensure_path(path):
+ if not os.path.exists(path):
+ os.makedirs(path)
+
+ def run_all_tests(self):
+ for inst_attr_id in dir(self):
+ if not inst_attr_id.startswith("test_"):
+ continue
+ inst_attr = getattr(self, inst_attr_id)
+ if callable(inst_attr):
+ inst_attr()