Skip to the content.

Testing Guide

This document explains the current pytest suite for EnvGeo-Seawater, what it checks, and what still needs to be expanded as the software matures.

日本語版

How To Run Tests

Run the full test suite from the project root:

pytest

For a quick check during development, run the core utility and repository-health tests:

pytest -q test/test_envgeo_utils.py test/test_repository_health.py

Continuous Integration

.github/workflows/ci.yml runs on Linux with Python 3.10 and 3.12 for pushes, pull requests, and manual dispatch. It installs requirements-dev.txt, runs the pytest suite, builds a wheel, then installs that wheel in a separate venv from outside the checkout. The development source clone retains 12 pages, including Pages 90 and 91 for pre-release work. The final wheel check verifies the installed package location, the 10 supported packaged pages, the diagnostic tool, and the absence of Pages 90, 91, 99, and the GEBCO-generation script.

Dependency installation necessarily uses the package index during CI setup. The test and application checks themselves must not require external tiles, downloads, or live network services. Browser-based visual checks and online map behaviour remain manual QA.

Test Files

test/test_basic.py

Basic import and version checks.

This file confirms that:

test/test_envgeo_utils.py

Core utility tests for reusable functions in envgeo_utils.py.

This file currently checks:

test/test_data_integrity.py

Data integrity and broad sanity checks for public datasets.

This file currently checks:

test/test_repository_health.py

Repository-level tests that protect the public app structure and common workflows.

This file currently checks:

test/test_public_surface.py

Public-facing surface and source-tree cleanup tests.

This file currently checks:

Current Scope

The current pytest suite focuses on:

These tests are intended to catch common breakage during refactoring and release preparation.

Current Limitations

The current suite does not yet fully automate:

For now, visual inspection and manual smoke tests remain important. The release checklist in docs/release_checklist.md records those manual checks.

Planned Test Expansion

Priority areas for future test expansion: