MCP JIRA Server

""" Tests for the Jira client implementation. """ import pytest from mcp_jira.jira_client import JiraClient from mcp_jira.types import IssueType, Priority @pytest.mark.asyncio async def test_create_issue(mock_jira_client): """Test creating a Jira issue""" result = await mock_jira_client.create_issue( summary="Test Issue", description="Test Description", issue_type=IssueType.STORY, priority=Priority.HIGH, story_points=5 ) assert result == "TEST-1" @pytest.mark.asyncio async def test_get_sprint(mock_jira_client, sample_sprint): """Test getting sprint details""" sprint = await mock_jira_client.get_sprint(1) assert sprint.id == 1 assert sprint.name == "Test Sprint" @pytest.mark.asyncio async def test_get_sprint_issues(mock_jira_client, sample_issue): """Test getting sprint issues""" issues = await mock_jira_client.get_sprint_issues(1) assert len(issues) > 0 assert issues[0].key == sample_issue.key assert issues[0].summary == sample_issue.summary @pytest.mark.asyncio async def test_get_backlog_issues(mock_jira_client): """Test getting backlog issues""" issues = await mock_jira_client.get_backlog_issues() assert len(issues) > 0 assert all(isinstance(issue.key, str) for issue in issues) @pytest.mark.asyncio async def test_search_issues(mock_jira_client): """Test searching issues""" jql = 'project = "TEST"' issues = await mock_jira_client.search_issues(jql) assert len(issues) > 0 assert all(hasattr(issue, 'key') for issue in issues) @pytest.mark.asyncio async def test_get_issue_history(mock_jira_client): """Test getting issue history""" history = await mock_jira_client.get_issue_history("TEST-1") assert isinstance(history, list) @pytest.mark.asyncio async def test_get_assigned_issues(mock_jira_client): """Test getting assigned issues""" issues = await mock_jira_client.get_assigned_issues("test_user") assert len(issues) > 0 assert all(hasattr(issue, 'assignee') for issue in issues) @pytest.mark.asyncio async def test_error_handling(mock_jira_client, mock_response): """Test error handling""" # Mock error response mock_jira_client._session.post = mock_response(500, {"error": "Test error"}) with pytest.raises(Exception): await mock_jira_client.create_issue( summary="Test Issue", description="Test Description", issue_type=IssueType.STORY, priority=Priority.HIGH )