feat(M13): complete test fixtures, shared conftest, and coverage >= 90%
Finalize M13 test and coverage milestone: tests/fixtures/pronote-6e.ics (new): - Anonymized iCal fixture for Classe de 6e (3 VEVENTs: SVT lesson with homework block, Histoire-Géo modified lesson, all-day school outing) - Same structure as pronote-4e.ics, no secrets or real data tests/conftest.py: - Added sample_message fixture (Message with MessageType.INFORMATION) - Integrated sample_message into pronote_data fixture (messages=[sample_message]) - Sphinx/reST docstring with :return: and :rtype: .gitignore: - Fixed typo: .worktress/ -> .worktrees/ (line 56) pyproject.toml: - Added ".worktrees" to ruff extend-exclude to prevent ruff format --check . from scanning worktree files TODO.md: - Checked M13 items: tests/fixtures/ and tests/conftest.py Validation: 627 tests pass, coverage 95.67% (threshold 90%), ruff/mypy/ bandit/pre-commit all green. Co-authored-by: opencode/coder <coder@agents.invalid>
This commit is contained in:
@@ -14,6 +14,7 @@ from pydantic import SecretStr
|
||||
from pronote_sync.config.settings import CalDAVSettings
|
||||
from pronote_sync.models.agenda import Lesson, LessonStatus, SchoolEvent, SchoolEventKind
|
||||
from pronote_sync.models.homework import Homework
|
||||
from pronote_sync.models.message import Message, MessageType
|
||||
from pronote_sync.models.pronote import PronoteData
|
||||
|
||||
|
||||
@@ -85,19 +86,38 @@ def caldav_settings() -> CalDAVSettings:
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_message() -> Message:
|
||||
"""Message Pronote pour les tests.
|
||||
|
||||
:return: Message Pronote de test.
|
||||
:rtype: Message
|
||||
"""
|
||||
return Message(
|
||||
id="msg-001",
|
||||
type=MessageType.INFORMATION,
|
||||
title="Information de rentrée",
|
||||
content="La rentrée est prévue le 1er septembre.",
|
||||
author="Administration",
|
||||
date=datetime(2026, 1, 15, 9, 0),
|
||||
read=False,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pronote_data(
|
||||
sample_lesson: Lesson,
|
||||
sample_cancelled_lesson: Lesson,
|
||||
sample_homework: Homework,
|
||||
sample_school_event: SchoolEvent,
|
||||
sample_message: Message,
|
||||
) -> PronoteData:
|
||||
"""Données Pronote de test avec des cours, devoirs et événements."""
|
||||
"""Données Pronote de test avec des cours, devoirs, événements et messages."""
|
||||
return PronoteData(
|
||||
lessons=[sample_lesson, sample_cancelled_lesson],
|
||||
homeworks=[sample_homework],
|
||||
school_events=[sample_school_event],
|
||||
messages=[],
|
||||
messages=[sample_message],
|
||||
target_date=date(2026, 1, 15),
|
||||
generated_at=datetime(2026, 1, 15, 0, 0),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user