more layer replacement

This commit is contained in:
Jakob Ketterl
2020-03-24 22:11:54 +01:00
parent 14634af83c
commit 236f3d2058
2 changed files with 74 additions and 16 deletions

View File

@ -136,3 +136,34 @@ class PropertyStackTest(TestCase):
mock.reset_mock()
stack.removeLayer(high_layer)
mock.method.assert_called_once_with(None)
def testReplaceLayer(self):
first_layer = PropertyLayer()
first_layer["testkey"] = "old value"
second_layer = PropertyLayer()
second_layer["testkey"] = "new value"
stack = PropertyStack()
stack.addLayer(0, first_layer)
mock = Mock()
stack.wireProperty("testkey", mock.method)
mock.method.assert_called_once_with("old value")
mock.reset_mock()
stack.replaceLayer(0, second_layer)
mock.method.assert_called_once_with("new value")
def testUnwiresEventsOnRemoval(self):
layer = PropertyLayer()
layer["testkey"] = "before"
stack = PropertyStack()
stack.addLayer(0, layer)
mock = Mock()
stack.wire(mock.method)
stack.removeLayer(layer)
mock.method.assert_called_once_with("testkey", None)
mock.reset_mock()
layer["testkey"] = "after"
mock.method.assert_not_called()