Beispiel #1
0
 def testRemoveLayer(self):
     pc = PropertyCarousel()
     pl = PropertyLayer(testkey="testvalue")
     pc.addLayer("x", pl)
     pc.switch("x")
     self.assertEqual(pc["testkey"], "testvalue")
     pc.removeLayer("x")
     with self.assertRaises(KeyError):
         pc.switch("x")
Beispiel #2
0
 def testSendsChangesIfActiveLayerIsReplaced(self):
     pc = PropertyCarousel()
     pl = PropertyLayer(testkey="testvalue")
     pc.addLayer("x", pl)
     pc.switch("x")
     self.assertEqual(pc["testkey"], "testvalue")
     mock = Mock()
     pc.wire(mock.method)
     pl = PropertyLayer(testkey="othervalue")
     pc.addLayer("x", pl)
     mock.method.assert_called_once_with({"testkey": "othervalue"})
Beispiel #3
0
 def testStopsForwardingAfterSwitch(self):
     pc = PropertyCarousel()
     pl_x = PropertyLayer(testkey="old_value")
     pc.addLayer("x", pl_x)
     pl_y = PropertyLayer(testkey="new_value")
     pc.addLayer("y", pl_y)
     pc.switch("x")
     pc.switch("y")
     mock = Mock()
     pc.wire(mock.method)
     pl_x["testkey"] = "new_value"
     mock.method.assert_not_called()
Beispiel #4
0
 def testForwardsEvents(self):
     pc = PropertyCarousel()
     pl = PropertyLayer(testkey="old_value")
     pc.addLayer("test", pl)
     pc.switch("test")
     mock = Mock()
     pc.wire(mock.method)
     pc["testkey"] = "new_value"
     mock.method.assert_called_once_with({"testkey": "new_value"})
Beispiel #5
0
 def testWriteAccess(self):
     pc = PropertyCarousel()
     pl = PropertyLayer(testkey="old_value")
     pc.addLayer("test", pl)
     pc.switch("test")
     pc["testkey"] = "new_value"
     self.assertEqual(pc["testkey"], "new_value")
     self.assertEqual(pl["testkey"], "new_value")
Beispiel #6
0
 def testKeyErrorOnInvalidSwitch(self):
     pc = PropertyCarousel()
     with self.assertRaises(KeyError):
         pc.switch("doesntmatter")
Beispiel #7
0
 def testNoEventsIfKeysDontChange(self):
     pc = PropertyCarousel()
     pl_x = PropertyLayer(testkey="same_value")
     pc.addLayer("x", pl_x)
     pl_y = PropertyLayer(testkey="same_value")
     pc.addLayer("y", pl_y)
     pc.switch("x")
     mock = Mock()
     pc.wire(mock.method)
     pc.switch("y")
     mock.method.assert_not_called()
Beispiel #8
0
 def testInitiallyEmpty(self):
     pc = PropertyCarousel()
     with self.assertRaises(KeyError):
         x = pc["testkey"]
Beispiel #9
0
 def testEventsOnSwitch(self):
     pc = PropertyCarousel()
     pl_x = PropertyLayer(old_key="old_value")
     pc.addLayer("x", pl_x)
     pl_y = PropertyLayer(new_key="new_value")
     pc.addLayer("y", pl_y)
     pc.switch("x")
     mock = Mock()
     pc.wire(mock.method)
     pc.switch("y")
     mock.method.assert_called_once_with({"old_key": PropertyDeleted, "new_key": "new_value"})
Beispiel #10
0
 def testPropertyAccess(self):
     pc = PropertyCarousel()
     pl = PropertyLayer(testkey="testvalue")
     pc.addLayer("test", pl)
     pc.switch("test")
     self.assertEqual(pc["testkey"], "testvalue")
Beispiel #11
0
 def testErrorOnWriteOnDefaultLayer(self):
     pc = PropertyCarousel()
     with self.assertRaises(PropertyWriteError):
         pc["testkey"] = "testvalue"