@@ -2124,12 +2124,18 @@ def test_table_identifier_in_commit_table_request(
21242124
21252125
21262126def test_register_view_200 (rest_mock : Mocker , example_view_metadata_rest_json : dict [str , Any ]) -> None :
2127+ rest_mock .head (
2128+ f"{ TEST_URI } v1/namespaces/default/tables/registered_view" ,
2129+ status_code = 404 ,
2130+ request_headers = TEST_HEADERS ,
2131+ )
21272132 rest_mock .post (
21282133 f"{ TEST_URI } v1/namespaces/default/register-view" ,
21292134 json = example_view_metadata_rest_json ,
21302135 status_code = 200 ,
21312136 request_headers = TEST_HEADERS ,
21322137 )
2138+
21332139 catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
21342140 actual = catalog .register_view (
21352141 identifier = ("default" , "registered_view" ), metadata_location = "s3://warehouse/database/view/metadata.json"
@@ -2138,11 +2144,15 @@ def test_register_view_200(rest_mock: Mocker, example_view_metadata_rest_json: d
21382144 identifier = ("default" , "registered_view" ),
21392145 metadata = ViewMetadata (** example_view_metadata_rest_json ["metadata" ]),
21402146 )
2141- assert actual .metadata .model_dump () == expected .metadata .model_dump ()
2142- assert actual .name () == expected .name ()
2147+ assert actual == expected
21432148
21442149
2145- def test_register_view_409 (rest_mock : Mocker ) -> None :
2150+ def test_register_view_409_view (rest_mock : Mocker ) -> None :
2151+ rest_mock .head (
2152+ f"{ TEST_URI } v1/namespaces/default/tables/registered_view" ,
2153+ status_code = 404 ,
2154+ request_headers = TEST_HEADERS ,
2155+ )
21462156 rest_mock .post (
21472157 f"{ TEST_URI } v1/namespaces/default/register-view" ,
21482158 json = {
@@ -2164,6 +2174,26 @@ def test_register_view_409(rest_mock: Mocker) -> None:
21642174 assert "View already exists" in str (e .value )
21652175
21662176
2177+ def test_register_view_409_table (rest_mock : Mocker ) -> None :
2178+ rest_mock .head (
2179+ f"{ TEST_URI } v1/namespaces/default/tables/registered_view" ,
2180+ status_code = 200 ,
2181+ request_headers = TEST_HEADERS ,
2182+ )
2183+ rest_mock .post (
2184+ f"{ TEST_URI } v1/namespaces/default/views/registered_view" ,
2185+ status_code = 204 ,
2186+ request_headers = TEST_HEADERS ,
2187+ )
2188+
2189+ catalog = RestCatalog ("rest" , uri = TEST_URI , token = TEST_TOKEN )
2190+ with pytest .raises (TableAlreadyExistsError ) as e :
2191+ catalog .register_view (
2192+ identifier = ("default" , "registered_view" ), metadata_location = "s3://warehouse/database/view/metadata.json"
2193+ )
2194+ assert "Table default.registered_view already exists" in str (e .value )
2195+
2196+
21672197def test_drop_view_invalid_namespace (rest_mock : Mocker ) -> None :
21682198 view = "view"
21692199 with pytest .raises (NoSuchIdentifierError ) as e :
0 commit comments