@@ -2325,6 +2325,7 @@ def test_rest_catalog_context_manager_with_exception_sigv4(self, rest_mock: Mock
23252325 assert catalog is not None and hasattr (catalog , "_session" )
23262326 assert len (catalog ._session .adapters ) == self .EXPECTED_ADAPTERS_SIGV4
23272327
2328+ < << << << HEAD
23282329 def test_server_side_planning_disabled_by_default (self , rest_mock : Mocker ) -> None :
23292330 catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
23302331
@@ -2654,3 +2655,65 @@ def test_load_table_without_storage_credentials(
26542655 )
26552656 assert actual .metadata .model_dump () == expected .metadata .model_dump ()
26562657 assert actual == expected
2658+
2659+
2660+ def test_rename_view_204 (rest_mock : Mocker ) -> None :
2661+ from_identifier = ("some_namespace" , "old_view" )
2662+ to_identifier = ("some_namespace" , "new_view" )
2663+ rest_mock .post (
2664+ f"{ TEST_URI } v1/views/rename" ,
2665+ json = {
2666+ "source" : {"namespace" : ["some_namespace" ], "name" : "old_view" },
2667+ "destination" : {"namespace" : ["some_namespace" ], "name" : "new_view" },
2668+ },
2669+ status_code = 204 ,
2670+ request_headers = TEST_HEADERS ,
2671+ )
2672+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2673+ catalog .rename_view (from_identifier , to_identifier )
2674+ assert (
2675+ rest_mock .last_request .text
2676+ == """{"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}"""
2677+ )
2678+
2679+
2680+ def test_rename_view_404 (rest_mock : Mocker ) -> None :
2681+ from_identifier = ("some_namespace" , "non_existent_view" )
2682+ to_identifier = ("some_namespace" , "new_view" )
2683+ rest_mock .post (
2684+ f"{ TEST_URI } v1/views/rename" ,
2685+ json = {
2686+ "error" : {
2687+ "message" : "View does not exist: some_namespace.non_existent_view" ,
2688+ "type" : "NoSuchViewException" ,
2689+ "code" : 404 ,
2690+ }
2691+ },
2692+ status_code = 404 ,
2693+ request_headers = TEST_HEADERS ,
2694+ )
2695+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2696+ with pytest .raises (NoSuchViewError ) as exc_info :
2697+ catalog .rename_view (from_identifier , to_identifier )
2698+ assert "View does not exist: some_namespace.non_existent_view" in str (exc_info .value )
2699+
2700+
2701+ def test_rename_view_409 (rest_mock : Mocker ) -> None :
2702+ from_identifier = ("some_namespace" , "old_view" )
2703+ to_identifier = ("some_namespace" , "existing_view" )
2704+ rest_mock .post (
2705+ f"{ TEST_URI } v1/views/rename" ,
2706+ json = {
2707+ "error" : {
2708+ "message" : "View already exists: some_namespace.existing_view" ,
2709+ "type" : "ViewAlreadyExistsException" ,
2710+ "code" : 409 ,
2711+ }
2712+ },
2713+ status_code = 409 ,
2714+ request_headers = TEST_HEADERS ,
2715+ )
2716+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2717+ with pytest .raises (ViewAlreadyExistsError ) as exc_info :
2718+ catalog .rename_view (from_identifier , to_identifier )
2719+ assert "View already exists: some_namespace.existing_view" in str (exc_info .value )
0 commit comments