Skip to content

Commit 8ad2e55

Browse files
committed
Added test for namespace exists
1 parent a634bea commit 8ad2e55

File tree

1 file changed

+58
-1
lines changed

1 file changed

+58
-1
lines changed

tests/catalog/test_rest.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1924,6 +1924,11 @@ def test_rest_catalog_context_manager_with_exception_sigv4(self, rest_mock: Mock
19241924
def 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

19441949
def 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:
19651975
def 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

Comments
 (0)