diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42fc270..5573f55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v7 with: &specification-checkout repository: OpenStatSpec/specification - ref: 6b9d1fc38f2f083c0ac5cf1c64874a6d07b95045 + ref: 7edcad38470fffebfe2306f22fdecb6892f8eece path: openstatspec-specification - name: Checkout required SPSS engine uses: actions/checkout@v7 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 905a62d..7595b8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,7 +39,7 @@ jobs: uses: actions/checkout@v7 with: repository: OpenStatSpec/specification - ref: 6b9d1fc38f2f083c0ac5cf1c64874a6d07b95045 + ref: 7edcad38470fffebfe2306f22fdecb6892f8eece path: openstatspec-specification - name: Checkout required SPSS engine uses: actions/checkout@v7 diff --git a/src/openstatspec/sql/capabilities.py b/src/openstatspec/sql/capabilities.py index 5681b5f..0620623 100644 --- a/src/openstatspec/sql/capabilities.py +++ b/src/openstatspec/sql/capabilities.py @@ -15,7 +15,7 @@ from .profiles import profile_for_url from ..core import UnsupportedOperationError -SPECIFICATION_COMMIT = "6b9d1fc38f2f083c0ac5cf1c64874a6d07b95045" +SPECIFICATION_COMMIT = "7edcad38470fffebfe2306f22fdecb6892f8eece" SPECIFICATION_RELEASE: str | None = None SERVER_POLICIES = { diff --git a/tests/test_cli.py b/tests/test_cli.py index 1d6212a..b8fcfb4 100755 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -40,7 +40,7 @@ def test_capability_matrix_is_public_and_cli_matches_engine_boundary(capsys) -> matrix = openstatspec.capability_matrix() assert matrix["specification_status"] == "release_candidate" assert matrix["specification_release"] is None - assert matrix["specification_commit"] == "6b9d1fc38f2f083c0ac5cf1c64874a6d07b95045" + assert matrix["specification_commit"] == "7edcad38470fffebfe2306f22fdecb6892f8eece" assert matrix["directions"] == ["import", "export", "semantic_round_trip"] assert matrix["active_connection"] is None assert matrix["engine"]["package"] == "openstatspec-pyspssio" diff --git a/tests/test_sql_workflow.py b/tests/test_sql_workflow.py index fe2adfe..393afe1 100644 --- a/tests/test_sql_workflow.py +++ b/tests/test_sql_workflow.py @@ -1,5 +1,6 @@ import hashlib import json +import os from pathlib import Path import rfc8785 @@ -21,6 +22,28 @@ from openstatspec.sql.wide import create_wide_dataset +def _workflow_conformance_manifest() -> Path: + configured = os.environ.get("OPENSTATSPEC_SPECIFICATION_DIR") + candidates = [ + ( + Path(configured) + / "conformance/sql-transformation-workflow-0.1.json" + if configured else None + ), + Path(__file__).resolve().parents[1] + / "openstatspec-specification/conformance/sql-transformation-workflow-0.1.json", + Path(__file__).resolve().parents[2] + / "specification/conformance/sql-transformation-workflow-0.1.json", + ] + for candidate in candidates: + if candidate and candidate.is_file(): + return candidate + raise RuntimeError( + "The SQL transformation conformance fixture is required; " + "set OPENSTATSPEC_SPECIFICATION_DIR." + ) + + def _variables(): return [ { @@ -541,10 +564,9 @@ def test_scope_aware_ctes_merge_with_parent_and_shadowing_fails(catalog): def test_definition_hash_matches_every_normative_conformance_vector(): - manifest = json.loads(( - Path(__file__).resolve().parents[2] - / "specification/conformance/sql-transformation-workflow-0.1.json" - ).read_text(encoding="utf-8")) + manifest = json.loads( + _workflow_conformance_manifest().read_text(encoding="utf-8") + ) for case in manifest["cases"]: actual = _definition_hash( transformation_id=case["transformation_id"],