def test_submit_file_with_name_and_file_object(self): url = _url('/post') files = {'file': ('foo.txt', io.BytesIO(b'binarydata'))} response = nr.post(url, files=files) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['files'], {'file': 'binarydata'})
def test_json_keyword(self): url = _url('/post') json_data = {'foo': 'bar'} response = nr.post(url, json=json_data) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['data'], '{"foo": "bar"}') self.assertEqual(data['headers']['Content-Type'], 'application/json')
def test_submit_file_and_form_data(self): url = _url('/post') files = {'file': io.BytesIO(b'binarydata')} request_data = {'foo': b'bar baz'} response = nr.post(url, files=files, data=request_data) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['files'], {'file': 'binarydata'}) self.assertEqual(data['form'], {'foo': 'bar baz'})
def test_sending_data_as_bytes(self): url = _url('/post') request_data = json.dumps({'foo': 'bar'}).encode('utf-8') headers={'Content-Type': 'application/json'} response = nr.post(url, data=request_data, headers=headers) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['headers']['Content-Type'], 'application/json') self.assertEqual(data['data'], '{"foo": "bar"}')
def test_sending_data_dict_is_form_encoded(self): url = _url('/post') request_data = { 'foo': 'bar baz', } response = nr.post(url, data=request_data) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['headers']['Content-Type'], 'application/x-www-form-urlencoded') self.assertEqual(data['form'], request_data)
def test_submit_file_with_file_from_disk(self): # This exercises the code which guesses the uploaded filename from # the open file handle. url = _url('/post') _, path = tempfile.mkstemp() with open(path, 'wb') as fh: fh.write(b'binarydata') try: with open(path, 'rb') as fh: files = {'file': fh} response = nr.post(url, files=files) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['files'], {'file': 'binarydata'}) finally: os.unlink(path)