class NotModifiedTest(BaseTest): def setUp(self): super(NotModifiedTest, self).setUp() self.stored = self.db.create(self.resource, 'bob', {}) self.resource = BaseResource(self.get_request()) self.resource.collection_get() current = self.last_response.headers['Last-Modified'] self.resource.request.headers['If-Modified-Since'] = current def test_collection_returns_304_if_no_change_meanwhile(self): try: self.resource.collection_get() except httpexceptions.HTTPNotModified as e: error = e self.assertEqual(error.code, 304) self.assertIsNotNone(error.headers.get('Last-Modified')) def test_single_record_returns_304_if_no_change_meanwhile(self): self.resource.record_id = self.stored['id'] try: self.resource.get() except httpexceptions.HTTPNotModified as e: error = e self.assertEqual(error.code, 304) self.assertIsNotNone(error.headers.get('Last-Modified'))
class NotModifiedTest(BaseTest): def setUp(self): super(NotModifiedTest, self).setUp() self.stored = self.collection.create_record({}) self.resource = BaseResource(request=self.get_request(), context=self.get_context()) self.resource.collection_get() current = self.last_response.headers['ETag'] self.resource.request.headers['If-None-Match'] = current def test_collection_returns_200_if_change_meanwhile(self): self.resource.request.headers['If-None-Match'] = '"42"' self.resource.collection_get() # Not raising. def test_collection_returns_304_if_no_change_meanwhile(self): try: self.resource.collection_get() except httpexceptions.HTTPNotModified as e: error = e self.assertEqual(error.code, 304) self.assertIsNotNone(error.headers.get('ETag')) self.assertIsNotNone(error.headers.get('Last-Modified')) def test_single_record_returns_304_if_no_change_meanwhile(self): self.resource.record_id = self.stored['id'] try: self.resource.get() except httpexceptions.HTTPNotModified as e: error = e self.assertEqual(error.code, 304) self.assertIsNotNone(error.headers.get('ETag')) self.assertIsNotNone(error.headers.get('Last-Modified')) def test_single_record_last_modified_is_returned(self): self.resource.timestamp = 0 self.resource.record_id = self.stored['id'] try: self.resource.get() except httpexceptions.HTTPNotModified as e: error = e self.assertNotIn('1970', error.headers['Last-Modified']) def test_if_none_match_empty_raises_invalid(self): self.resource.request.headers['If-None-Match'] = '""' self.assertRaises(httpexceptions.HTTPBadRequest, self.resource.collection_get) def test_if_none_match_without_quotes_raises_invalid(self): self.resource.request.headers['If-None-Match'] = '1234' self.assertRaises(httpexceptions.HTTPBadRequest, self.resource.collection_get) def test_if_none_match_not_integer_raises_invalid(self): self.resource.request.headers['If-None-Match'] = '"ab"' self.assertRaises(httpexceptions.HTTPBadRequest, self.resource.collection_get)