diff options
| author | Louis Taylor <kragniz@gmail.com> | 2014-11-01 20:49:03 +0000 |
|---|---|---|
| committer | Louis Taylor <kragniz@gmail.com> | 2015-01-04 20:52:00 +0000 |
| commit | df02ee8e2a10d2f37a9c013dec157c88b8dce49d (patch) | |
| tree | 6adf239757b8880c0d6d0e5b70e110d5625442ae /tests | |
| parent | 7ce1ff9325be702384d728ad6a94f597680e1707 (diff) | |
| download | python-glanceclient-df02ee8e2a10d2f37a9c013dec157c88b8dce49d.tar.gz | |
Fix Requests breaking download progress bar
The move to the requests library (dbb242b) broke the progress bar during
downloading an image with --progress enabled, due to requests returning
a generator, which has no __len__ function. This patch adds an iterable
wrapper which provides the length, sourced from Content-Length headers.
Closes-Bug: #1384664
Change-Id: I48598a824396bc6e7cba69eb3ce32e7c8f30a18a
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/v2/test_shell_v2.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/v2/test_shell_v2.py b/tests/v2/test_shell_v2.py index 23894ea..3480e5c 100644 --- a/tests/v2/test_shell_v2.py +++ b/tests/v2/test_shell_v2.py @@ -341,6 +341,19 @@ class ShellV2Test(testtools.TestCase): test_shell.do_image_upload(self.gc, args) mocked_upload.assert_called_once_with('IMG-01', 'testfile', 1024) + def test_image_download(self): + args = self._make_args( + {'id': 'IMG-01', 'file': 'test', 'progress': True}) + + with mock.patch.object(self.gc.images, 'data') as mocked_data: + def _data(): + for c in 'abcedf': + yield c + mocked_data.return_value = utils.IterableWithLength(_data(), 5) + + test_shell.do_image_download(self.gc, args) + mocked_data.assert_called_once_with('IMG-01') + def test_do_image_delete(self): args = self._make_args({'id': 'pass', 'file': 'test'}) with mock.patch.object(self.gc.images, 'delete') as mocked_delete: |
