@@ -32,15 +32,15 @@ def __init__(self, total_items: int, page_size: int):
3232 # Override plus_one_paging to accommodate this weird hybrid
3333 self .plus_one_paging = False
3434
35- class TestPageIterator (_BasePageIterator ):
35+ class BaseTestPageIterator (_BasePageIterator ):
3636 """
3737 A test subclass of the _BasePager under test.
3838 """
3939 operation : Callable = None
4040 page_keys : list [str ] = []
4141
4242 def __init__ (self , client , opts ):
43- super ().__init__ (client , TestPageIterator .operation or client .post_view , TestPageIterator .page_keys , opts )
43+ super ().__init__ (client , BaseTestPageIterator .operation or client .post_view , BaseTestPageIterator .page_keys , opts )
4444
4545 def _result_converter (self ) -> Callable [[dict ], ViewResult ]:
4646 return lambda d : ViewResult .from_dict (d )
@@ -58,7 +58,7 @@ class TestBasePageIterator(MockClientBaseCase):
5858 def test_init (self ):
5959 operation = self .client .post_view
6060 opts = {'db' : 'test' , 'limit' : 20 }
61- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (self .client , opts )
61+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (self .client , opts )
6262 # Assert client is set
6363 self .assertEqual (page_iterator ._client , self .client , 'The supplied client should be set.' )
6464 # Assert operation is set
@@ -72,40 +72,40 @@ def test_partial_options(self):
7272 page_opts = {'foo' : 'boo' , 'bar' : 'far' }
7373 opts = {** static_opts , ** page_opts }
7474 # Use page_opts.keys() to pass the list of names for page options
75- with patch ('test_pagination_base.TestPageIterator .page_keys' , page_opts .keys ()):
76- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (self .client , opts )
75+ with patch ('test_pagination_base.BaseTestPageIterator .page_keys' , page_opts .keys ()):
76+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (self .client , opts )
7777 # Assert partial function has only static opts
7878 self .assertEqual (page_iterator ._next_request_function .keywords , static_opts , 'The partial function kwargs should be only the static options.' )
7979 # Assert next page options
8080 self .assertEqual (page_iterator ._next_page_opts , page_opts , 'The next page options should match the expected.' )
8181
8282 def test_default_page_size (self ):
8383 opts = {'db' : 'test' }
84- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (self .client , opts )
84+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (self .client , opts )
8585 # Assert the default page size
8686 expected_page_size = 200
8787 self .assertEqual (page_iterator ._page_size , expected_page_size , 'The default page size should be set.' )
8888 self .assertEqual (page_iterator ._next_request_function .keywords , opts | {'limit' : expected_page_size }, 'The default page size should be present in the options.' )
8989
9090 def test_limit_page_size (self ):
9191 opts = {'db' : 'test' , 'limit' : 42 }
92- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (self .client , opts )
92+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (self .client , opts )
9393 # Assert the provided page size
9494 expected_page_size = 42
9595 self .assertEqual (page_iterator ._page_size , expected_page_size , 'The default page size should be set.' )
9696 self .assertEqual (page_iterator ._next_request_function .keywords , opts | {'limit' : expected_page_size }, 'The default page size should be present in the options.' )
9797
9898 def test_has_next_initially_true (self ):
9999 opts = {'limit' : 1 }
100- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (self .client , opts )
100+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (self .client , opts )
101101 # Assert _has_next
102102 self .assertTrue (page_iterator ._has_next , '_has_next should initially return True.' )
103103
104104 def test_has_next_true_for_result_equal_to_limit (self ):
105105 page_size = 1
106106 # Init with mock that returns only a single row
107- with patch ('test_pagination_base.TestPageIterator .operation' , BasePageMockResponses (1 , page_size ).get_next_page ):
108- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
107+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , BasePageMockResponses (1 , page_size ).get_next_page ):
108+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
109109 self .client ,
110110 {'limit' : page_size })
111111 # Get first page with 1 result
@@ -116,8 +116,8 @@ def test_has_next_true_for_result_equal_to_limit(self):
116116 def test_has_next_false_for_result_less_than_limit (self ):
117117 page_size = 1
118118 # Init with mock that returns zero rows
119- with patch ('test_pagination_base.TestPageIterator .operation' , BasePageMockResponses (0 , page_size ).get_next_page ):
120- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
119+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , BasePageMockResponses (0 , page_size ).get_next_page ):
120+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
121121 self .client ,
122122 {'limit' : page_size })
123123 # Get first page with 0 result
@@ -129,8 +129,8 @@ def test_next_first_page(self):
129129 page_size = 25
130130 # Mock that returns one page of 25 items
131131 mock = BasePageMockResponses (page_size , page_size )
132- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
133- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
132+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
133+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
134134 self .client ,
135135 {'limit' : page_size })
136136 # Get first page
@@ -142,8 +142,8 @@ def test_next_two_pages(self):
142142 page_size = 3
143143 # Mock that returns two pages of 3 items
144144 mock = BasePageMockResponses (2 * page_size , page_size )
145- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
146- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
145+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
146+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
147147 self .client ,
148148 {'limit' : page_size })
149149 # Get first page
@@ -163,8 +163,8 @@ def test_next_until_empty(self):
163163 page_size = 3
164164 # Mock that returns 3 pages of 3 items
165165 mock = BasePageMockResponses (3 * page_size , page_size )
166- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
167- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
166+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
167+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
168168 self .client ,
169169 {'limit' : page_size })
170170 page_count = 0
@@ -182,8 +182,8 @@ def test_next_until_smaller(self):
182182 page_size = 3
183183 # Mock that returns 3 pages of 3 items, then 1 more page with 1 item
184184 mock = BasePageMockResponses (3 * page_size + 1 , page_size )
185- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
186- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
185+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
186+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
187187 self .client ,
188188 {'limit' : page_size })
189189 page_count = 0
@@ -201,8 +201,8 @@ def test_next_exception(self):
201201 page_size = 2
202202 # Mock that returns one page of one item
203203 mock = BasePageMockResponses (page_size - 1 , page_size )
204- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
205- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
204+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
205+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
206206 self .client ,
207207 {'limit' : page_size })
208208 # Get first and only page
@@ -218,8 +218,8 @@ def test_next_exception(self):
218218 def test_pages_immutable (self ):
219219 page_size = 1
220220 mock = BasePageMockResponses (page_size , page_size )
221- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
222- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
221+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
222+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
223223 self .client ,
224224 {'limit' : page_size })
225225 # Get page
@@ -230,8 +230,8 @@ def test_pages_immutable(self):
230230 def test_set_next_page_options (self ):
231231 page_size = 1
232232 mock = BasePageMockResponses (5 * page_size , page_size )
233- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
234- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
233+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
234+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
235235 self .client ,
236236 {'limit' : page_size })
237237 self .assertIsNone (page_iterator ._next_page_opts .get ('start_key' ), "The start key should intially be None." )
@@ -248,8 +248,8 @@ def test_set_next_page_options(self):
248248 def test_next_resumes_after_error (self ):
249249 page_size = 1
250250 mock = BasePageMockResponses (3 * page_size , page_size )
251- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
252- page_iterator : Iterable [ViewResultRow ] = TestPageIterator (
251+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
252+ page_iterator : Iterable [ViewResultRow ] = BaseTestPageIterator (
253253 self .client ,
254254 {'limit' : page_size })
255255 self .assertIsNone (page_iterator ._next_page_opts .get ('start_key' ), "The start key should intially be None." )
@@ -269,8 +269,8 @@ def test_next_resumes_after_error(self):
269269 def test_pages_iterable (self ):
270270 page_size = 23
271271 mock = BasePageMockResponses (3 * page_size - 1 , page_size )
272- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
273- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
272+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
273+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
274274 # Check pages are iterable
275275 page_number = 0
276276 for page in pagination .pages ():
@@ -282,8 +282,8 @@ def test_pages_iterable(self):
282282 def test_rows_iterable (self ):
283283 page_size = 23
284284 mock = BasePageMockResponses (3 * page_size - 1 , page_size )
285- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
286- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
285+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
286+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
287287 actual_items = []
288288 # Check rows are iterable
289289 for row in pagination .rows ():
@@ -294,8 +294,8 @@ def test_as_pager_get_next_first_page(self):
294294 page_size = 7
295295 # Mock that returns two pages of 7 items
296296 mock = BasePageMockResponses (2 * page_size , page_size )
297- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
298- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
297+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
298+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
299299 pager = pagination .pager ()
300300 # Get first page
301301 actual_page : list [ViewResultRow ] = pager .get_next ()
@@ -305,8 +305,8 @@ def test_as_pager_get_all(self):
305305 page_size = 11
306306 # Mock that returns 6 pages of 11 items, then 1 more page with 5 items
307307 mock = BasePageMockResponses (71 , page_size )
308- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
309- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
308+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
309+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
310310 pager : Pager [ViewResultRow ] = pagination .pager ()
311311 actual_items = pager .get_all ()
312312 self .assertSequenceEqual (actual_items , mock .all_expected_items (), "The results should match all the pages." )
@@ -326,8 +326,8 @@ def test_as_pager_get_all_restarts_after_error(self):
326326 first_page ,
327327 mock .get_next_page ()
328328 ])
329- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
330- with patch ('test_pagination_base.TestPageIterator .operation' , mockmock ):
329+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
330+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mockmock ):
331331 pager = pagination .pager ()
332332 with self .assertRaises (Exception ):
333333 pager .get_all ()
@@ -337,8 +337,8 @@ def test_as_pager_get_next_get_all_raises(self):
337337 page_size = 11
338338 # Mock that returns 6 pages of 11 items, then 1 more page with 5 items
339339 mock = BasePageMockResponses (71 , page_size )
340- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
341- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
340+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
341+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
342342 pager : Pager [ViewResultRow ] = pagination .pager ()
343343 first_page = pager .get_next ()
344344 self .assertSequenceEqual (first_page , mock .get_expected_page (1 ), "The actual page should match the expected page" )
@@ -358,8 +358,8 @@ def test_as_pager_get_all_get_next_raises(self):
358358 first_page ,
359359 Exception ('test exception' )
360360 ])
361- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
362- with patch ('test_pagination_base.TestPageIterator .operation' , mockmock ):
361+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
362+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mockmock ):
363363 pager = pagination .pager ()
364364 # Stop get all part way through so it isn't consumed when we call get Next
365365 with self .assertRaises (Exception ):
@@ -378,8 +378,8 @@ def test_as_pager_get_next_resumes_after_error(self):
378378 Exception ('test exception' ),
379379 mock .get_next_page ()
380380 ])
381- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
382- with patch ('test_pagination_base.TestPageIterator .operation' , mockmock ):
381+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
382+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mockmock ):
383383 pager = pagination .pager ()
384384 # Assert first page
385385 self .assertSequenceEqual (pager .get_next (), mock .get_expected_page (1 ), "The actual page should match the expected page" )
@@ -392,8 +392,8 @@ def test_as_pager_get_next_until_consumed(self):
392392 page_size = 7
393393 # Mock that returns two pages of 7 items
394394 mock = BasePageMockResponses (2 * page_size , page_size )
395- pagination = Pagination (self .client , TestPageIterator , {'limit' : page_size })
396- with patch ('test_pagination_base.TestPageIterator .operation' , mock .get_next_page ):
395+ pagination = Pagination (self .client , BaseTestPageIterator , {'limit' : page_size })
396+ with patch ('test_pagination_base.BaseTestPageIterator .operation' , mock .get_next_page ):
397397 pager = pagination .pager ()
398398 page_count = 0
399399 while pager .has_next ():
0 commit comments