def _encode_gzip(iter): data = StringIO() with GzipFile(fileobj=data, mode='w') as gzo: for item in iter: gzo.write(item) gzo.write('\n') return data.getvalue()
def test_iter_lines(self): lines = (0, 2, 10, 100) for i in lines: r = get(httpbin('stream', str(i)), prefetch=False) lines = list(r.iter_lines()) len_lines = len(lines) self.assertEqual(i, len_lines) # Tests that trailing whitespaces within lines do not get stripped. # Tests that a trailing non-terminated line does not get stripped. quote = ('''Agamemnon \n''' '''\tWhy will he not upon our fair request\r\n''' '''\tUntent his person and share the air with us?''') # Make a request and monkey-patch its contents r = get(httpbin('get'), prefetch=False) r.raw = StringIO(quote) lines = list(r.iter_lines()) len_lines = len(lines) self.assertEqual(len_lines, 3) joined = lines[0] + '\n' + lines[1] + '\r\n' + lines[2] self.assertEqual(joined, quote)
def add_report(self, key, content, content_type='text/plain'): from requests.compat import StringIO params = { 'project': self.project.id, 'job': self.id, 'key': key, 'content_type': content_type, } files = {'content': ('report', StringIO(content))} self._post('reports_add', 'json', params, files=files)
def test_iter_lines(self): lines = (0, 2, 10, 100) for i in lines: r = get(httpbin('stream', str(i)), prefetch=False) lines = list(r.iter_lines()) len_lines = len(lines) self.assertEqual(i, len_lines) # Test 'dangling' fragment in responses that do not terminate in # a newline. quote = ('''Why will he not upon our fair request\n''' '''Untent his person and share the air with us?''') # Make a request and monkey-patch its contents r = get(httpbin('get')) r.raw = StringIO(quote) # Make sure iter_lines doesn't chop the trailing bit lines = '\n'.join(r.iter_lines()) self.assertEqual(lines, quote)
def _encode_identity(iter): data = StringIO() for item in iter: data.write(item) data.write('\n') return data.getvalue()