def test_validate_request(self): client = Client() path = reverse('validate') # GET validation response = client.get(path, data=dict( get_required=123, get_not_required=123, unknown=123, )) self.assertEqual( 200, response.status_code, ) # POST validation response = client.post( path, data=json.dumps( dict( post_required=123, post_not_required=123, unknown=123, )), content_type='application/json', ) self.assertEqual( 200, response.status_code, ) # GET and POST validation response = client.patch( '{path}?{query}'.format( path=path, query=urllib.parse.urlencode(dict(get_required=123)), ), data=json.dumps(dict(post_required=123)), content_type='application/json', ) self.assertEqual( 200, response.status_code, )
def test_file_validate_request(self): excepted_json = {"data": "document.txt"} client = Client() path = reverse('validate_file') response = client.post(path, data={ "file": SimpleUploadedFile( "document.txt", b"file_content", content_type="text/plain") }) self.assertEqual(200, response.status_code) self.assertDictEqual(excepted_json, json.loads(response.content.decode()))
def test_validate_request(self): client = Client() path = reverse('validate') # GET validation response = client.get(path, data=dict( get_required=123, get_not_required=123, unknown=123, )) self.assertEqual( 200, response.status_code, ) # POST validation response = client.post( path, data=json.dumps(dict( post_required=123, post_not_required=123, unknown=123, )), content_type='application/json', ) self.assertEqual( 200, response.status_code, ) # GET and POST validation response = client.patch( '{path}?{query}'.format( path=path, query=urllib.parse.urlencode(dict(get_required=123)), ), data=json.dumps(dict(post_required=123)), content_type='application/json', ) self.assertEqual( 200, response.status_code, )
def test_file_validate_request(self): excepted_json = { "data": "document.txt" } client = Client() path = reverse('validate_file') response = client.post( path, data={ "file": SimpleUploadedFile( "document.txt", b"file_content", content_type="text/plain" ) } ) self.assertEqual(200, response.status_code) self.assertDictEqual( excepted_json, json.loads(response.content.decode()) )
def test_file_validate_request_errors(self): client = Client() path = reverse('validate_file') response = client.post(path) self.assertEqual(400, response.status_code)
def test_response_headers(self): client = Client() # GET request of not cached content with If-Modified-Since provided response = client.get( reverse('cache'), HTTP_IF_MODIFIED_SINCE='Thu, 01 Jan 2015 00:00:00 GMT', ) self.assertIn('Content-Length', response) self.assertIn('Last-Modified', response) self.assertIn('Expires', response) self.assertIn('Cache-Control', response) self.assertIn('max-age=3600', response['Cache-Control']) self.assertEqual('Thu, 01 Jan 2015 00:00:00 GMT', response['Last-Modified']) self.assertEqual('0', response['Content-Length']) self.assertEqual(304, response.status_code) # GET request of cachable content response = client.get(reverse('cache')) self.assertEqual(Json.http_code, response.status_code) self.assertIn('Content-Length', response) self.assertIn('Content-Type', response) self.assertIn('Cache-Control', response) self.assertIn('Expires', response) self.assertIn('Last-Modified', response) self.assertEqual('14', response['Content-Length']) self.assertIn('max-age=3600', response['Cache-Control']) self.assertEqual('Thu, 01 Jan 2015 00:00:00 GMT', response['Last-Modified']) self.assertEqual('application/json', response['Content-Type']) # POST request of cachable content response = client.post(reverse('cache')) self.assertEqual(Json.http_code, response.status_code) self.assertIn('Content-Length', response) self.assertIn('Content-Type', response) self.assertNotIn('Expires', response) self.assertNotIn('Cache-Control', response) self.assertNotIn('Last-Modified', response) self.assertEqual('14', response['Content-Length']) self.assertEqual('application/json', response['Content-Type']) # GET request of cached content with If-Modified-Since provided response = client.get( reverse('cache'), HTTP_IF_MODIFIED_SINCE='Thu, 01 Jan 2015 00:00:00 GMT', ) self.assertIn('Content-Length', response) self.assertIn('Last-Modified', response) self.assertIn('Expires', response) self.assertIn('Cache-Control', response) self.assertIn('max-age=3600', response['Cache-Control']) self.assertEqual('Thu, 01 Jan 2015 00:00:00 GMT', response['Last-Modified']) self.assertEqual('0', response['Content-Length']) self.assertEqual(304, response.status_code) # GET request of cached content without If-Modified-Since provided response = client.get(reverse('cache')) self.assertEqual(Json.http_code, response.status_code) self.assertIn('Content-Length', response) self.assertIn('Content-Type', response) self.assertIn('Cache-Control', response) self.assertIn('Expires', response) self.assertIn('Last-Modified', response) self.assertEqual('14', response['Content-Length']) self.assertIn('max-age=3600', response['Cache-Control']) self.assertEqual('Thu, 01 Jan 2015 00:00:00 GMT', response['Last-Modified']) self.assertEqual('application/json', response['Content-Type']) # POST request of cachable content with If-Modified-Since provided response = client.post( reverse('cache'), HTTP_IF_MODIFIED_SINCE='Thu, 01 Jan 2015 00:00:00 GMT', ) self.assertEqual(Json.http_code, response.status_code) self.assertIn('Content-Length', response) self.assertNotIn('Expires', response) self.assertNotIn('Cache-Control', response) self.assertNotIn('Last-Modified', response) self.assertEqual('14', response['Content-Length']) self.assertEqual('application/json', response['Content-Type']) # GET request of non-cachable content response = client.get(reverse('ok')) self.assertIn('Cache-Control', response) self.assertIn('Content-Length', response) self.assertIn('Content-Type', response) self.assertIn('max-age=0', response['Cache-Control']) self.assertEqual('14', response['Content-Length']) self.assertEqual('application/json', response['Content-Type'])