@@ -1924,6 +1924,11 @@ def test_rest_catalog_context_manager_with_exception_sigv4(self, rest_mock: Mock
19241924def test_rename_view_204 (rest_mock : Mocker ) -> None :
19251925 from_identifier = ("some_namespace" , "old_view" )
19261926 to_identifier = ("some_namespace" , "new_view" )
1927+ rest_mock .head (
1928+ f"{ TEST_URI } v1/namespaces/some_namespace" ,
1929+ status_code = 200 ,
1930+ request_headers = TEST_HEADERS ,
1931+ )
19271932 rest_mock .post (
19281933 f"{ TEST_URI } v1/views/rename" ,
19291934 json = {
@@ -1937,13 +1942,18 @@ def test_rename_view_204(rest_mock: Mocker) -> None:
19371942 catalog .rename_view (from_identifier , to_identifier )
19381943 assert (
19391944 rest_mock .last_request .text
1940- == """ {"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}"""
1945+ == ''' {"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}'''
19411946 )
19421947
19431948
19441949def test_rename_view_404 (rest_mock : Mocker ) -> None :
19451950 from_identifier = ("some_namespace" , "non_existent_view" )
19461951 to_identifier = ("some_namespace" , "new_view" )
1952+ rest_mock .head (
1953+ f"{ TEST_URI } v1/namespaces/some_namespace" ,
1954+ status_code = 200 ,
1955+ request_headers = TEST_HEADERS ,
1956+ )
19471957 rest_mock .post (
19481958 f"{ TEST_URI } v1/views/rename" ,
19491959 json = {
@@ -1965,6 +1975,11 @@ def test_rename_view_404(rest_mock: Mocker) -> None:
19651975def test_rename_view_409 (rest_mock : Mocker ) -> None :
19661976 from_identifier = ("some_namespace" , "old_view" )
19671977 to_identifier = ("some_namespace" , "existing_view" )
1978+ rest_mock .head (
1979+ f"{ TEST_URI } v1/namespaces/some_namespace" ,
1980+ status_code = 200 ,
1981+ request_headers = TEST_HEADERS ,
1982+ )
19681983 rest_mock .post (
19691984 f"{ TEST_URI } v1/views/rename" ,
19701985 json = {
@@ -1981,3 +1996,45 @@ def test_rename_view_409(rest_mock: Mocker) -> None:
19811996 with pytest .raises (ViewAlreadyExistsError ) as exc_info :
19821997 catalog .rename_view (from_identifier , to_identifier )
19831998 assert "View already exists: some_namespace.existing_view" in str (exc_info .value )
1999+
2000+
2001+ def test_rename_view_source_namespace_does_not_exist (rest_mock : Mocker ) -> None :
2002+ from_identifier = ("non_existent_namespace" , "old_view" )
2003+ to_identifier = ("some_namespace" , "new_view" )
2004+
2005+ rest_mock .head (
2006+ f"{ TEST_URI } v1/namespaces/non_existent_namespace" ,
2007+ status_code = 404 ,
2008+ request_headers = TEST_HEADERS ,
2009+ )
2010+ rest_mock .head (
2011+ f"{ TEST_URI } v1/namespaces/some_namespace" ,
2012+ status_code = 200 ,
2013+ request_headers = TEST_HEADERS ,
2014+ )
2015+
2016+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2017+ with pytest .raises (NoSuchNamespaceError ) as exc_info :
2018+ catalog .rename_view (from_identifier , to_identifier )
2019+ assert "Source namespace does not exist: ('non_existent_namespace',)" in str (exc_info .value )
2020+
2021+
2022+ def test_rename_view_destination_namespace_does_not_exist (rest_mock : Mocker ) -> None :
2023+ from_identifier = ("some_namespace" , "old_view" )
2024+ to_identifier = ("non_existent_namespace" , "new_view" )
2025+
2026+ rest_mock .head (
2027+ f"{ TEST_URI } v1/namespaces/some_namespace" ,
2028+ status_code = 200 ,
2029+ request_headers = TEST_HEADERS ,
2030+ )
2031+ rest_mock .head (
2032+ f"{ TEST_URI } v1/namespaces/non_existent_namespace" ,
2033+ status_code = 404 ,
2034+ request_headers = TEST_HEADERS ,
2035+ )
2036+
2037+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2038+ with pytest .raises (NoSuchNamespaceError ) as exc_info :
2039+ catalog .rename_view (from_identifier , to_identifier )
2040+ assert "Destination namespace does not exist: non_existent_namespace" in str (exc_info .value )
0 commit comments