def setUp(self): self.app = Application() self.request = HTTPRequest("GET", "/", connection=Mock()) self.request.headers["Accept"] = "application/json; v=v1" self.resource_class = Mock() self.handler = RESTHandler( self.app, self.request, resource_set=ResourceSet("test", versions={"v1": self.resource_class})) self.handler._transforms = [] self.handler._request_summary = lambda: None self.app.log_request = lambda x: None
class RESTHandlerTest(unittest.TestCase): def setUp(self): self.app = Application() self.request = HTTPRequest("GET", "/", connection=Mock()) self.request.headers["Accept"] = "application/json; v=v1" self.resource_class = Mock() self.handler = RESTHandler( self.app, self.request, resource_set=ResourceSet("test", versions={"v1": self.resource_class})) self.handler._transforms = [] self.handler._request_summary = lambda: None self.app.log_request = lambda x: None def test_initialize(self): self.assertTrue(hasattr(self.handler, "resource_set")) def test_get(self): self.resource_class.return_value.list.return_value = "['item']" self.resource_class.return_value.apply_renderer.return_value = \ "['item']", "app/json", "utf8" def handle_result(result): self.assertEqual(result, None) res = self.request.connection.write.call_args_list[0][0][0] self.assertTrue("['item']" in res) return self.handler.get().addBoth(handle_result) def test_get_id(self): self.resource_class.return_value.retrieve.return_value = "something" self.resource_class.return_value.apply_renderer.return_value = \ "something", "app/json", "utf8" def handle_result(result): self.assertEqual(result, None) res = self.request.connection.write.call_args_list[0][0][0] self.assertTrue("something" in res) # self.assertEqual(self.handler._write_buffer, ["something"]) return self.handler.get(id=1).addBoth(handle_result) def test_prepare(self): self.handler.resource = Mock() self.handler.prepare() self.handler.resource.check_permissions.assert_called_with() self.handler.resource.check_throttles.assert_called_with() self.handler.resource.perform_content_negotiation.assert_called_with() def test_head(self): self.resource_class.return_value.list.return_value = "['item']" self.resource_class.return_value.apply_renderer.return_value = \ "['item']", "app/json", "utf8" def handle_result(result): self.assertEqual(result, None) res = self.request.connection.write.call_args_list[0][0][0] self.assertTrue("['item']" in res) return self.handler.head().addBoth(handle_result) def test_post(self): self.handler.resource.create.return_value = "['item']" self.handler.render = Mock(return_value=succeed(None)) def cb(result): self.assertEqual(result, None) self.handler.render.assert_called_with("['item']") return self.handler.post().addCallbacks(cb, log.err) def test_delete(self): self.handler.resource.delete.return_value = None self.handler.render = Mock(return_value=succeed(None)) def handle_result(result): self.handler.render.assert_called_with(None) self.assertTrue(self.handler._status_code, 204) return self.handler.delete().addBoth(handle_result) def test_patch(self): self.handler.patch() def test_put(self): self.handler.render = Mock() self.handler.return_value = None self.handler.put() def test_options(self): self.handler.options()