"""Supplementary-block enrichment for the compare redesign: report-card labels, provider-page URL, graded-vs-carried-forward provenance, and the admissions preference/cross-LA detail promoted in the data-foundation PR.""" import types from datetime import date from backend.data_loader import _admissions_row_dict, _ofsted_block def _row(**kw): base = dict( framework="RC", inspection_type=None, graded_inspection_date=None, ungraded_inspection_date=None, rc_inspection_date=None, latest_visit_date=None, latest_visit_kind=None, latest_visit_outcome=None, current_grade=None, current_grade_date=None, current_grade_basis=None, overall_effectiveness=None, quality_of_education=None, behaviour_attitudes=None, personal_development=None, leadership_management=None, early_years_provision=None, sixth_form_provision=None, ungraded_outcome=None, ungraded_grade=None, rc_safeguarding_met=None, rc_inclusion=None, rc_curriculum_teaching=None, rc_achievement=None, rc_attendance_behaviour=None, rc_personal_development=None, rc_leadership_governance=None, rc_early_years=None, rc_sixth_form=None, report_url=None, ) base.update(kw) return types.SimpleNamespace(**base) def test_report_card_block_and_provider_url(): o = _row(rc_achievement=2, rc_inclusion=3, rc_safeguarding_met=True) block = _ofsted_block(o, urn=100140) assert block["report_card"]["rc_achievement"]["label"] == "Strong standard" assert "rc_safeguarding_met" not in block["report_card"] assert block["rc_safeguarding_met"] is True assert block["ofsted_page_url"] == "https://reports.ofsted.gov.uk/provider/21/100140" def test_no_grade_is_carried_past_a_newer_inspection(): # Rabbsfarm (102408): the 2025 inspection gave no overall grade. block = _ofsted_block(_row( graded_inspection_date=date(2025, 6, 17), ungraded_inspection_date=date(2020, 2, 6), latest_visit_date=date(2025, 6, 17), latest_visit_kind="graded", ungraded_grade=2, ungraded_outcome="School remains Good", quality_of_education=3, ), urn=102408) assert block["current_grade"] is None assert block["overall_effectiveness"] is None assert block["latest_visit"] == {"date": "2025-06-17", "kind": "graded", "outcome": None} assert block["inspection_date"] == "2025-06-17" assert "grade_source" not in block def test_confirmed_grade_is_dated_by_the_confirming_visit(): block = _ofsted_block(_row( graded_inspection_date=date(2020, 1, 7), ungraded_inspection_date=date(2024, 7, 18), latest_visit_date=date(2024, 7, 18), latest_visit_kind="ungraded", latest_visit_outcome="School remains Good", overall_effectiveness=2, current_grade=2, current_grade_date=date(2024, 7, 18), current_grade_basis="confirmed", ), urn=104762) assert block["current_grade"] == {"grade": 2, "date": "2024-07-18", "basis": "confirmed"} assert block["overall_effectiveness"] == 2 assert block["inspection_date"] == "2020-01-07" def test_overall_sentinel_is_not_served_as_a_grade(): assert _ofsted_block(_row(overall_effectiveness=9), urn=1)["overall_effectiveness"] is None def test_ofsted_block_carries_rc_inspection_date(): o = _row( rc_achievement=1, rc_inspection_date=date(2026, 2, 3), graded_inspection_date=date(2021, 10, 7), ) block = _ofsted_block(o, urn=138690) assert block["rc_inspection_date"] == "2026-02-03" # The legacy inspection date is still present, unchanged. assert block["inspection_date"] == "2021-10-07" def test_ofsted_block_rc_inspection_date_none_when_absent(): o = _row(overall_effectiveness=1, graded_inspection_date=date(2021, 10, 13)) block = _ofsted_block(o, urn=136276) assert block["rc_inspection_date"] is None def test_ofsted_block_keeps_existing_keys(): block = _ofsted_block(_row(overall_effectiveness=2, quality_of_education=2), urn=1) for key in ("framework", "inspection_date", "overall_effectiveness", "current_grade", "latest_visit", "quality_of_education", "rc_inclusion", "report_url"): assert key in block def test_admissions_row_new_fields(): a = types.SimpleNamespace( year=202627, school_phase="Primary", places_offered=80, total_applications=185, first_preference_applications=74, first_preference_offers=74, first_preference_offer_pct=100.0, oversubscription_ratio=0.925, oversubscribed=False, total_offers=80, second_preference_offers=4, third_preference_offers=2, cross_la_applications=12, cross_la_offers=3, ) d = _admissions_row_dict(a) for k in ("total_offers", "second_preference_offers", "third_preference_offers", "cross_la_applications", "cross_la_offers"): assert d[k] == getattr(a, k) # Existing keys unchanged assert d["first_preference_offer_pct"] == 100.0 assert d["oversubscribed"] is False