test: achieve 100% coverage for server.py and fix existing tests
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import pytest
|
||||
import requests
|
||||
from unittest.mock import MagicMock, patch
|
||||
from server import PlankaClient
|
||||
|
||||
@@ -22,7 +23,6 @@ def test_get_projects_nested(client):
|
||||
assert projects[0]["name"] == "Project 1"
|
||||
|
||||
def test_get_boards_included(client):
|
||||
# Test the 'included' structure we saw in the real API
|
||||
mock_response = {
|
||||
"included": {
|
||||
"boards": [
|
||||
@@ -49,9 +49,11 @@ def test_get_boards_empty(client):
|
||||
|
||||
def test_get_cards_nested(client):
|
||||
mock_response = {
|
||||
"items": [
|
||||
{"id": "c1", "name": "Card 1"}
|
||||
]
|
||||
"included": {
|
||||
"cards": [
|
||||
{"id": "c1", "name": "Card 1"}
|
||||
]
|
||||
}
|
||||
}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
@@ -60,3 +62,103 @@ def test_get_cards_nested(client):
|
||||
cards = client.get_cards("b1")
|
||||
assert len(cards) == 1
|
||||
assert cards[0]["name"] == "Card 1"
|
||||
|
||||
def test_get_cards_empty(client):
|
||||
mock_response = {}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
cards = client.get_cards("b1")
|
||||
assert cards == []
|
||||
|
||||
def test_get_board_lists_nested(client):
|
||||
mock_response = {
|
||||
"item": {
|
||||
"lists": [{"id": "l1", "name": "List 1"}]
|
||||
}
|
||||
}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
lists = client.get_board_lists("b1")
|
||||
assert len(lists) == 1
|
||||
|
||||
def test_get_boards_flat(client):
|
||||
mock_response = {
|
||||
"boards": [{"id": "b1", "name": "Board 1"}]
|
||||
}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
boards = client.get_boards("p1")
|
||||
assert len(boards) == 1
|
||||
|
||||
def test_get_board_lists_flat(client):
|
||||
mock_response = {
|
||||
"lists": [{"id": "l1", "name": "List 1"}]
|
||||
}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
lists = client.get_board_lists("b1")
|
||||
assert len(lists) == 1
|
||||
|
||||
def test_get_actions_flat(client):
|
||||
mock_response = [{"id": "a1"}]
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
actions = client.get_actions("c1")
|
||||
assert len(actions) == 1
|
||||
|
||||
def test_get_json_decode_error(client):
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.side_effect = requests.exceptions.JSONDecodeError("msg", "doc", 0)
|
||||
mock_get.return_value.status_code = 200
|
||||
mock_get.return_value.text = "not json"
|
||||
|
||||
res = client._get("endpoint")
|
||||
assert res is None
|
||||
|
||||
def test_get_empty_text(client):
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.status_code = 200
|
||||
mock_get.return_value.text = ""
|
||||
|
||||
res = client._get("endpoint")
|
||||
assert res is None
|
||||
|
||||
def test_post_json_decode_error(client):
|
||||
with patch("requests.post") as mock_post:
|
||||
mock_post.return_value.json.side_effect = requests.exceptions.JSONDecodeError("msg", "doc", 0)
|
||||
mock_post.return_value.status_code = 200
|
||||
mock_post.return_value.text = "not json"
|
||||
|
||||
res = client._post("endpoint", {})
|
||||
assert res is None
|
||||
|
||||
def test_post_empty_text(client):
|
||||
with patch("requests.post") as mock_post:
|
||||
mock_post.return_value.status_code = 200
|
||||
mock_post.return_value.text = ""
|
||||
|
||||
res = client._post("endpoint", {})
|
||||
assert res is None
|
||||
|
||||
def test_get_boards_nested_item(client):
|
||||
mock_response = {
|
||||
"item": {
|
||||
"boards": [{"id": "b1", "name": "Board 1"}]
|
||||
}
|
||||
}
|
||||
with patch("requests.get") as mock_get:
|
||||
mock_get.return_value.json.return_value = mock_response
|
||||
mock_get.return_value.status_code = 200
|
||||
|
||||
boards = client.get_boards("p1")
|
||||
assert len(boards) == 1
|
||||
|
||||
Reference in New Issue
Block a user