本文整理汇总了Python中UM.Scene.SceneNode.SceneNode.removeDecorators方法的典型用法代码示例。如果您正苦于以下问题:Python SceneNode.removeDecorators方法的具体用法?Python SceneNode.removeDecorators怎么用?Python SceneNode.removeDecorators使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UM.Scene.SceneNode.SceneNode
的用法示例。
在下文中一共展示了SceneNode.removeDecorators方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_SceneNodeDecorator
# 需要导入模块: from UM.Scene.SceneNode import SceneNode [as 别名]
# 或者: from UM.Scene.SceneNode.SceneNode import removeDecorators [as 别名]
def test_SceneNodeDecorator():
test_node = SceneNode()
test_decorator = SceneNodeDecorator()
amazing_decorator = TheAmazingTestDecorator()
less_amazing_decorator = TheLessAmazingTestDecorator()
not_amazing_decorator = TheNotSoAmazingTestDecorator()
# Replace emit with mock object
test_node.decoratorsChanged.emit = MagicMock()
test_decorator.clear = MagicMock()
# First actual change
test_node.addDecorator(test_decorator)
assert len(test_node.getDecorators()) == 1
assert test_node.decoratorsChanged.emit.call_count == 1
# Adding a decorator of the same type (SceneNodeDecorator) again should not do anything.
test_node.addDecorator(test_decorator)
assert len(test_node.getDecorators()) == 1
assert test_node.decoratorsChanged.emit.call_count == 1
assert test_node.getDecorator(type(test_decorator)) == test_decorator
# Remove the decorator again!
test_node.removeDecorator(SceneNodeDecorator)
assert len(test_node.getDecorators()) == 0
assert test_node.decoratorsChanged.emit.call_count == 2
assert test_decorator.clear.call_count == 1 # Ensure that the clear of the test decorator is called.
# Add a number of decorators!
test_node.addDecorator(amazing_decorator)
test_node.addDecorator(less_amazing_decorator)
test_node.addDecorator(not_amazing_decorator)
assert test_node.decoratorsChanged.emit.call_count == 5
assert len(test_node.getDecorators()) == 3
assert test_node.hasDecoration("zomg") == False
assert test_node.hasDecoration("theOkayDecoration")
assert test_node.hasDecoration("theAmazingDecoration")
# Calling the decorations with args / kwargs
assert test_node.callDecoration("theOkayDecoration", None) is None
assert test_node.callDecoration("theEvenMoreAmazingDecoration", "beep") == ("beep", "Wow", "so wow")
assert test_node.callDecoration("theEvenMoreAmazingDecoration", "beep", much_test = "Wow") == ("beep", "Wow", "Wow")
# Calling decoration that is "double"
assert test_node.callDecoration("theAmazingDecoration") == "Amazing!"
test_node.removeDecorator(TheAmazingTestDecorator)
assert test_node.callDecoration("theAmazingDecoration") == "amazing"
not_amazing_decorator.clear = MagicMock()
test_node.removeDecorators()
# Also assure that removing all decorators also triggers the clear
assert not_amazing_decorator.clear.call_count == 1
assert len(test_node.getDecorators()) == 0
assert test_node.decoratorsChanged.emit.call_count == 7
assert test_node.getDecorator(type(test_decorator)) is None