def test_explicit_etag(self): response = pretend.stub( last_modified=None, etag="foo", conditional_response=False, app_iter=iter([b"foo"]), ) handler = pretend.call_recorder(lambda request: response) request = pretend.stub() tween = conditional_http_tween_factory(handler, pretend.stub()) self.assertEqual(tween(request), response) self.assertListEqual(handler.calls, [pretend.call(request)]) self.assertTrue(response.conditional_response)
def test_implicit_etag_post(self): response = pretend.stub( last_modified=None, etag=None, conditional_response=False, md5_etag=pretend.call_recorder(lambda: None), app_iter=[b"foo"], status_code=201, ) handler = pretend.call_recorder(lambda request: response) request = pretend.stub(method='POST') tween = conditional_http_tween_factory(handler, pretend.stub()) self.assertEqual(tween(request), response) self.assertListEqual(handler.calls, [pretend.call(request)]) self.assertFalse(response.conditional_response)
def test_no_etag(self): response = pretend.stub( status_code=200, last_modified=None, etag=None, conditional_response=False, app_iter=iter([b"foo"]), content_length=None, ) handler = pretend.call_recorder(lambda request: response) request = pretend.stub(method="GET") tween = conditional_http_tween_factory(handler, pretend.stub()) self.assertEqual(tween(request), response) self.assertListEqual(handler.calls, [pretend.call(request)]) self.assertFalse(response.conditional_response)