diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-03-13 22:10:20 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-03-14 14:13:27 +0300 |
commit | e7c3c46e8902a214c12f2cba70790646a6fcfda6 (patch) | |
tree | 9542b3d995303fb73f18b48a10ce5f879c1f661f /tests | |
parent | 59aa8d22efa2c7a1dff23211a1f63e2d5bdd0783 (diff) |
Fix make single user crash
How to reproduce the crash:
* Factory startup
* 'u'key (make single user)
It comes with a simple unittest to reproduce the original issue.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/python/view_layer/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/python/view_layer/test_make_single_user.py | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/tests/python/view_layer/CMakeLists.txt b/tests/python/view_layer/CMakeLists.txt index 77a56fb47f9..9cb33420ac5 100644 --- a/tests/python/view_layer/CMakeLists.txt +++ b/tests/python/view_layer/CMakeLists.txt @@ -108,6 +108,7 @@ VIEW_LAYER_TEST(object_link_a) VIEW_LAYER_TEST(object_link_b) VIEW_LAYER_TEST(object_link_c) VIEW_LAYER_TEST(operator_context) +VIEW_LAYER_TEST(make_single_user) VIEW_LAYER_TEST(move_above_below_scene_collection_a) VIEW_LAYER_TEST(move_above_below_scene_collection_b) VIEW_LAYER_TEST(move_above_below_scene_collection_c) diff --git a/tests/python/view_layer/test_make_single_user.py b/tests/python/view_layer/test_make_single_user.py new file mode 100644 index 00000000000..2a8a479bab2 --- /dev/null +++ b/tests/python/view_layer/test_make_single_user.py @@ -0,0 +1,54 @@ +# ############################################################ +# Importing - Same For All Render Layer Tests +# ############################################################ + +import unittest +import os +import sys + +from view_layer_common import * + + +# ############################################################ +# Testing +# ############################################################ + +class UnitTesting(ViewLayerTesting): + def test_make_single_user(self): + """ + Really basic test, just to check for crashes on basic files. + """ + import bpy + scene = bpy.context.scene + master_collection = scene.master_collection + view_layer = bpy.context.view_layer + ob = bpy.context.object + + # clean up the scene a bit + for o in (o for o in view_layer.objects if o != ob): + view_layer.collections[0].collection.objects.unlink(o) + + for v in (v for v in scene.view_layers if v != view_layer): + scene.view_layers.remove(v) + + while master_collection.collections: + master_collection.collections.remove( + master_collection.collections[0]) + + view_layer.collections.link(master_collection) + ob.select_set('SELECT') + + # update depsgraph + scene.update() + + # test itself + bpy.ops.object.make_single_user(object=True) + + +# ############################################################ +# Main - Same For All Render Layer Tests +# ############################################################ + +if __name__ == '__main__': + UnitTesting._extra_arguments = setup_extra_arguments(__file__) + unittest.main() |