Skip to content

Commit 0ff8ece

Browse files
committed
Fixing use of Iterator in storage system tests.
1 parent cc9385e commit 0ff8ece

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

system_tests/storage.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,20 @@ def test_paginate_files(self):
257257
truncation_size = 1
258258
count = len(self.FILENAMES) - truncation_size
259259
iterator = self.bucket.list_blobs(max_results=count)
260-
iterator.update_page()
261-
blobs = list(iterator.page)
260+
page_iter = iterator.pages
261+
262+
page1 = six.next(page_iter)
263+
blobs = list(page1)
262264
self.assertEqual(len(blobs), count)
263265
self.assertIsNotNone(iterator.next_page_token)
264-
265-
iterator.update_page()
266-
last_blobs = list(iterator.page)
266+
# Technically the iterator is exhausted.
267+
self.assertEqual(iterator.num_results, iterator.max_results)
268+
# But we modify the iterator to continue paging after
269+
# articially stopping after ``count`` items.
270+
iterator.max_results = None
271+
272+
page2 = six.next(page_iter)
273+
last_blobs = list(page2)
267274
self.assertEqual(len(last_blobs), truncation_size)
268275

269276

@@ -301,17 +308,17 @@ def tearDownClass(cls):
301308
@RetryErrors(unittest.TestCase.failureException)
302309
def test_root_level_w_delimiter(self):
303310
iterator = self.bucket.list_blobs(delimiter='/')
304-
iterator.update_page()
305-
blobs = list(iterator.page)
311+
page = six.next(iterator.pages)
312+
blobs = list(page)
306313
self.assertEqual([blob.name for blob in blobs], ['file01.txt'])
307314
self.assertIsNone(iterator.next_page_token)
308315
self.assertEqual(iterator.prefixes, set(['parent/']))
309316

310317
@RetryErrors(unittest.TestCase.failureException)
311318
def test_first_level(self):
312319
iterator = self.bucket.list_blobs(delimiter='/', prefix='parent/')
313-
iterator.update_page()
314-
blobs = list(iterator.page)
320+
page = six.next(iterator.pages)
321+
blobs = list(page)
315322
self.assertEqual([blob.name for blob in blobs], ['parent/file11.txt'])
316323
self.assertIsNone(iterator.next_page_token)
317324
self.assertEqual(iterator.prefixes, set(['parent/child/']))
@@ -325,8 +332,8 @@ def test_second_level(self):
325332

326333
iterator = self.bucket.list_blobs(delimiter='/',
327334
prefix='parent/child/')
328-
iterator.update_page()
329-
blobs = list(iterator.page)
335+
page = six.next(iterator.pages)
336+
blobs = list(page)
330337
self.assertEqual([blob.name for blob in blobs],
331338
expected_names)
332339
self.assertIsNone(iterator.next_page_token)
@@ -341,8 +348,8 @@ def test_third_level(self):
341348
# Exercise a layer deeper to illustrate this.
342349
iterator = self.bucket.list_blobs(delimiter='/',
343350
prefix='parent/child/grand/')
344-
iterator.update_page()
345-
blobs = list(iterator.page)
351+
page = six.next(iterator.pages)
352+
blobs = list(page)
346353
self.assertEqual([blob.name for blob in blobs],
347354
['parent/child/grand/file31.txt'])
348355
self.assertIsNone(iterator.next_page_token)

0 commit comments

Comments
 (0)