feat(Ф4): pytest — 22 юнит-теста (contracts + garbage + upload + llm + repo)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""Shared fixtures for pytest — contracts-flask decoupling tests."""
|
||||
import pytest
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Ensure deploy/ is on path for imports
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from services.llm_client import FakeLLMClient
|
||||
from repository import MemRepository
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fake_llm():
|
||||
"""Fake LLM client with pre-registered responses."""
|
||||
client = FakeLLMClient()
|
||||
client.add("default", '{"doc_type":"contract","own_number":"03700_1","doc_date":"2026-02-01","counterparty":"ЗАО XXX001"}')
|
||||
return client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mem_repo():
|
||||
"""In-memory repository for unit tests."""
|
||||
return MemRepository()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_docx_bytes():
|
||||
"""Minimal test bytes — not a real DOCX, just for multipart tests."""
|
||||
return b"FAKE_DOCX_CONTENT"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_classify_response():
|
||||
"""Sample LLM classify response."""
|
||||
return {
|
||||
"doc_type": "contract",
|
||||
"own_number": "03700_1",
|
||||
"parent_number": None,
|
||||
"doc_date": "2026-02-01",
|
||||
"counterparty": "ЗАО XXX001",
|
||||
}
|
||||
Reference in New Issue
Block a user