From 26fa8f3b0bdf88cb4422924a291f2510cae8bbe5 Mon Sep 17 00:00:00 2001 From: blazickjp Date: Tue, 22 Apr 2025 04:00:41 -0700 Subject: [PATCH 1/2] removed unlink of pdf files --- src/arxiv_mcp_server/resources/papers.py | 1 - src/arxiv_mcp_server/tools/download.py | 1 - 2 files changed, 2 deletions(-) diff --git a/src/arxiv_mcp_server/resources/papers.py b/src/arxiv_mcp_server/resources/papers.py index 690b967..662d13a 100644 --- a/src/arxiv_mcp_server/resources/papers.py +++ b/src/arxiv_mcp_server/resources/papers.py @@ -43,7 +43,6 @@ async def store_paper(self, paper_id: str, pdf_url: str) -> bool: async with aiofiles.open(paper_md_path, "w", encoding="utf-8") as f: await f.write(markdown) - paper_pdf_path.unlink() # Remove PDF after conversion return True except StopIteration: diff --git a/src/arxiv_mcp_server/tools/download.py b/src/arxiv_mcp_server/tools/download.py index 0622e16..7ad3032 100644 --- a/src/arxiv_mcp_server/tools/download.py +++ b/src/arxiv_mcp_server/tools/download.py @@ -74,7 +74,6 @@ def convert_pdf_to_markdown(paper_id: str, pdf_path: Path) -> None: status.completed_at = datetime.now() # Clean up PDF after successful conversion - pdf_path.unlink() logger.info(f"Conversion completed for {paper_id}") except Exception as e: From 4510855fc5c4a26665409af04ec303b9fc569b98 Mon Sep 17 00:00:00 2001 From: blazickjp Date: Tue, 22 Apr 2025 04:08:35 -0700 Subject: [PATCH 2/2] format update --- tests/prompts/test_prompt_integration.py | 15 ++++++++------- tests/prompts/test_prompts.py | 18 ++++++++++-------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/tests/prompts/test_prompt_integration.py b/tests/prompts/test_prompt_integration.py index cdbad9c..4760459 100644 --- a/tests/prompts/test_prompt_integration.py +++ b/tests/prompts/test_prompt_integration.py @@ -3,39 +3,40 @@ import pytest from arxiv_mcp_server.prompts.handlers import list_prompts, get_prompt + @pytest.mark.asyncio async def test_server_list_prompts(): """Test server list_prompts endpoint.""" prompts = await list_prompts() assert len(prompts) == 1 - + # Check that all prompts have required fields for prompt in prompts: assert prompt.name assert prompt.description assert prompt.arguments is not None + @pytest.mark.asyncio async def test_server_get_analysis_prompt(): """Test server get_prompt endpoint with analysis prompt.""" - result = await get_prompt( - "deep-paper-analysis", - {"paper_id": "2401.00123"} - ) - + result = await get_prompt("deep-paper-analysis", {"paper_id": "2401.00123"}) + assert len(result.messages) == 1 message = result.messages[0] assert message.role == "user" assert "2401.00123" in message.content.text + @pytest.mark.asyncio async def test_server_get_prompt_invalid_name(): """Test server get_prompt endpoint with invalid prompt name.""" with pytest.raises(ValueError, match="Prompt not found"): await get_prompt("invalid-prompt", {}) + @pytest.mark.asyncio async def test_server_get_prompt_missing_args(): """Test server get_prompt endpoint with missing required arguments.""" with pytest.raises(ValueError, match="Missing required argument"): - await get_prompt("deep-paper-analysis", {}) \ No newline at end of file + await get_prompt("deep-paper-analysis", {}) diff --git a/tests/prompts/test_prompts.py b/tests/prompts/test_prompts.py index e12d66e..7ccdae2 100644 --- a/tests/prompts/test_prompts.py +++ b/tests/prompts/test_prompts.py @@ -5,47 +5,49 @@ from arxiv_mcp_server.prompts.handlers import list_prompts, get_prompt from mcp.types import GetPromptResult, PromptMessage, TextContent + @pytest.mark.asyncio async def test_list_prompts(): """Test listing available prompts.""" prompts = await list_prompts() assert len(prompts) == 1 - + prompt_names = {p.name for p in prompts} expected_names = {"deep-paper-analysis"} assert prompt_names == expected_names + @pytest.mark.asyncio async def test_get_paper_analysis_prompt(): """Test getting paper analysis prompt.""" - result = await get_prompt( - "deep-paper-analysis", - {"paper_id": "2401.00123"} - ) - + result = await get_prompt("deep-paper-analysis", {"paper_id": "2401.00123"}) + assert isinstance(result, GetPromptResult) assert len(result.messages) == 1 message = result.messages[0] - + assert isinstance(message, PromptMessage) assert message.role == "user" assert isinstance(message.content, TextContent) assert "2401.00123" in message.content.text + @pytest.mark.asyncio async def test_get_prompt_with_invalid_name(): """Test getting prompt with invalid name.""" with pytest.raises(ValueError, match="Prompt not found"): await get_prompt("invalid-prompt", {}) + @pytest.mark.asyncio async def test_get_prompt_with_no_arguments(): """Test getting prompt with no arguments.""" with pytest.raises(ValueError, match="No arguments provided"): await get_prompt("deep-paper-analysis", None) + @pytest.mark.asyncio async def test_get_prompt_with_missing_required_argument(): """Test getting prompt with missing required argument.""" with pytest.raises(ValueError, match="Missing required argument"): - await get_prompt("deep-paper-analysis", {}) \ No newline at end of file + await get_prompt("deep-paper-analysis", {})