audit: seal accuracy phase 1 evidence
This commit is contained in:
@@ -1,325 +1,325 @@
|
||||
command=python -m pytest backend/tests -q -p no:cacheprovider -W error::DeprecationWarning --junitxml=artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml
|
||||
exit_code=1
|
||||
captured_at=2026-08-01T18:32:02.4460806+02:00
|
||||
|
||||
........................................................................ [ 6%]
|
||||
........................................................................ [ 12%]
|
||||
.........................................F..........F..................F [ 18%]
|
||||
..................F..................................................... [ 24%]
|
||||
.........F.............................................................. [ 30%]
|
||||
........................................................................ [ 36%]
|
||||
.....F.F.......................................FF....................... [ 42%]
|
||||
........................................................................ [ 48%]
|
||||
..F..................................................................... [ 54%]
|
||||
........................................................................ [ 60%]
|
||||
.......F................................................................ [ 66%]
|
||||
........................................................................ [ 72%]
|
||||
........................................FFFF...........F................ [ 78%]
|
||||
...............................................F........................ [ 84%]
|
||||
........................................................................ [ 90%]
|
||||
........................................................................ [ 96%]
|
||||
............................................. [100%]
|
||||
================================== FAILURES ===================================
|
||||
_ test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox _
|
||||
|
||||
def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -> None:
|
||||
root = Path(__file__).parents[2]
|
||||
focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8")
|
||||
workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")
|
||||
coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8")
|
||||
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
|
||||
assert "Belgium and North Sea Workbench" in focus
|
||||
assert "nationalProject" in workspace_hook
|
||||
assert "return nationalProject.id" in workspace_hook
|
||||
assert "NATIONAL_WORKSPACE_REGION" in workspace_hook
|
||||
assert "externalApi.resolveCoverage" in coverage_hook
|
||||
assert "coverage.outside_supported_scope" in map_workspace
|
||||
assert "coverageStatusLabel" in map_workspace
|
||||
> assert "coverageSelectionAvailable" in map_workspace
|
||||
E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_rc4_national_coverage.py:432: AssertionError
|
||||
____ test_runtime_configuration_is_validated_before_container_replacement _____
|
||||
|
||||
def test_runtime_configuration_is_validated_before_container_replacement() -> None:
|
||||
run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8")
|
||||
|
||||
validation_index = run_script.index("validate_runtime_config")
|
||||
> replacement_index = run_script.index("docker compose down")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
E ValueError: substring not found
|
||||
|
||||
backend\tests\test_rc5_release_deployment.py:65: ValueError
|
||||
___________ test_rc9_loading_and_accessibility_states_are_explicit ____________
|
||||
|
||||
def test_rc9_loading_and_accessibility_states_are_explicit() -> None:
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
map_workspace = (
|
||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
assert "workspaceDataLoading" in app
|
||||
assert 'role="status" aria-live="polite"' in app
|
||||
assert "Databronnen worden gecontroleerd" in map_workspace
|
||||
> assert "Beschikbaarheid controleren" in map_workspace
|
||||
E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_rc9_ux_release_contract.py:33: AssertionError
|
||||
___________ test_all_in_one_deploy_embeds_immutable_build_identity ____________
|
||||
|
||||
def test_all_in_one_deploy_embeds_immutable_build_identity() -> None:
|
||||
dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8")
|
||||
release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8")
|
||||
deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8")
|
||||
deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8")
|
||||
|
||||
assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile
|
||||
assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||
assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile
|
||||
assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||
> assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script
|
||||
E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n'
|
||||
|
||||
backend\tests\test_rc_runtime_observability.py:47: AssertionError
|
||||
_____________ test_frontend_exposes_map_bbox_selection_contracts ______________
|
||||
|
||||
def test_frontend_exposes_map_bbox_selection_contracts() -> None:
|
||||
api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8")
|
||||
map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8")
|
||||
theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
|
||||
assert "selectVectorFeatures" in api_client
|
||||
assert "Area selection" in map_workspace
|
||||
assert "Teken rechthoek" in map_workspace
|
||||
assert "Objecten in gebied ophalen" in map_workspace
|
||||
assert "Gebiedsdownload bewaren" in map_workspace
|
||||
assert "bboxSelectionMode" in geomap
|
||||
assert "selection-bbox" in geomap
|
||||
assert "selection-result" in geomap
|
||||
assert "useMapSelectionExtract" in app
|
||||
assert "area_id: areaId" in extract_hook
|
||||
assert "area_id: areaId" in theme_hook
|
||||
> assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace
|
||||
E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionError
|
||||
______ test_frontend_declares_national_scope_as_primary_operating_focus _______
|
||||
|
||||
def test_frontend_declares_national_scope_as_primary_operating_focus() -> None:
|
||||
focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
navigation = (
|
||||
ROOT
|
||||
/ "frontend"
|
||||
/ "src"
|
||||
/ "components"
|
||||
/ "shell"
|
||||
/ "WorkbenchNavigation.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus
|
||||
assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus
|
||||
assert "NATIONAL_MAP_CENTER" in focus
|
||||
assert "return nationalProject.id" in project_hook
|
||||
assert "hasMappedAnalysisContext(data)" in project_hook
|
||||
assert "dataset.dataset_type === 'raster'" in project_hook
|
||||
assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook
|
||||
assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook
|
||||
assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook
|
||||
assert "center: NATIONAL_MAP_CENTER" in map_source
|
||||
assert "zoom: NATIONAL_MAP_ZOOM" in map_source
|
||||
assert "GeoIntel" in navigation
|
||||
> assert "Atlas Workbench" in navigation
|
||||
E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n </div>\n ))}\n </nav>\n <ItWorxSignature />\n </aside>\n )\n}\n'
|
||||
|
||||
backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionError
|
||||
______ test_product_docs_record_national_scope_and_mol_regression_focus _______
|
||||
|
||||
def test_product_docs_record_national_scope_and_mol_regression_focus() -> None:
|
||||
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
||||
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
|
||||
|
||||
> assert "Belgium and the Belgian North Sea" in readme
|
||||
E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n<p align="center">\n <img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo">\n</p...\n\nActieve mijlpaal: **v1.0.0 � Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'
|
||||
|
||||
backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionError
|
||||
_____________ test_map_first_explorer_is_the_default_product_flow _____________
|
||||
|
||||
def test_map_first_explorer_is_the_default_product_flow() -> None:
|
||||
app = read("frontend/src/App.tsx")
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "useState<WorkspaceKey>('map')" in app
|
||||
assert "Gebied analyseren" in workspace
|
||||
> assert "<h3>Focus op de kaart <small>optioneel</small></h3>" in workspace
|
||||
E assert '<h3>Focus op de kaart <small>optioneel</small></h3>' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionError
|
||||
___________ test_map_rectangle_drag_is_wired_to_automatic_analysis ____________
|
||||
|
||||
def test_map_rectangle_drag_is_wired_to_automatic_analysis() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
geomap = read("frontend/src/components/GeoMap.tsx")
|
||||
styles = read("frontend/src/styles/app.css")
|
||||
|
||||
assert "onMapBboxPreview={handleMapBboxPreview}" in workspace
|
||||
assert "onMapBboxSelect={handleMapBboxSelect}" in workspace
|
||||
assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace
|
||||
assert "const areaIdForSelection" in workspace
|
||||
assert "bbox && selectedMapArea ? selectedMapArea.id : undefined" in workspace
|
||||
> assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace
|
||||
E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionError
|
||||
__ test_evolution_theme_catalog_distinguishes_history_from_current_only_data __
|
||||
|
||||
def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "analysisMode === 'current'" in workspace
|
||||
> assert "Boolean(dataset || onDemandProduct)" in workspace
|
||||
E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionError
|
||||
_____ test_regional_map_uses_logical_partition_groups_and_exact_analysis ______
|
||||
|
||||
def test_regional_map_uses_logical_partition_groups_and_exact_analysis() -> None:
|
||||
app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8")
|
||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8")
|
||||
|
||||
assert "regionalScopeSelected" in workspace
|
||||
assert "rasterPartitionsForDataset" in workspace
|
||||
assert "imageOverlays={activeImageOverlays}" in workspace
|
||||
> assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace
|
||||
E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionError
|
||||
___ test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope ____
|
||||
|
||||
def test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -> None:
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8")
|
||||
focus = (
|
||||
ROOT / "frontend" / "src" / "config" / "primaryFocus.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
map_workspace = (
|
||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
theme_hook = (
|
||||
ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
dataset_api = (
|
||||
ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "isPartitionedBathymetry" in map_workspace
|
||||
assert "regionalPartitionedThemeActive" in map_workspace
|
||||
> assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace
|
||||
E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionError
|
||||
____ test_flanders_workspace_exposes_governed_thematic_products_on_demand _____
|
||||
|
||||
def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
|
||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||
api = read("frontend/src/services/api/datasets.ts")
|
||||
|
||||
assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace
|
||||
assert "new Map<DataThemeId, OnDemandMapProduct>" in workspace
|
||||
> assert "'Automatisch'" in workspace
|
||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionError
|
||||
________ test_selection_reads_and_bounded_acquires_all_relevant_themes ________
|
||||
|
||||
def test_selection_reads_and_bounded_acquires_all_relevant_themes() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
app = read("frontend/src/App.tsx")
|
||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||
|
||||
> assert "for (const theme of [activeTheme])" in workspace
|
||||
E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionError
|
||||
______ test_regional_on_demand_sources_require_a_bounded_drawn_selection ______
|
||||
|
||||
def test_regional_on_demand_sources_require_a_bounded_drawn_selection() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "regionalOnDemandThemeActive" in workspace
|
||||
> assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace
|
||||
E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionError
|
||||
_____ test_grb_frontend_and_contracts_use_only_the_governed_backend_path ______
|
||||
|
||||
def test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -> None:
|
||||
selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8")
|
||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8")
|
||||
|
||||
assert "datasetsApi.acquireGrb" in selection_hook
|
||||
assert "datasetsApi.listGrbProducts" in catalog_hook
|
||||
assert "officialMapProducts.grb" in workspace
|
||||
assert "result[product.key] = null" in workspace
|
||||
assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace
|
||||
assert "onSetContextLayerLabel" in workspace
|
||||
> assert "'Automatisch'" in workspace
|
||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionError
|
||||
__________ test_app_entrypoint_has_clean_encoding_and_react_imports ___________
|
||||
|
||||
def test_app_entrypoint_has_clean_encoding_and_react_imports() -> None:
|
||||
app_path = ROOT / "frontend" / "src" / "App.tsx"
|
||||
app_bytes = app_path.read_bytes()
|
||||
app = app_path.read_text(encoding="utf-8")
|
||||
|
||||
assert not app_bytes.startswith(b"\xef\xbb\xbf")
|
||||
assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app
|
||||
assert "FormEvent" not in app
|
||||
> assert app.count("useEffect(") == 1
|
||||
E assert 3 == 1
|
||||
E + where 3 = <built-in method count of str object at 0x000001FED98D8C30>('useEffect(')
|
||||
E + where <built-in method count of str object at 0x000001FED98D8C30> = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n />\n )\n}\n\nexport default App\n".count
|
||||
|
||||
backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError
|
||||
- generated xml file: C:\Projects\geointel\artifacts\evidence\accuracy\P1\backend-full-suite.junit.xml -
|
||||
=========================== short test summary info ===========================
|
||||
FAILED backend\tests\test_rc4_national_coverage.py::test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox
|
||||
FAILED backend\tests\test_rc5_release_deployment.py::test_runtime_configuration_is_validated_before_container_replacement
|
||||
FAILED backend\tests\test_rc9_ux_release_contract.py::test_rc9_loading_and_accessibility_states_are_explicit
|
||||
FAILED backend\tests\test_rc_runtime_observability.py::test_all_in_one_deploy_embeds_immutable_build_identity
|
||||
FAILED backend\tests\test_sprint106_map_bbox_extract.py::test_frontend_exposes_map_bbox_selection_contracts
|
||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_frontend_declares_national_scope_as_primary_operating_focus
|
||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_product_docs_record_national_scope_and_mol_regression_focus
|
||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_first_explorer_is_the_default_product_flow
|
||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_rectangle_drag_is_wired_to_automatic_analysis
|
||||
FAILED backend\tests\test_sprint200_temporal_explorer_handoff.py::test_evolution_theme_catalog_distinguishes_history_from_current_only_data
|
||||
FAILED backend\tests\test_sprint219_regional_raster_explorer.py::test_regional_map_uses_logical_partition_groups_and_exact_analysis
|
||||
FAILED backend\tests\test_sprint236_bathymetry_expansion.py::test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_flanders_workspace_exposes_governed_thematic_products_on_demand
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_selection_reads_and_bounded_acquires_all_relevant_themes
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_regional_on_demand_sources_require_a_bounded_drawn_selection
|
||||
FAILED backend\tests\test_sprint239_bounded_grb_acquisition.py::test_grb_frontend_and_contracts_use_only_the_governed_backend_path
|
||||
FAILED backend\tests\test_sprint39_frontend_orchestration_hooks.py::test_app_entrypoint_has_clean_encoding_and_react_imports
|
||||
17 failed, 1180 passed in 70.63s (0:01:10)
|
||||
command=python -m pytest backend/tests -q -p no:cacheprovider -W error::DeprecationWarning --junitxml=artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml
|
||||
exit_code=1
|
||||
captured_at=2026-08-01T18:32:02.4460806+02:00
|
||||
|
||||
........................................................................ [ 6%]
|
||||
........................................................................ [ 12%]
|
||||
.........................................F..........F..................F [ 18%]
|
||||
..................F..................................................... [ 24%]
|
||||
.........F.............................................................. [ 30%]
|
||||
........................................................................ [ 36%]
|
||||
.....F.F.......................................FF....................... [ 42%]
|
||||
........................................................................ [ 48%]
|
||||
..F..................................................................... [ 54%]
|
||||
........................................................................ [ 60%]
|
||||
.......F................................................................ [ 66%]
|
||||
........................................................................ [ 72%]
|
||||
........................................FFFF...........F................ [ 78%]
|
||||
...............................................F........................ [ 84%]
|
||||
........................................................................ [ 90%]
|
||||
........................................................................ [ 96%]
|
||||
............................................. [100%]
|
||||
================================== FAILURES ===================================
|
||||
_ test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox _
|
||||
|
||||
def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -> None:
|
||||
root = Path(__file__).parents[2]
|
||||
focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8")
|
||||
workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")
|
||||
coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8")
|
||||
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
|
||||
assert "Belgium and North Sea Workbench" in focus
|
||||
assert "nationalProject" in workspace_hook
|
||||
assert "return nationalProject.id" in workspace_hook
|
||||
assert "NATIONAL_WORKSPACE_REGION" in workspace_hook
|
||||
assert "externalApi.resolveCoverage" in coverage_hook
|
||||
assert "coverage.outside_supported_scope" in map_workspace
|
||||
assert "coverageStatusLabel" in map_workspace
|
||||
> assert "coverageSelectionAvailable" in map_workspace
|
||||
E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_rc4_national_coverage.py:432: AssertionError
|
||||
____ test_runtime_configuration_is_validated_before_container_replacement _____
|
||||
|
||||
def test_runtime_configuration_is_validated_before_container_replacement() -> None:
|
||||
run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8")
|
||||
|
||||
validation_index = run_script.index("validate_runtime_config")
|
||||
> replacement_index = run_script.index("docker compose down")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
E ValueError: substring not found
|
||||
|
||||
backend\tests\test_rc5_release_deployment.py:65: ValueError
|
||||
___________ test_rc9_loading_and_accessibility_states_are_explicit ____________
|
||||
|
||||
def test_rc9_loading_and_accessibility_states_are_explicit() -> None:
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
map_workspace = (
|
||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
assert "workspaceDataLoading" in app
|
||||
assert 'role="status" aria-live="polite"' in app
|
||||
assert "Databronnen worden gecontroleerd" in map_workspace
|
||||
> assert "Beschikbaarheid controleren" in map_workspace
|
||||
E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_rc9_ux_release_contract.py:33: AssertionError
|
||||
___________ test_all_in_one_deploy_embeds_immutable_build_identity ____________
|
||||
|
||||
def test_all_in_one_deploy_embeds_immutable_build_identity() -> None:
|
||||
dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8")
|
||||
release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8")
|
||||
deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8")
|
||||
deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8")
|
||||
|
||||
assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile
|
||||
assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||
assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile
|
||||
assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||
> assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script
|
||||
E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n'
|
||||
|
||||
backend\tests\test_rc_runtime_observability.py:47: AssertionError
|
||||
_____________ test_frontend_exposes_map_bbox_selection_contracts ______________
|
||||
|
||||
def test_frontend_exposes_map_bbox_selection_contracts() -> None:
|
||||
api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8")
|
||||
map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8")
|
||||
theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
|
||||
assert "selectVectorFeatures" in api_client
|
||||
assert "Area selection" in map_workspace
|
||||
assert "Teken rechthoek" in map_workspace
|
||||
assert "Objecten in gebied ophalen" in map_workspace
|
||||
assert "Gebiedsdownload bewaren" in map_workspace
|
||||
assert "bboxSelectionMode" in geomap
|
||||
assert "selection-bbox" in geomap
|
||||
assert "selection-result" in geomap
|
||||
assert "useMapSelectionExtract" in app
|
||||
assert "area_id: areaId" in extract_hook
|
||||
assert "area_id: areaId" in theme_hook
|
||||
> assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace
|
||||
E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionError
|
||||
______ test_frontend_declares_national_scope_as_primary_operating_focus _______
|
||||
|
||||
def test_frontend_declares_national_scope_as_primary_operating_focus() -> None:
|
||||
focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
navigation = (
|
||||
ROOT
|
||||
/ "frontend"
|
||||
/ "src"
|
||||
/ "components"
|
||||
/ "shell"
|
||||
/ "WorkbenchNavigation.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus
|
||||
assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus
|
||||
assert "NATIONAL_MAP_CENTER" in focus
|
||||
assert "return nationalProject.id" in project_hook
|
||||
assert "hasMappedAnalysisContext(data)" in project_hook
|
||||
assert "dataset.dataset_type === 'raster'" in project_hook
|
||||
assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook
|
||||
assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook
|
||||
assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook
|
||||
assert "center: NATIONAL_MAP_CENTER" in map_source
|
||||
assert "zoom: NATIONAL_MAP_ZOOM" in map_source
|
||||
assert "GeoIntel" in navigation
|
||||
> assert "Atlas Workbench" in navigation
|
||||
E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n </div>\n ))}\n </nav>\n <ItWorxSignature />\n </aside>\n )\n}\n'
|
||||
|
||||
backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionError
|
||||
______ test_product_docs_record_national_scope_and_mol_regression_focus _______
|
||||
|
||||
def test_product_docs_record_national_scope_and_mol_regression_focus() -> None:
|
||||
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
||||
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
|
||||
|
||||
> assert "Belgium and the Belgian North Sea" in readme
|
||||
E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n<p align="center">\n <img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo">\n</p...\n\nActieve mijlpaal: **v1.0.0 � Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'
|
||||
|
||||
backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionError
|
||||
_____________ test_map_first_explorer_is_the_default_product_flow _____________
|
||||
|
||||
def test_map_first_explorer_is_the_default_product_flow() -> None:
|
||||
app = read("frontend/src/App.tsx")
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "useState<WorkspaceKey>('map')" in app
|
||||
assert "Gebied analyseren" in workspace
|
||||
> assert "<h3>Focus op de kaart <small>optioneel</small></h3>" in workspace
|
||||
E assert '<h3>Focus op de kaart <small>optioneel</small></h3>' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionError
|
||||
___________ test_map_rectangle_drag_is_wired_to_automatic_analysis ____________
|
||||
|
||||
def test_map_rectangle_drag_is_wired_to_automatic_analysis() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
geomap = read("frontend/src/components/GeoMap.tsx")
|
||||
styles = read("frontend/src/styles/app.css")
|
||||
|
||||
assert "onMapBboxPreview={handleMapBboxPreview}" in workspace
|
||||
assert "onMapBboxSelect={handleMapBboxSelect}" in workspace
|
||||
assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace
|
||||
assert "const areaIdForSelection" in workspace
|
||||
assert "bbox && selectedMapArea ? selectedMapArea.id : undefined" in workspace
|
||||
> assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace
|
||||
E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionError
|
||||
__ test_evolution_theme_catalog_distinguishes_history_from_current_only_data __
|
||||
|
||||
def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "analysisMode === 'current'" in workspace
|
||||
> assert "Boolean(dataset || onDemandProduct)" in workspace
|
||||
E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionError
|
||||
_____ test_regional_map_uses_logical_partition_groups_and_exact_analysis ______
|
||||
|
||||
def test_regional_map_uses_logical_partition_groups_and_exact_analysis() -> None:
|
||||
app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8")
|
||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8")
|
||||
|
||||
assert "regionalScopeSelected" in workspace
|
||||
assert "rasterPartitionsForDataset" in workspace
|
||||
assert "imageOverlays={activeImageOverlays}" in workspace
|
||||
> assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace
|
||||
E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionError
|
||||
___ test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope ____
|
||||
|
||||
def test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -> None:
|
||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||
index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8")
|
||||
focus = (
|
||||
ROOT / "frontend" / "src" / "config" / "primaryFocus.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
map_workspace = (
|
||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
theme_hook = (
|
||||
ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
dataset_api = (
|
||||
ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "isPartitionedBathymetry" in map_workspace
|
||||
assert "regionalPartitionedThemeActive" in map_workspace
|
||||
> assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace
|
||||
E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionError
|
||||
____ test_flanders_workspace_exposes_governed_thematic_products_on_demand _____
|
||||
|
||||
def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
|
||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||
api = read("frontend/src/services/api/datasets.ts")
|
||||
|
||||
assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace
|
||||
assert "new Map<DataThemeId, OnDemandMapProduct>" in workspace
|
||||
> assert "'Automatisch'" in workspace
|
||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionError
|
||||
________ test_selection_reads_and_bounded_acquires_all_relevant_themes ________
|
||||
|
||||
def test_selection_reads_and_bounded_acquires_all_relevant_themes() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
app = read("frontend/src/App.tsx")
|
||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||
|
||||
> assert "for (const theme of [activeTheme])" in workspace
|
||||
E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionError
|
||||
______ test_regional_on_demand_sources_require_a_bounded_drawn_selection ______
|
||||
|
||||
def test_regional_on_demand_sources_require_a_bounded_drawn_selection() -> None:
|
||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||
|
||||
assert "regionalOnDemandThemeActive" in workspace
|
||||
> assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace
|
||||
E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionError
|
||||
_____ test_grb_frontend_and_contracts_use_only_the_governed_backend_path ______
|
||||
|
||||
def test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -> None:
|
||||
selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||
catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8")
|
||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||
contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8")
|
||||
|
||||
assert "datasetsApi.acquireGrb" in selection_hook
|
||||
assert "datasetsApi.listGrbProducts" in catalog_hook
|
||||
assert "officialMapProducts.grb" in workspace
|
||||
assert "result[product.key] = null" in workspace
|
||||
assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace
|
||||
assert "onSetContextLayerLabel" in workspace
|
||||
> assert "'Automatisch'" in workspace
|
||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||
|
||||
backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionError
|
||||
__________ test_app_entrypoint_has_clean_encoding_and_react_imports ___________
|
||||
|
||||
def test_app_entrypoint_has_clean_encoding_and_react_imports() -> None:
|
||||
app_path = ROOT / "frontend" / "src" / "App.tsx"
|
||||
app_bytes = app_path.read_bytes()
|
||||
app = app_path.read_text(encoding="utf-8")
|
||||
|
||||
assert not app_bytes.startswith(b"\xef\xbb\xbf")
|
||||
assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app
|
||||
assert "FormEvent" not in app
|
||||
> assert app.count("useEffect(") == 1
|
||||
E assert 3 == 1
|
||||
E + where 3 = <built-in method count of str object at 0x000001FED98D8C30>('useEffect(')
|
||||
E + where <built-in method count of str object at 0x000001FED98D8C30> = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n />\n )\n}\n\nexport default App\n".count
|
||||
|
||||
backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError
|
||||
- generated xml file: C:\Projects\geointel\artifacts\evidence\accuracy\P1\backend-full-suite.junit.xml -
|
||||
=========================== short test summary info ===========================
|
||||
FAILED backend\tests\test_rc4_national_coverage.py::test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox
|
||||
FAILED backend\tests\test_rc5_release_deployment.py::test_runtime_configuration_is_validated_before_container_replacement
|
||||
FAILED backend\tests\test_rc9_ux_release_contract.py::test_rc9_loading_and_accessibility_states_are_explicit
|
||||
FAILED backend\tests\test_rc_runtime_observability.py::test_all_in_one_deploy_embeds_immutable_build_identity
|
||||
FAILED backend\tests\test_sprint106_map_bbox_extract.py::test_frontend_exposes_map_bbox_selection_contracts
|
||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_frontend_declares_national_scope_as_primary_operating_focus
|
||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_product_docs_record_national_scope_and_mol_regression_focus
|
||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_first_explorer_is_the_default_product_flow
|
||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_rectangle_drag_is_wired_to_automatic_analysis
|
||||
FAILED backend\tests\test_sprint200_temporal_explorer_handoff.py::test_evolution_theme_catalog_distinguishes_history_from_current_only_data
|
||||
FAILED backend\tests\test_sprint219_regional_raster_explorer.py::test_regional_map_uses_logical_partition_groups_and_exact_analysis
|
||||
FAILED backend\tests\test_sprint236_bathymetry_expansion.py::test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_flanders_workspace_exposes_governed_thematic_products_on_demand
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_selection_reads_and_bounded_acquires_all_relevant_themes
|
||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_regional_on_demand_sources_require_a_bounded_drawn_selection
|
||||
FAILED backend\tests\test_sprint239_bounded_grb_acquisition.py::test_grb_frontend_and_contracts_use_only_the_governed_backend_path
|
||||
FAILED backend\tests\test_sprint39_frontend_orchestration_hooks.py::test_app_entrypoint_has_clean_encoding_and_react_imports
|
||||
17 failed, 1180 passed in 70.63s (0:01:10)
|
||||
|
||||
Reference in New Issue
Block a user