Skip to content

Commit 9188ced

Browse files
committed
Added test for namespace exists
1 parent 8ee3da5 commit 9188ced

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
@@ -2626,6 +2626,11 @@ def test_load_table_without_storage_credentials(
26262626
def test_rename_view_204(rest_mock: Mocker) -> None:
26272627
from_identifier = ("some_namespace", "old_view")
26282628
to_identifier = ("some_namespace", "new_view")
2629+
rest_mock.head(
2630+
f"{TEST_URI}v1/namespaces/some_namespace",
2631+
status_code=200,
2632+
request_headers=TEST_HEADERS,
2633+
)
26292634
rest_mock.post(
26302635
f"{TEST_URI}v1/views/rename",
26312636
json={
@@ -2639,13 +2644,18 @@ def test_rename_view_204(rest_mock: Mocker) -> None:
26392644
catalog.rename_view(from_identifier, to_identifier)
26402645
assert (
26412646
rest_mock.last_request.text
2642-
== """{"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}"""
2647+
== '''{"source": {"namespace": ["some_namespace"], "name": "old_view"}, "destination": {"namespace": ["some_namespace"], "name": "new_view"}}'''
26432648
)
26442649

26452650

26462651
def test_rename_view_404(rest_mock: Mocker) -> None:
26472652
from_identifier = ("some_namespace", "non_existent_view")
26482653
to_identifier = ("some_namespace", "new_view")
2654+
rest_mock.head(
2655+
f"{TEST_URI}v1/namespaces/some_namespace",
2656+
status_code=200,
2657+
request_headers=TEST_HEADERS,
2658+
)
26492659
rest_mock.post(
26502660
f"{TEST_URI}v1/views/rename",
26512661
json={
@@ -2667,6 +2677,11 @@ def test_rename_view_404(rest_mock: Mocker) -> None:
26672677
def test_rename_view_409(rest_mock: Mocker) -> None:
26682678
from_identifier = ("some_namespace", "old_view")
26692679
to_identifier = ("some_namespace", "existing_view")
2680+
rest_mock.head(
2681+
f"{TEST_URI}v1/namespaces/some_namespace",
2682+
status_code=200,
2683+
request_headers=TEST_HEADERS,
2684+
)
26702685
rest_mock.post(
26712686
f"{TEST_URI}v1/views/rename",
26722687
json={
@@ -2683,3 +2698,45 @@ def test_rename_view_409(rest_mock: Mocker) -> None:
26832698
with pytest.raises(ViewAlreadyExistsError) as exc_info:
26842699
catalog.rename_view(from_identifier, to_identifier)
26852700
assert "View already exists: some_namespace.existing_view" in str(exc_info.value)
2701+
2702+
2703+
def test_rename_view_source_namespace_does_not_exist(rest_mock: Mocker) -> None:
2704+
from_identifier = ("non_existent_namespace", "old_view")
2705+
to_identifier = ("some_namespace", "new_view")
2706+
2707+
rest_mock.head(
2708+
f"{TEST_URI}v1/namespaces/non_existent_namespace",
2709+
status_code=404,
2710+
request_headers=TEST_HEADERS,
2711+
)
2712+
rest_mock.head(
2713+
f"{TEST_URI}v1/namespaces/some_namespace",
2714+
status_code=200,
2715+
request_headers=TEST_HEADERS,
2716+
)
2717+
2718+
catalog = RestCatalog("rest", uri=TEST_URI, token=TEST_TOKEN)
2719+
with pytest.raises(NoSuchNamespaceError) as exc_info:
2720+
catalog.rename_view(from_identifier, to_identifier)
2721+
assert "Source namespace does not exist: ('non_existent_namespace',)" in str(exc_info.value)
2722+
2723+
2724+
def test_rename_view_destination_namespace_does_not_exist(rest_mock: Mocker) -> None:
2725+
from_identifier = ("some_namespace", "old_view")
2726+
to_identifier = ("non_existent_namespace", "new_view")
2727+
2728+
rest_mock.head(
2729+
f"{TEST_URI}v1/namespaces/some_namespace",
2730+
status_code=200,
2731+
request_headers=TEST_HEADERS,
2732+
)
2733+
rest_mock.head(
2734+
f"{TEST_URI}v1/namespaces/non_existent_namespace",
2735+
status_code=404,
2736+
request_headers=TEST_HEADERS,
2737+
)
2738+
2739+
catalog = RestCatalog("rest", uri=TEST_URI, token=TEST_TOKEN)
2740+
with pytest.raises(NoSuchNamespaceError) as exc_info:
2741+
catalog.rename_view(from_identifier, to_identifier)
2742+
assert "Destination namespace does not exist: non_existent_namespace" in str(exc_info.value)

0 commit comments

Comments
 (0)