From 443ecf83f4f1d58f7d0163c3b5dcff5602d788ac Mon Sep 17 00:00:00 2001 From: sujata-m Date: Fri, 10 Apr 2026 15:58:24 +0530 Subject: [PATCH] [0.3.6 TASK 3469] Fixed Issue with FIFA dataset validation - "null" ## Dev Board Ticket https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/3469 ## Changes **PR Title** `Add task_3469 regression test, align jsonschema_rs pin to 0.33.0, and bump version to 0.3.6` **PR Summary** - Added a regression test for `tests/assets/task_3469.zip` to assert the exact `issues` payload: - `{'filename': 'FIFA_sidewalks.edges.geojson', 'feature_index': 0, 'error_message': ['"null" is not one of "down" or "up"']}` - Added a unit test to enforce `jsonschema_rs==0.33.0` pin consistency between `requirements.txt` and `setup.py`. - Updated `setup.py` dependency pin from `jsonschema_rs==0.26.1` to `0.33.0`. - Bumped package version from `0.3.5` to `0.3.6`. - Updated `CHANGELOG.md` with a `0.3.6 - 2026-04-10` release entry. ## Testing - Ran: - `.venv/bin/python -m unittest -v tests.unit_tests.test_osw_validation.TestOSWValidation.test_task_3469_issue_payload tests.unit_tests.test_osw_validation.TestOSWValidation.test_jsonschema_rs_pin_is_0_33_0` - Result: both tests passed. --- CHANGELOG.md | 5 +++++ requirements.txt | 4 ++-- setup.py | 2 +- src/python_osw_validation/version.py | 2 +- tests/assets/task_3469.zip | Bin 0 -> 1630 bytes tests/unit_tests/test_osw_validation.py | 26 ++++++++++++++++++++++++ 6 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 tests/assets/task_3469.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c857a8..02e9c4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log +### 0.3.6 - 2026-04-10 +- Fixed https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/3469 +- Added regression coverage for `tests/assets/task_3469.zip` to assert the exact per-feature `issues` payload: `"null" is not one of "down" or "up"` on `FIFA_sidewalks.edges.geojson` feature index `0`. +- Aligned package dependency pins by updating `setup.py` to `jsonschema_rs==0.33.0` (matching `requirements.txt`). + ### 0.3.5 - 2026-03-16 - Fixed filename-based schema selection to use exact dataset suffixes such as `.nodes.geojson`, `.edges.geojson`, and the legacy `.nodes.OSW.geojson` form instead of loose substring matching. - Prevented false schema selection for filenames with misleading prefixes such as `gs_metaline_falls_uga.nodes.geojson` and `gs_yarrow_point.edges.geojson`. diff --git a/requirements.txt b/requirements.txt index 190d0ea..0df4504 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -jsonschema_rs -zipfile36 +jsonschema_rs==0.33.0 +zipfile36==0.1.3 coverage geopandas==0.14.4 \ No newline at end of file diff --git a/setup.py b/setup.py index 2b26333..782358e 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ long_description_content_type='text/markdown', url='https://github.com/TaskarCenterAtUW/TDEI-python-lib-osw-validation', install_requires=[ - 'jsonschema_rs==0.26.1', + 'jsonschema_rs==0.33.0', 'zipfile36==0.1.3', 'geopandas==0.14.4' ], diff --git a/src/python_osw_validation/version.py b/src/python_osw_validation/version.py index 40ed83d..4596d03 100644 --- a/src/python_osw_validation/version.py +++ b/src/python_osw_validation/version.py @@ -1 +1 @@ -__version__ = '0.3.5' +__version__ = '0.3.6' diff --git a/tests/assets/task_3469.zip b/tests/assets/task_3469.zip new file mode 100644 index 0000000000000000000000000000000000000000..8c917719fd9002e63c4e0d78387a07067c34befe GIT binary patch literal 1630 zcmWIWW@Zs#0D&LXT`^z=l;C1eU?@o}&W<-WF|*V!t>9*0WckX-zyMYr8p6xK-h1js zCJYCF&Ea6+z%WMyXij{*ucNbnaD={IJlsfpCN2S*oSYz;r#TM?eG9 z1PNw!0cpmMkqT@d{~HUi$~ZeUE%2GpC+qO0Z&?ec*159>6lTqtzj}H^z=X-G!ULwn zPn$J;#`HN{LB$dsxdBhOy@k7lK6@E`4w96ZDN!QlG3|rtzK_~h%nddeY%|;JV`#j| z!*n~JpO3fBsV!y3TefU4DKNffYGht~&D3y%!IjbyW2394#U@3YN=l7NOp8iW7#IS) z**Okm@f=(Z47UG3j5{FIPy*D=)6FryI5Q=+JTWJ`ST8jtJ+)XbJvBe8I6n_x(0~HG zHuzxQYy*M4pG7&o&S+|E@LZ?;cI9@t)f|*f8flD2d-tZA#L7*Z}vQBUl;XaX7Bc6JijDdXI(eg_%60x__D5e zy0RZKpb9v9Z#`>kwO zwVnO-B23dD@0OP8)?=K<{8pF$d3D=Z&ywYlfv(W%#DoJe?uF(4-ugnb)J>GL6NA31 z@=cu=o#1AQ_qa=F(G9l0tcEr^QIni)z;qRJSlMbzryaPg%9EdZJXa5Tygr3 z%eBN`twsBL4;jT|2CbUKJxAgDor1qTlU009&J$|-D3QznMUbnjbtKYq=zu7@)C`SH+^#x$|vSz`Th76H26Fe&cvlY3?X-MZZ zMkWzvT!oheyevE52x1}v3nO>2GBAR2Re(3dJXj%yoU26`kj!iJ0GdZsk%q%$