@@ -402,6 +402,52 @@ def test_list_tables_404(rest_mock: Mocker) -> None:
402402 assert "Namespace does not exist" in str (e .value )
403403
404404
405+ def test_list_views_200 (rest_mock : Mocker ) -> None :
406+ namespace = "examples"
407+ rest_mock .get (
408+ f"{ TEST_URI } v1/namespaces/{ namespace } /views" ,
409+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare" }]},
410+ status_code = 200 ,
411+ request_headers = TEST_HEADERS ,
412+ )
413+
414+ assert RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_views (namespace ) == [("examples" , "fooshare" )]
415+
416+
417+ def test_list_views_200_sigv4 (rest_mock : Mocker ) -> None :
418+ namespace = "examples"
419+ rest_mock .get (
420+ f"{ TEST_URI } v1/namespaces/{ namespace } /views" ,
421+ json = {"identifiers" : [{"namespace" : ["examples" ], "name" : "fooshare" }]},
422+ status_code = 200 ,
423+ request_headers = TEST_HEADERS ,
424+ )
425+
426+ assert RestCatalog ("rest" , ** {"uri" : TEST_URI , "token" : TEST_TOKEN , "rest.sigv4-enabled" : "true" }).list_views (namespace ) == [
427+ ("examples" , "fooshare" )
428+ ]
429+ assert rest_mock .called
430+
431+
432+ def test_list_views_404 (rest_mock : Mocker ) -> None :
433+ namespace = "examples"
434+ rest_mock .get (
435+ f"{ TEST_URI } v1/namespaces/{ namespace } /views" ,
436+ json = {
437+ "error" : {
438+ "message" : "Namespace does not exist: personal in warehouse 8bcb0838-50fc-472d-9ddb-8feb89ef5f1e" ,
439+ "type" : "NoSuchNamespaceException" ,
440+ "code" : 404 ,
441+ }
442+ },
443+ status_code = 404 ,
444+ request_headers = TEST_HEADERS ,
445+ )
446+ with pytest .raises (NoSuchNamespaceError ) as e :
447+ RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN ).list_views (namespace )
448+ assert "Namespace does not exist" in str (e .value )
449+
450+
405451def test_list_namespaces_200 (rest_mock : Mocker ) -> None :
406452 rest_mock .get (
407453 f"{ TEST_URI } v1/namespaces" ,
0 commit comments