def test_handle_request_fails(self): parent = MagicMock() child = MagicMock(spec=Attribute) func = MagicMock() child.handle_request.side_effect = Exception("Test exception") b = Block() b.replace_endpoints({"child": child}) b.set_writeable_functions({"child": func}) b.set_parent(parent, "name") request = MagicMock(spec=Put, id=12345, response_queue=MagicMock(), context=MagicMock(), endpoint=["name", "child", "irrelevant"]) b.handle_request(request) calls = parent.block_respond.call_args_list self.assertEquals(1, len(calls)) response = calls[0][0][0] self.assertIsInstance(response, Error) self.assertEquals(request.id, response.id) self.assertEquals(request.context, response.context) self.assertEquals("Test exception", response.message) self.assertEquals(request.response_queue, calls[0][0][1])
def test_handle_post_request(self): parent = MagicMock() child = MagicMock(spec=Attribute) func = MagicMock() b = Block() b.replace_endpoints({"child": child}) b.set_writeable_functions({"child": func}) b.set_parent(parent, "name") request = MagicMock(spec=Post, id=12345, response_queue=MagicMock(), context=MagicMock(), endpoint=["name", "child", "irrelevant"]) b.handle_request(request) calls = parent.block_respond.call_args_list self.assertEquals(1, len(calls)) response = calls[0][0][0] self.assertIsInstance(response, Return) self.assertEquals(request.id, response.id) self.assertEquals(request.context, response.context) self.assertEquals(child.handle_request.return_value.to_dict(), response.value) self.assertEquals(request.response_queue, calls[0][0][1])