@@ -412,6 +412,28 @@ def test_list_tables_200(rest_mock: Mocker) -> None:
412412 assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_tables (namespace ) == [("examples" , "fooshare" )]
413413
414414
415+ def test_list_tables_paginated_200 (rest_mock : Mocker ) -> None :
416+ namespace = "examples"
417+ rest_mock .get (
418+ f"{ TEST_URI } v1/namespaces/{ namespace } /tables" ,
419+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare" }], "next-page-token" : "page2" },
420+ status_code = 200 ,
421+ request_headers = TEST_HEADERS ,
422+ )
423+ rest_mock .get (
424+ f"{ TEST_URI } v1/namespaces/{ namespace } /tables?pageToken=page2" ,
425+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare2" }]},
426+ status_code = 200 ,
427+ request_headers = TEST_HEADERS ,
428+ )
429+
430+ assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_tables (namespace ) == [
431+ ("examples" , "fooshare" ),
432+ ("examples" , "fooshare2" ),
433+ ]
434+ assert rest_mock .call_count == 3
435+
436+
415437def test_list_tables_200_sigv4 (rest_mock : Mocker ) -> None :
416438 namespace = "examples"
417439 rest_mock .get (
@@ -458,6 +480,30 @@ def test_list_views_200(rest_mock: Mocker) -> None:
458480 assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_views (namespace ) == [("examples" , "fooshare" )]
459481
460482
483+ def test_list_views_paginated_200 (rest_mock : Mocker ) -> None :
484+ namespace = "examples"
485+ rest_mock .get (
486+ f"{ TEST_URI } v1/namespaces/{ namespace } /views" ,
487+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare" }], "next-page-token" : "page2" },
488+ status_code = 200 ,
489+ request_headers = TEST_HEADERS ,
490+ )
491+
492+ rest_mock .get (
493+ f"{ TEST_URI } v1/namespaces/{ namespace } /views?pageToken=page2" ,
494+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare2" }]},
495+ status_code = 200 ,
496+ request_headers = TEST_HEADERS ,
497+ )
498+
499+ assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_views (namespace ) == [
500+ ("examples" , "fooshare" ),
501+ ("examples" , "fooshare2" ),
502+ ]
503+
504+ assert rest_mock .call_count == 3
505+
506+
461507def test_list_views_200_sigv4 (rest_mock : Mocker ) -> None :
462508 namespace = "examples"
463509 rest_mock .get (
@@ -543,6 +589,33 @@ def test_list_namespaces_200(rest_mock: Mocker) -> None:
543589 ]
544590
545591
592+ def test_list_namespaces_paginated_200 (rest_mock : Mocker ) -> None :
593+ rest_mock .get (
594+ f"{ TEST_URI } v1/namespaces" ,
595+ json = {"namespaces" : [["default" ], ["examples" ], ["fokko" ], ["system" ]], "next-page-token" : "page2" },
596+ status_code = 200 ,
597+ request_headers = TEST_HEADERS ,
598+ )
599+ rest_mock .get (
600+ f"{ TEST_URI } v1/namespaces?pageToken=page2" ,
601+ json = {"namespaces" : [["default2" ], ["examples2" ], ["fokko2" ], ["system2" ]]},
602+ status_code = 200 ,
603+ request_headers = TEST_HEADERS ,
604+ )
605+ assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_namespaces () == [
606+ ("default" ,),
607+ ("examples" ,),
608+ ("fokko" ,),
609+ ("system" ,),
610+ ("default2" ,),
611+ ("examples2" ,),
612+ ("fokko2" ,),
613+ ("system2" ,),
614+ ]
615+
616+ assert rest_mock .call_count == 3
617+
618+
546619def test_list_namespace_with_parent_200 (rest_mock : Mocker ) -> None :
547620 rest_mock .get (
548621 f"{ TEST_URI } v1/namespaces?parent=accounting" ,
0 commit comments