feat(search): one state school group, not academy and council-run
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m13s
PR Checks / Backend Smoke (pull_request) Successful in 9s
PR Checks / Build Backend (no push) (pull_request) Successful in 19s
PR Checks / Build Frontend (no push) (pull_request) Successful in 1m21s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 11s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 20s
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m13s
PR Checks / Backend Smoke (pull_request) Successful in 9s
PR Checks / Build Backend (no push) (pull_request) Successful in 19s
PR Checks / Build Frontend (no push) (pull_request) Successful in 1m21s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 11s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 20s
The School type filter split state schools into "academy or free school" and "council-run". The two were near-halves of one pool (11,186 and 9,316 schools), so choosing one rarely narrowed anything, and the split did not follow the difference a parent feels most, admissions: voluntary aided and foundation schools set their own, as academies do. Faith, which voluntary aided mostly meant, has its own filter. They are now one group, "State school (free)", leaving five. The old keys academy and council resolve to state, so a link made with them keeps working instead of falling through to the raw-label path and returning nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fb3ef7d2b9
commit
e78ec14e2e
6 files changed
+72
-31
No files matched your search
@@ -17,6 +17,7 @@ from backend.school_groups import (
|
||||
UNOFFERED_TYPE_CODES,
|
||||
faith_groups_for,
|
||||
type_group_for,
|
||||
type_group_key,
|
||||
)
|
||||
|
||||
DBT_PROJECT = Path(__file__).resolve().parents[2] / "pipeline" / "transform" / "dbt_project.yml"
|
||||
@@ -40,7 +41,7 @@ def test_every_religion_code_has_a_faith():
|
||||
|
||||
def test_type_groups_in_display_order():
|
||||
assert [k for k, _, _ in TYPE_GROUPS] == [
|
||||
"academy", "council", "independent", "special", "post16", "alternative"]
|
||||
"state", "independent", "special", "post16", "alternative"]
|
||||
|
||||
|
||||
def test_faiths_in_display_order():
|
||||
@@ -50,21 +51,34 @@ def test_faiths_in_display_order():
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name, group", [
|
||||
("Academy converter", "academy"),
|
||||
("University technical college", "academy"),
|
||||
("Voluntary aided school", "council"),
|
||||
("Local authority nursery school", "council"),
|
||||
("Academy converter", "state"),
|
||||
("University technical college", "state"),
|
||||
("Voluntary aided school", "state"),
|
||||
("Local authority nursery school", "state"),
|
||||
("Other independent school", "independent"),
|
||||
("Other independent special school", "special"),
|
||||
("Special post 16 institution", "special"),
|
||||
("Further education", "post16"),
|
||||
("Pupil referral unit", "alternative"),
|
||||
("academy CONVERTER", "academy"),
|
||||
("academy CONVERTER", "state"),
|
||||
])
|
||||
def test_type_group_by_name(name, group):
|
||||
assert type_group_for(name) == group
|
||||
|
||||
|
||||
@pytest.mark.parametrize("value, key", [
|
||||
("state", "state"),
|
||||
("Special", "special"),
|
||||
# The two state groups that preceded "state", kept so their links still work.
|
||||
("academy", "state"),
|
||||
("Council", "state"),
|
||||
("Community school", None),
|
||||
("", None),
|
||||
])
|
||||
def test_type_group_key_resolves_keys_and_old_keys(value, key):
|
||||
assert type_group_key(value) == key
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", [
|
||||
"Higher education institutions", "Miscellaneous", "Unknown (9999)", "Academy", "", None, np.nan,
|
||||
])
|
||||
|
||||
Reference in new issue
Block a user