Add unit-tests
This commit is contained in:
44
tests/test_report_builder.py
Normal file
44
tests/test_report_builder.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import pytest
|
||||
from redmine_reporter.report_builder import build_grouped_report, STATUS_TRANSLATION
|
||||
from redmine_reporter.utils import get_version
|
||||
|
||||
|
||||
class MockIssue:
|
||||
def __init__(self, project, subject, status, fixed_version=None):
|
||||
self.project = project
|
||||
self.subject = subject
|
||||
self.status = status
|
||||
|
||||
if fixed_version is not None:
|
||||
self.fixed_version = fixed_version
|
||||
|
||||
|
||||
def test_status_translation():
|
||||
assert STATUS_TRANSLATION["Closed"] == "Закрыто"
|
||||
assert STATUS_TRANSLATION["New"] == "В работе"
|
||||
assert STATUS_TRANSLATION["Resolved"] == "Решена"
|
||||
|
||||
|
||||
def test_build_grouped_report():
|
||||
issues = [
|
||||
(MockIssue("Камеры", "Фича A", "New", "v2.5.0"), 2.0),
|
||||
(MockIssue("Камеры", "Баг B", "Resolved", "v2.5.0"), 1.5),
|
||||
(MockIssue("ПО", "Доки", "Pending", None), 4.0),
|
||||
]
|
||||
rows = build_grouped_report(issues)
|
||||
|
||||
assert len(rows) == 3
|
||||
# Первая строка — полное название проекта и версии
|
||||
assert rows[0]["display_project"] == "Камеры"
|
||||
assert rows[0]["display_version"] == "v2.5.0"
|
||||
# Вторая — пустые display_* из-за совпадения
|
||||
assert rows[1]["display_project"] == ""
|
||||
assert rows[1]["display_version"] == ""
|
||||
# Третья — новый проект
|
||||
assert rows[2]["display_project"] == "ПО"
|
||||
assert rows[2]["display_version"] == "<N/A>"
|
||||
|
||||
# Проверка перевода и времени
|
||||
assert rows[0]["status_ru"] == "В работе"
|
||||
assert rows[0]["time_text"] == "2ч"
|
||||
assert rows[1]["time_text"] == "1ч 30м"
|
||||
Reference in New Issue
Block a user