Files
planka-mcp/test_server.py

100 lines
3.1 KiB
Python

import pytest
import requests_mock
from server import PlankaClient
@pytest.fixture
def planka_client():
return PlankaClient("https://planka.example.com", "test_token")
def test_get_projects(planka_client):
with requests_mock.Mocker() as m:
m.get("https://planka.example.com/api/projects", json=[
{"id": "1", "name": "Project 1"},
{"id": "2", "name": "Project 2"}
])
projects = planka_client.get_projects()
assert len(projects) == 2
assert projects[0]["name"] == "Project 1"
assert projects[1]["id"] == "2"
assert m.request_history[0].headers["Authorization"] == "Bearer test_token"
def test_get_boards(planka_client):
with requests_mock.Mocker() as m:
m.get("https://planka.example.com/api/projects/1", json={
"included": {
"boards": [{"id": "b1", "name": "Board 1"}]
}
})
boards = planka_client.get_boards("1")
assert len(boards) == 1
assert boards[0]["name"] == "Board 1"
def test_get_cards(planka_client):
with requests_mock.Mocker() as m:
m.get("https://planka.example.com/api/boards/b1", json={
"included": {
"cards": [{"id": "c1", "name": "Card 1"}]
}
})
cards = planka_client.get_cards("b1")
assert len(cards) == 1
assert cards[0]["name"] == "Card 1"
def test_create_card(planka_client):
with requests_mock.Mocker() as m:
m.post("https://planka.example.com/api/cards", json={
"id": "cnew",
"name": "New Card"
})
card = planka_client.create_card("b1", "l1", "New Card", "Desc")
assert card["id"] == "cnew"
assert m.request_history[0].json() == {
"boardId": "b1",
"listId": "l1",
"name": "New Card",
"description": "Desc"
}
def test_get_board_lists(planka_client):
with requests_mock.Mocker() as m:
m.get("https://planka.example.com/api/boards/b1", json={
"included": {
"lists": [{"id": "l1", "name": "List 1"}]
}
})
lists = planka_client.get_board_lists("b1")
assert len(lists) == 1
assert lists[0]["name"] == "List 1"
def test_get_actions(planka_client):
with requests_mock.Mocker() as m:
m.get("https://planka.example.com/api/cards/c1/actions", json={
"items": [{"id": "a1", "type": "commentCard"}]
})
actions = planka_client.get_actions("c1")
assert len(actions) == 1
assert actions[0]["type"] == "commentCard"
def test_create_comment(planka_client):
with requests_mock.Mocker() as m:
m.post("https://planka.example.com/api/cards/c1/actions", json={
"id": "a2"
})
comment = planka_client.create_comment("c1", "Hello")
assert comment["id"] == "a2"
assert m.request_history[0].json()["data"]["text"] == "Hello"