diff --git a/glanceclient/common/utils.py b/glanceclient/common/utils.py index 0221bf47..3c10e4d9 100644 --- a/glanceclient/common/utils.py +++ b/glanceclient/common/utils.py @@ -471,6 +471,9 @@ class IterableWithLength(object): def next(self): return next(self.iterable) + # In Python 3, __next__() has replaced next(). + __next__ = next + def __len__(self): return self.length diff --git a/glanceclient/tests/unit/test_progressbar.py b/glanceclient/tests/unit/test_progressbar.py index 1dd42a03..1841cd00 100644 --- a/glanceclient/tests/unit/test_progressbar.py +++ b/glanceclient/tests/unit/test_progressbar.py @@ -19,6 +19,7 @@ import six import testtools from glanceclient.common import progressbar +from glanceclient.common import utils from glanceclient.tests import utils as test_utils @@ -26,12 +27,13 @@ class TestProgressBarWrapper(testtools.TestCase): def test_iter_iterator_display_progress_bar(self): size = 100 - iterator = iter('X' * 100) + iterator_with_len = utils.IterableWithLength(iter('X' * 100), size) saved_stdout = sys.stdout try: sys.stdout = output = test_utils.FakeTTYStdout() # Consume iterator. - data = list(progressbar.VerboseIteratorWrapper(iterator, size)) + data = list(progressbar.VerboseIteratorWrapper(iterator_with_len, + size)) self.assertEqual(['X'] * 100, data) self.assertEqual( '[%s>] 100%%\n' % ('=' * 29),