summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLouis Taylor <kragniz@gmail.com>2014-11-01 20:49:03 +0000
committerLouis Taylor <kragniz@gmail.com>2015-01-04 20:52:00 +0000
commitdf02ee8e2a10d2f37a9c013dec157c88b8dce49d (patch)
tree6adf239757b8880c0d6d0e5b70e110d5625442ae /tests
parent7ce1ff9325be702384d728ad6a94f597680e1707 (diff)
downloadpython-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.py13
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: