o2o-plagiarism-ai/tests/test_legal_risk.py

40 lines
1.2 KiB
Python

from app.engine.legal_risk import LegalRiskEngine, Precedent, load_precedents
def _case() -> Precedent:
return Precedent(
case_id="case-1",
title="테스트 판례",
source_url="https://example.test/case-1",
work_types=("literary",),
legal_tags=("reproduction",),
criteria=("실질적 유사성",),
holding_summary="테스트 요약",
)
def test_empty_precedents_never_claim_legal_conclusion():
result = LegalRiskEngine([]).assess(
max_similarity=0.95, coverage=0.8, longest_span=300,
legal_tags=["reproduction"],
)
assert result.status == "insufficient_precedent_data"
assert result.risk_level is None
def test_risk_requires_missing_facts_and_only_registered_case_ids():
result = LegalRiskEngine([_case()]).assess(
max_similarity=0.9, coverage=0.5, longest_span=200,
legal_tags=["reproduction"],
)
assert result.status == "review_required"
assert result.risk_level == "high"
assert result.precedent_ids == ("case-1",)
assert len(result.missing_factors) == 3
def test_repository_seed_is_valid():
cases = load_precedents("data/precedents/precedents.jsonl")
assert cases
assert cases[0].case_id == "2012다73493"