Moved the current implementation to src/audita_prototype, moved current test suite to tests/audita_prototype, and started a new, more modular application skeleton in src/audita
This commit is contained in:
86
tests/test_new_pipeline.py
Normal file
86
tests/test_new_pipeline.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import json
|
||||
|
||||
from audita.core.config import AuditaConfig
|
||||
from audita.core.io import write_report
|
||||
from audita.core.schemas import parse_glossary_yaml, parse_source_transcript_json
|
||||
from audita.pipeline import process_transcript, process_transcript_result
|
||||
|
||||
|
||||
def _glossary():
|
||||
return parse_glossary_yaml(
|
||||
"""
|
||||
glossary:
|
||||
- name: "Jesters"
|
||||
category: faction
|
||||
summary: "A faction."
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def _transcript():
|
||||
return parse_source_transcript_json(
|
||||
"""
|
||||
[
|
||||
{"speaker": "Eric", "start": 0.0, "end": 1.0, "text": "Hello."},
|
||||
{"speaker": "Eric", "start": 1.5, "end": 2.0, "text": "Again."},
|
||||
{"speaker": "Mike", "start": 10.0, "end": 11.0, "text": "Done."}
|
||||
]
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def test_process_transcript_runs_noop_framework(tmp_path):
|
||||
revised = process_transcript(
|
||||
_transcript(),
|
||||
_glossary(),
|
||||
AuditaConfig.from_sources(env={}, overrides=None),
|
||||
)
|
||||
|
||||
assert [segment.id for segment in revised] == [1, 2]
|
||||
assert revised[0].text == "Hello. Again."
|
||||
assert revised[1].text == "Done."
|
||||
|
||||
|
||||
def test_process_transcript_result_writes_report_and_preserves_skips_per_policy(tmp_path):
|
||||
config = AuditaConfig.from_sources(
|
||||
env={},
|
||||
overrides=None,
|
||||
)
|
||||
config = AuditaConfig(
|
||||
api_key=config.api_key,
|
||||
model=config.model,
|
||||
base_url=config.base_url,
|
||||
max_retries=config.max_retries,
|
||||
max_section_tokens=config.max_section_tokens,
|
||||
normalize_max_segment_gap=config.normalize_max_segment_gap,
|
||||
normalize_ellipsis_gap=config.normalize_ellipsis_gap,
|
||||
normalize_max_segment_duration=config.normalize_max_segment_duration,
|
||||
normalize_max_segment_tokens=config.normalize_max_segment_tokens,
|
||||
work_dir=tmp_path / "work",
|
||||
work_dir_retention="always",
|
||||
)
|
||||
|
||||
result = process_transcript_result(_transcript(), _glossary(), config)
|
||||
|
||||
assert result.work_dir_retained is True
|
||||
assert result.report.pipeline == [
|
||||
"glossary_primary",
|
||||
"homophones",
|
||||
"glossary_secondary",
|
||||
"spoken_word",
|
||||
"grammar",
|
||||
]
|
||||
assert result.report.totals["applied_change_count"] == 0
|
||||
assert (result.run_dir / "report.json").exists()
|
||||
assert (result.run_dir / "normalization" / "summary.json").exists()
|
||||
|
||||
|
||||
def test_external_report_can_be_written(tmp_path):
|
||||
config = AuditaConfig.from_sources(env={})
|
||||
result = process_transcript_result(_transcript(), _glossary(), config)
|
||||
report_path = tmp_path / "report.json"
|
||||
write_report(report_path, result.report)
|
||||
|
||||
payload = json.loads(report_path.read_text(encoding="utf-8"))
|
||||
assert payload["pipeline"][0] == "glossary_primary"
|
||||
assert payload["totals"]["applied_change_count"] == 0
|
||||
Reference in New Issue
Block a user