forked from bartvdbraak/blender
c434782e3a
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
36 lines
976 B
Python
36 lines
976 B
Python
# SPDX-License-Identifier: Apache-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()
|