Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Unified Diff: tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/transfer_test.py

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/transfer_test.py
diff --git a/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/transfer_test.py b/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/transfer_test.py
deleted file mode 100644
index 9d58b1ea629b99105cdd4348dc18ce452ea66042..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/apitools/apitools/base/py/transfer_test.py
+++ /dev/null
@@ -1,205 +0,0 @@
-"""Tests for transfer.py."""
-import string
-
-import mock
-import six
-from six.moves import http_client
-import unittest2
-
-from apitools.base.py import base_api
-from apitools.base.py import http_wrapper
-from apitools.base.py import transfer
-
-
-class TransferTest(unittest2.TestCase):
-
- def assertRangeAndContentRangeCompatible(self, request, response):
- request_prefix = 'bytes='
- self.assertIn('range', request.headers)
- self.assertTrue(request.headers['range'].startswith(request_prefix))
- request_range = request.headers['range'][len(request_prefix):]
-
- response_prefix = 'bytes '
- self.assertIn('content-range', response.info)
- response_header = response.info['content-range']
- self.assertTrue(response_header.startswith(response_prefix))
- response_range = (
- response_header[len(response_prefix):].partition('/')[0])
-
- msg = ('Request range ({0}) not a prefix of '
- 'response_range ({1})').format(
- request_range, response_range)
- self.assertTrue(response_range.startswith(request_range), msg=msg)
-
- def testComputeEndByte(self):
- total_size = 100
- chunksize = 10
- download = transfer.Download.FromStream(
- six.StringIO(), chunksize=chunksize, total_size=total_size)
- self.assertEqual(chunksize - 1,
- download._Download__ComputeEndByte(0, end=50))
-
- def testComputeEndByteReturnNone(self):
- download = transfer.Download.FromStream(six.StringIO())
- self.assertIsNone(
- download._Download__ComputeEndByte(0, use_chunks=False))
-
- def testComputeEndByteNoChunks(self):
- total_size = 100
- download = transfer.Download.FromStream(
- six.StringIO(), chunksize=10, total_size=total_size)
- for end in (None, 1000):
- self.assertEqual(
- total_size - 1,
- download._Download__ComputeEndByte(0, end=end,
- use_chunks=False),
- msg='Failed on end={0}'.format(end))
-
- def testComputeEndByteNoTotal(self):
- download = transfer.Download.FromStream(six.StringIO())
- default_chunksize = download.chunksize
- for chunksize in (100, default_chunksize):
- download.chunksize = chunksize
- for start in (0, 10):
- self.assertEqual(
- download.chunksize + start - 1,
- download._Download__ComputeEndByte(start),
- msg='Failed on start={0}, chunksize={1}'.format(
- start, chunksize))
-
- def testComputeEndByteSmallTotal(self):
- total_size = 100
- download = transfer.Download.FromStream(six.StringIO(),
- total_size=total_size)
- for start in (0, 10):
- self.assertEqual(total_size - 1,
- download._Download__ComputeEndByte(start),
- msg='Failed on start={0}'.format(start))
-
- def testNonChunkedDownload(self):
- bytes_http = object()
- http = object()
- download_stream = six.StringIO()
- download = transfer.Download.FromStream(download_stream, total_size=52)
- download.bytes_http = bytes_http
- base_url = 'https://part.one/'
-
- with mock.patch.object(http_wrapper, 'MakeRequest',
- autospec=True) as make_request:
- make_request.return_value = http_wrapper.Response(
- info={
- 'content-range': 'bytes 0-51/52',
- 'status': http_client.OK,
- },
- content=string.ascii_lowercase * 2,
- request_url=base_url,
- )
- request = http_wrapper.Request(url='https://part.one/')
- download.InitializeDownload(request, http=http)
- self.assertEqual(1, make_request.call_count)
- received_request = make_request.call_args[0][1]
- self.assertEqual(base_url, received_request.url)
- self.assertRangeAndContentRangeCompatible(
- received_request, make_request.return_value)
- download_stream.seek(0)
- self.assertEqual(string.ascii_lowercase * 2,
- download_stream.getvalue())
-
- def testChunkedDownload(self):
- bytes_http = object()
- http = object()
- download_stream = six.StringIO()
- download = transfer.Download.FromStream(
- download_stream, chunksize=26, total_size=52)
- download.bytes_http = bytes_http
-
- # Setting autospec on a mock with an iterable side_effect is
- # currently broken (http://bugs.python.org/issue17826), so
- # instead we write a little function.
- def _ReturnBytes(unused_http, http_request,
- *unused_args, **unused_kwds):
- url = http_request.url
- if url == 'https://part.one/':
- return http_wrapper.Response(
- info={
- 'content-location': 'https://part.two/',
- 'content-range': 'bytes 0-25/52',
- 'status': http_client.PARTIAL_CONTENT,
- },
- content=string.ascii_lowercase,
- request_url='https://part.one/',
- )
- elif url == 'https://part.two/':
- return http_wrapper.Response(
- info={
- 'content-range': 'bytes 26-51/52',
- 'status': http_client.OK,
- },
- content=string.ascii_uppercase,
- request_url='https://part.two/',
- )
- else:
- self.fail('Unknown URL requested: %s' % url)
-
- with mock.patch.object(http_wrapper, 'MakeRequest',
- autospec=True) as make_request:
- make_request.side_effect = _ReturnBytes
- request = http_wrapper.Request(url='https://part.one/')
- download.InitializeDownload(request, http=http)
- self.assertEqual(2, make_request.call_count)
- for call in make_request.call_args_list:
- self.assertRangeAndContentRangeCompatible(
- call[0][1], _ReturnBytes(*call[0]))
- download_stream.seek(0)
- self.assertEqual(string.ascii_lowercase + string.ascii_uppercase,
- download_stream.getvalue())
-
- def testFromEncoding(self):
- # Test a specific corner case in multipart encoding.
-
- # Python's mime module by default encodes lines that start with
- # "From " as ">From ", which we need to make sure we don't run afoul
- # of when sending content that isn't intended to be so encoded. This
- # test calls out that we get this right. We test for both the
- # multipart and non-multipart case.
- multipart_body = '{"body_field_one": 7}'
- upload_contents = 'line one\nFrom \nline two'
- upload_config = base_api.ApiUploadInfo(
- accept=['*/*'],
- max_size=None,
- resumable_multipart=True,
- resumable_path=u'/resumable/upload',
- simple_multipart=True,
- simple_path=u'/upload',
- )
- url_builder = base_api._UrlBuilder('http://www.uploads.com')
-
- # Test multipart: having a body argument in http_request forces
- # multipart here.
- upload = transfer.Upload.FromStream(
- six.StringIO(upload_contents),
- 'text/plain',
- total_size=len(upload_contents))
- http_request = http_wrapper.Request(
- 'http://www.uploads.com',
- headers={'content-type': 'text/plain'},
- body=multipart_body)
- upload.ConfigureRequest(upload_config, http_request, url_builder)
- self.assertEqual(url_builder.query_params['uploadType'], 'multipart')
- rewritten_upload_contents = '\n'.join(
- http_request.body.split('--')[2].splitlines()[1:])
- self.assertTrue(rewritten_upload_contents.endswith(upload_contents))
-
- # Test non-multipart (aka media): no body argument means this is
- # sent as media.
- upload = transfer.Upload.FromStream(
- six.StringIO(upload_contents),
- 'text/plain',
- total_size=len(upload_contents))
- http_request = http_wrapper.Request(
- 'http://www.uploads.com',
- headers={'content-type': 'text/plain'})
- upload.ConfigureRequest(upload_config, http_request, url_builder)
- self.assertEqual(url_builder.query_params['uploadType'], 'media')
- rewritten_upload_contents = http_request.body
- self.assertTrue(rewritten_upload_contents.endswith(upload_contents))

Powered by Google App Engine
This is Rietveld 408576698