Skip to content

Commit f405447

Browse files
committed
Added test for namespace exists
1 parent ced933e commit f405447

1 file changed

Lines changed: 58 additions & 1 deletion

File tree

tests/catalog/test_rest.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2659,6 +2659,11 @@ def test_load_table_without_storage_credentials(
26592659
def test_rename_view_204(rest_mock: Mocker) -> None:
26602660
from_identifier = ("some_namespace", "old_view")
26612661
to_identifier = ("some_namespace", "new_view")
2662+
rest_mock.head(
2663+
f"{TEST_URI}v1/namespaces/some_namespace",
2664+
status_code=200,
2665+
request_headers=TEST_HEADERS,
2666+
)
26622667
rest_mock.post(
26632668
f"{TEST_URI}v1/views/rename",
26642669
json={
@@ -2672,13 +2677,18 @@ def test_rename_view_204(rest_mock: Mocker) -> None:
26722677
catalog.rename_view(from_identifier, to_identifier)
26732678
assert (
26742679
rest_mock.last_request.text
2675-
== """{"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}"""
2680+
== '''{"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}'''
26762681
)
26772682

26782683

26792684
def test_rename_view_404(rest_mock: Mocker) -> None:
26802685
from_identifier = ("some_namespace", "non_existent_view")
26812686
to_identifier = ("some_namespace", "new_view")
2687+
rest_mock.head(
2688+
f"{TEST_URI}v1/namespaces/some_namespace",
2689+
status_code=200,
2690+
request_headers=TEST_HEADERS,
2691+
)
26822692
rest_mock.post(
26832693
f"{TEST_URI}v1/views/rename",
26842694
json={
@@ -2700,6 +2710,11 @@ def test_rename_view_404(rest_mock: Mocker) -> None:
27002710
def test_rename_view_409(rest_mock: Mocker) -> None:
27012711
from_identifier = ("some_namespace", "old_view")
27022712
to_identifier = ("some_namespace", "existing_view")
2713+
rest_mock.head(
2714+
f"{TEST_URI}v1/namespaces/some_namespace",
2715+
status_code=200,
2716+
request_headers=TEST_HEADERS,
2717+
)
27032718
rest_mock.post(
27042719
f"{TEST_URI}v1/views/rename",
27052720
json={
@@ -2716,3 +2731,45 @@ def test_rename_view_409(rest_mock: Mocker) -> None:
27162731
with pytest.raises(ViewAlreadyExistsError) as exc_info:
27172732
catalog.rename_view(from_identifier, to_identifier)
27182733
assert "View already exists: some_namespace.existing_view" in str(exc_info.value)
2734+
2735+
2736+
def test_rename_view_source_namespace_does_not_exist(rest_mock: Mocker) -> None:
2737+
from_identifier = ("non_existent_namespace", "old_view")
2738+
to_identifier = ("some_namespace", "new_view")
2739+
2740+
rest_mock.head(
2741+
f"{TEST_URI}v1/namespaces/non_existent_namespace",
2742+
status_code=404,
2743+
request_headers=TEST_HEADERS,
2744+
)
2745+
rest_mock.head(
2746+
f"{TEST_URI}v1/namespaces/some_namespace",
2747+
status_code=200,
2748+
request_headers=TEST_HEADERS,
2749+
)
2750+
2751+
catalog = RestCatalog("rest", uri=TEST_URI, token=TEST_TOKEN)
2752+
with pytest.raises(NoSuchNamespaceError) as exc_info:
2753+
catalog.rename_view(from_identifier, to_identifier)
2754+
assert "Source namespace does not exist: ('non_existent_namespace',)" in str(exc_info.value)
2755+
2756+
2757+
def test_rename_view_destination_namespace_does_not_exist(rest_mock: Mocker) -> None:
2758+
from_identifier = ("some_namespace", "old_view")
2759+
to_identifier = ("non_existent_namespace", "new_view")
2760+
2761+
rest_mock.head(
2762+
f"{TEST_URI}v1/namespaces/some_namespace",
2763+
status_code=200,
2764+
request_headers=TEST_HEADERS,
2765+
)
2766+
rest_mock.head(
2767+
f"{TEST_URI}v1/namespaces/non_existent_namespace",
2768+
status_code=404,
2769+
request_headers=TEST_HEADERS,
2770+
)
2771+
2772+
catalog = RestCatalog("rest", uri=TEST_URI, token=TEST_TOKEN)
2773+
with pytest.raises(NoSuchNamespaceError) as exc_info:
2774+
catalog.rename_view(from_identifier, to_identifier)
2775+
assert "Destination namespace does not exist: non_existent_namespace" in str(exc_info.value)

0 commit comments

Comments
 (0)