implement property deletion handling; activate scheduler deletion
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
from unittest import TestCase
|
||||
from unittest.mock import Mock
|
||||
from owrx.property import PropertyLayer, PropertyFilter
|
||||
from owrx.property import PropertyLayer, PropertyFilter, PropertyDeleted
|
||||
|
||||
|
||||
class PropertyFilterTest(TestCase):
|
||||
@ -70,3 +70,13 @@ class PropertyFilterTest(TestCase):
|
||||
with self.assertRaises(KeyError):
|
||||
pf["testkey"] = "new value"
|
||||
self.assertEqual(pm["testkey"], "old value")
|
||||
|
||||
def testPropagatesDeletion(self):
|
||||
pm = PropertyLayer(testkey="somevalue")
|
||||
filter_mock = Mock()
|
||||
filter_mock.apply.return_value = True
|
||||
pf = PropertyFilter(pm, filter_mock)
|
||||
mock = Mock()
|
||||
pf.wire(mock.method)
|
||||
del pf["testkey"]
|
||||
mock.method.assert_called_once_with({"testkey": PropertyDeleted})
|
||||
|
@ -1,4 +1,4 @@
|
||||
from owrx.property import PropertyLayer
|
||||
from owrx.property import PropertyLayer, PropertyDeleted
|
||||
from unittest import TestCase
|
||||
from unittest.mock import Mock
|
||||
|
||||
@ -67,3 +67,27 @@ class PropertyLayerTest(TestCase):
|
||||
pm.wire(mock.method)
|
||||
pm["testkey"] = "testvalue"
|
||||
mock.method.assert_not_called()
|
||||
|
||||
def testDeletionIsSent(self):
|
||||
pm = PropertyLayer(testkey="somevalue")
|
||||
mock = Mock()
|
||||
pm.wireProperty("testkey", mock.method)
|
||||
mock.method.reset_mock()
|
||||
del pm["testkey"]
|
||||
mock.method.assert_called_once_with(PropertyDeleted)
|
||||
|
||||
def testDeletionInGeneralWiring(self):
|
||||
pm = PropertyLayer(testkey="somevalue")
|
||||
mock = Mock()
|
||||
pm.wire(mock.method)
|
||||
del pm["testkey"]
|
||||
mock.method.assert_called_once_with({"testkey": PropertyDeleted})
|
||||
|
||||
def testNoDeletionEventWhenPropertyDoesntExist(self):
|
||||
pm = PropertyLayer(otherkey="somevalue")
|
||||
mock = Mock()
|
||||
pm.wireProperty("testkey", mock.method)
|
||||
mock.method.reset_mock()
|
||||
with self.assertRaises(KeyError):
|
||||
del pm["testkey"]
|
||||
mock.method.assert_not_called()
|
||||
|
@ -1,6 +1,6 @@
|
||||
from unittest import TestCase
|
||||
from unittest.mock import Mock
|
||||
from owrx.property import PropertyLayer, PropertyStack
|
||||
from owrx.property import PropertyLayer, PropertyStack, PropertyDeleted
|
||||
|
||||
|
||||
class PropertyStackTest(TestCase):
|
||||
@ -135,7 +135,7 @@ class PropertyStackTest(TestCase):
|
||||
mock.method.assert_called_once_with("unique value")
|
||||
mock.reset_mock()
|
||||
stack.removeLayer(high_layer)
|
||||
mock.method.assert_called_once_with(None)
|
||||
mock.method.assert_called_once_with(PropertyDeleted)
|
||||
|
||||
def testReplaceLayer(self):
|
||||
first_layer = PropertyLayer()
|
||||
@ -162,7 +162,7 @@ class PropertyStackTest(TestCase):
|
||||
mock = Mock()
|
||||
stack.wire(mock.method)
|
||||
stack.removeLayer(layer)
|
||||
mock.method.assert_called_once_with({"testkey": None})
|
||||
mock.method.assert_called_once_with({"testkey": PropertyDeleted})
|
||||
mock.reset_mock()
|
||||
|
||||
layer["testkey"] = "after"
|
||||
@ -195,3 +195,23 @@ class PropertyStackTest(TestCase):
|
||||
om.addLayer(0, high_pm)
|
||||
om["testkey"] = "new value"
|
||||
self.assertEqual(low_pm["testkey"], "new value")
|
||||
|
||||
def testDeletionEvent(self):
|
||||
ps = PropertyStack()
|
||||
pm = PropertyLayer(testkey="testvalue")
|
||||
ps.addLayer(0, pm)
|
||||
mock = Mock()
|
||||
ps.wire(mock.method)
|
||||
del ps["testkey"]
|
||||
mock.method.assert_called_once_with({"testkey": PropertyDeleted})
|
||||
|
||||
def testDeletionWithSecondLayer(self):
|
||||
ps = PropertyStack()
|
||||
low_pm = PropertyLayer(testkey="testvalue")
|
||||
high_pm = PropertyLayer()
|
||||
ps.addLayer(0, high_pm)
|
||||
ps.addLayer(1, low_pm)
|
||||
mock = Mock()
|
||||
ps.wire(mock.method)
|
||||
del low_pm["testkey"]
|
||||
mock.method.assert_called_once_with({"testkey": PropertyDeleted})
|
||||
|
Reference in New Issue
Block a user