Spaces:
Sleeping
Sleeping
File size: 2,402 Bytes
5b34fc5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | from app import study
def _eligible_form() -> dict:
form = {
"gate": "substantive_answer_attempt",
"gate_confidence": "82",
"gate_confidence_touched": "1",
"responsiveness": "71",
"responsiveness_touched": "1",
"rasiah": "intermediate",
"supplied_information": "most",
"confidence": "77",
"confidence_touched": "1",
"rationale": "The response addresses the forecast but leaves the requested range unresolved.",
"response_time_ms": "43000",
"audio_played_ms": "18000",
"audio_completed": "1",
"audio_revision": "less_responsive",
"audible_event": "pause",
}
for descriptor in study.DESCRIPTORS:
form[f"descriptor_{descriptor.value}"] = "3"
return form
def test_complete_text_audio_response_validates() -> None:
clean, error = study.validate_submission(_eligible_form(), "text_audio", 20)
assert error is None
assert clean["responsiveness"] == 71
assert clean["audio_revision"] == "less_responsive"
def test_text_only_does_not_accept_audio_retrospective_fields_as_required() -> None:
form = _eligible_form()
form.pop("audio_revision")
form.pop("audible_event")
form["audio_played_ms"] = "0"
form["audio_completed"] = "0"
clean, error = study.validate_submission(form, "text_only")
assert error is None
assert clean["audio_revision"] is None
def test_untouched_slider_is_rejected() -> None:
form = _eligible_form()
form["responsiveness_touched"] = "0"
assert study.validate_submission(form, "text_audio")[1] == "complete_scales"
def test_audio_must_be_played() -> None:
form = _eligible_form()
form["audio_played_ms"] = "0"
form["audio_completed"] = "0"
assert study.validate_submission(form, "text_audio", 20)[1] == "play_audio"
def test_repair_gate_skips_evasion_questions_but_keeps_rationale() -> None:
form = {
"gate": "clarification_repair",
"gate_confidence": "91",
"gate_confidence_touched": "1",
"rationale": "The executive asks the analyst to clarify the intended comparison.",
"audio_played_ms": "12000",
"audio_completed": "1",
}
clean, error = study.validate_submission(form, "text_audio")
assert error is None
assert clean["rasiah"] is None
assert clean["gate"] == "clarification_repair"
|