diff --git a/tests/integration/test_calendar_operations.py b/tests/client/calendar/test_calendar_operations.py similarity index 100% rename from tests/integration/test_calendar_operations.py rename to tests/client/calendar/test_calendar_operations.py diff --git a/tests/integration/test_field_preservation.py b/tests/client/calendar/test_field_preservation.py similarity index 100% rename from tests/integration/test_field_preservation.py rename to tests/client/calendar/test_field_preservation.py diff --git a/tests/integration/test_contacts_operations.py b/tests/client/contacts/test_contacts_operations.py similarity index 100% rename from tests/integration/test_contacts_operations.py rename to tests/client/contacts/test_contacts_operations.py diff --git a/tests/integration/test_deck_api.py b/tests/client/deck/test_deck_api.py similarity index 100% rename from tests/integration/test_deck_api.py rename to tests/client/deck/test_deck_api.py diff --git a/tests/integration/test_attachments.py b/tests/client/notes/test_attachments.py similarity index 100% rename from tests/integration/test_attachments.py rename to tests/client/notes/test_attachments.py diff --git a/tests/integration/test_embedded_images.py b/tests/client/notes/test_embedded_images.py similarity index 100% rename from tests/integration/test_embedded_images.py rename to tests/client/notes/test_embedded_images.py diff --git a/tests/integration/test_notes_api.py b/tests/client/notes/test_notes_api.py similarity index 100% rename from tests/integration/test_notes_api.py rename to tests/client/notes/test_notes_api.py diff --git a/tests/integration/test_tables_api.py b/tests/client/tables/test_tables_api.py similarity index 100% rename from tests/integration/test_tables_api.py rename to tests/client/tables/test_tables_api.py diff --git a/tests/integration/test_oauth.py b/tests/client/test_oauth.py similarity index 100% rename from tests/integration/test_oauth.py rename to tests/client/test_oauth.py diff --git a/tests/integration/test_oauth_interactive.py b/tests/client/test_oauth_interactive.py similarity index 100% rename from tests/integration/test_oauth_interactive.py rename to tests/client/test_oauth_interactive.py diff --git a/tests/integration/test_oauth_playwright.py b/tests/client/test_oauth_playwright.py similarity index 100% rename from tests/integration/test_oauth_playwright.py rename to tests/client/test_oauth_playwright.py diff --git a/tests/integration/test_webdav_cleanup.py b/tests/client/webdav/test_webdav_cleanup.py similarity index 100% rename from tests/integration/test_webdav_cleanup.py rename to tests/client/webdav/test_webdav_cleanup.py diff --git a/tests/integration/test_webdav_operations.py b/tests/client/webdav/test_webdav_operations.py similarity index 100% rename from tests/integration/test_webdav_operations.py rename to tests/client/webdav/test_webdav_operations.py diff --git a/tests/integration/test_contacts_mcp.py b/tests/server/test_contacts_mcp.py similarity index 100% rename from tests/integration/test_contacts_mcp.py rename to tests/server/test_contacts_mcp.py diff --git a/tests/integration/test_deck_mcp.py b/tests/server/test_deck_mcp.py similarity index 100% rename from tests/integration/test_deck_mcp.py rename to tests/server/test_deck_mcp.py diff --git a/tests/integration/test_error_propagation.py b/tests/server/test_error_propagation.py similarity index 96% rename from tests/integration/test_error_propagation.py rename to tests/server/test_error_propagation.py index 4812538..cc9b48d 100644 --- a/tests/integration/test_error_propagation.py +++ b/tests/server/test_error_propagation.py @@ -7,8 +7,10 @@ from mcp import ClientSession logger = logging.getLogger(__name__) +# Mark all tests in this module as integration tests +pytestmark = pytest.mark.integration + -@pytest.mark.integration async def test_missing_note_tool_error(nc_mcp_client: ClientSession): """Test that accessing a non-existent note via tool returns proper error.""" # Try to get a non-existent note via tool - should return error response @@ -20,7 +22,6 @@ async def test_missing_note_tool_error(nc_mcp_client: ClientSession): assert "Note 999999 not found" in response.content[0].text -@pytest.mark.integration async def test_delete_missing_note_tool_error(nc_mcp_client: ClientSession): """Test that deleting a non-existent note returns proper error.""" # Try to delete a non-existent note - should return error response @@ -34,7 +35,6 @@ async def test_delete_missing_note_tool_error(nc_mcp_client: ClientSession): assert "Note 999999 not found" in response.content[0].text -@pytest.mark.integration async def test_search_with_empty_query(nc_mcp_client: ClientSession): """Test search behavior with empty query.""" # Search with empty query @@ -47,7 +47,6 @@ async def test_search_with_empty_query(nc_mcp_client: ClientSession): assert response.isError is False -@pytest.mark.integration async def test_tool_missing_required_parameters(nc_mcp_client: ClientSession): """Test calling a tool with missing required parameters.""" # Try to create note with missing parameters @@ -66,7 +65,6 @@ async def test_tool_missing_required_parameters(nc_mcp_client: ClientSession): ) -@pytest.mark.integration async def test_update_note_with_invalid_etag(nc_mcp_client: ClientSession, nc_client): """Test updating a note with invalid ETag.""" # First create a note @@ -98,7 +96,6 @@ async def test_update_note_with_invalid_etag(nc_mcp_client: ClientSession, nc_cl await nc_client.notes.delete_note(note_id) -@pytest.mark.integration async def test_calendar_missing_calendar_error(nc_mcp_client: ClientSession): """Test calendar operations with non-existent calendar.""" # Try to create event in non-existent calendar @@ -127,7 +124,6 @@ async def test_calendar_missing_calendar_error(nc_mcp_client: ClientSession): assert response.isError is True -@pytest.mark.integration async def test_webdav_read_missing_file_error(nc_mcp_client: ClientSession): """Test WebDAV operations with non-existent file.""" # Try to read a non-existent file @@ -151,7 +147,6 @@ async def test_webdav_read_missing_file_error(nc_mcp_client: ClientSession): assert response.isError is True -@pytest.mark.integration async def test_tables_missing_table_error(nc_mcp_client: ClientSession): """Test Tables operations with non-existent table.""" # Try to get schema of non-existent table diff --git a/tests/integration/test_mcp.py b/tests/server/test_mcp.py similarity index 100% rename from tests/integration/test_mcp.py rename to tests/server/test_mcp.py