diff options
author | Bastien Montagne <b.mont29@gmail.com> | 2020-02-14 13:02:22 +0300 |
---|---|---|
committer | Bastien Montagne <b.mont29@gmail.com> | 2020-02-14 14:18:21 +0300 |
commit | 0c5014aaef854bba096bdaab7d6807fcfd45d7d0 (patch) | |
tree | 5fb3f0efd5555a997282f5aae5ff39bcf0b062f0 /tests/python/bl_blendfile_utils.py | |
parent | 5ca7c85e105d910f554db4855c099a6b74e59886 (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.py | 35 |
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() |