Пример #1
0
 def test_subscribe_no_data_then_set_data(self):
     # subscribe
     request = Subscribe(path=["b", "attr", "value"], delta=False)
     request.set_callback(Mock())
     self.handle_subscribe(request)
     assert (self.o._tree.children["attr"].children["value"].update_requests
             ) == ([request])
     self.assert_called_with(request.callback, Update(value=None))
     request.callback.reset_mock()
     # set data and check response
     self.block["attr"] = Dummy()
     with self.o.changes_squashed:
         self.block.attr["value"] = 32
         self.o.add_squashed_change(["b", "attr", "value"], 32)
     assert self.block.attr.value == 32
     self.assert_called_with(request.callback, Update(value=32))
     request.callback.reset_mock()
     # unsubscribe
     unsub = Unsubscribe()
     unsub.set_callback(request.callback)
     self.handle_unsubscribe(unsub)
     self.assert_called_with(request.callback, Return(value=None))
     request.callback.reset_mock()
     # notify and check no longer responding
     with self.o.changes_squashed:
         self.block.attr["value"] = 33
         self.o.add_squashed_change(["b", "attr", "value"], 33)
     assert self.block.attr.value == 33
     request.callback.assert_not_called()
Пример #2
0
class TestUnsubscribe(unittest.TestCase):
    def setUp(self):
        self.callback = MagicMock()
        self.subscribe = Subscribe(32, ["."])
        self.subscribe.set_callback(self.callback)
        self.subscribes = {self.subscribe.generate_key(): self.subscribe}
        self.o = Unsubscribe(32)
        self.o.set_callback(self.callback)

    def test_init(self):
        assert self.o.typeid == "malcolm:core/Unsubscribe:1.0"
        assert self.o.id == 32

    def test_keys_same(self):
        assert self.subscribes[self.o.generate_key()] == self.subscribe

    def test_doc(self):
        assert get_doc_json("unsubscribe") == self.o.to_dict()