Fix collections names no longer unique when moved around

We were not checking for uniqueness after moving. And in some cases the new
siblings of our collection may have conflicting names.
This commit is contained in:
Dalai Felinto
2018-01-19 18:44:11 -02:00
parent 4dfccf8b7f
commit e969ac6413
4 changed files with 78 additions and 1 deletions

View File

@@ -62,7 +62,8 @@ endmacro()
VIEW_LAYER_TEST(active_collection)
VIEW_LAYER_TEST(background_set)
VIEW_LAYER_TEST(collection_rename)
VIEW_LAYER_TEST(collection_rename_a)
VIEW_LAYER_TEST(collection_rename_b)
VIEW_LAYER_TEST(evaluation_render_settings_a)
VIEW_LAYER_TEST(evaluation_render_settings_b)
VIEW_LAYER_TEST(evaluation_render_settings_c)

View File

@@ -0,0 +1,58 @@
# ############################################################
# Importing - Same For All Render Layer Tests
# ############################################################
import unittest
import os
import sys
from view_layer_common import *
# ############################################################
# Testing
# ############################################################
class UnitTesting(ViewLayerTesting):
def setup_collections(self):
import bpy
scene = bpy.context.scene
master = scene.master_collection
one = master.collections[0]
two = master.collections.new()
sub = two.collections.new(one.name)
self.assertEqual(one.name, sub.name)
lookup = {
'master': master,
'one': one,
'two': two,
'sub': sub,
}
return lookup
def test_move_above(self):
collections = self.setup_collections()
collections['sub'].move_above(collections['one'])
self.assertNotEqual(collections['one'].name, collections['sub'].name)
def test_move_below(self):
collections = self.setup_collections()
collections['sub'].move_below(collections['one'])
self.assertNotEqual(collections['one'].name, collections['sub'].name)
def test_move_into(self):
collections = self.setup_collections()
collections['sub'].move_into(collections['master'])
self.assertNotEqual(collections['one'].name, collections['sub'].name)
# ############################################################
# Main - Same For All Render Layer Tests
# ############################################################
if __name__ == '__main__':
UnitTesting._extra_arguments = setup_extra_arguments(__file__)
unittest.main()