sync develop#16
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Keeps examples/ as the only user-facing reference at the repo root; groups manual-testing scripts under tools/ alongside other dev tooling. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Load the project model from tests/test_data/sample_project.json instead of fetching from the live API, so the operation tests run without a key or network. Live round-trips remain opt-in via --integration. Live client tests now skip (not fail) when COM_API_KEY is missing or rejected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The offline refactor made the project fixture always load the static JSON. Branch on --integration so integration runs again fetch a live project from the API (and snapshot it) before exercising the write operations, while the default run stays offline. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Trigger Deploy Documentation via workflow_run on 'Publish to PyPI' completion (plus manual dispatch), so the public Pages site updates only when a new version ships. Routine work on main/develop no longer touches it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Update checkout v4->v5, setup-uv v4->v8, upload-pages-artifact v3->v4, deploy-pages v4->v5 to clear the Node 20 deprecation warnings. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v4 bundles upload-artifact@v4.6.2 (Node 20); v5 bundles v7.0.0 (Node 24). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR syncs changes that reorganize manual testing scripts under tools/scripts/, add committed offline fixtures for project operation tests, and update CI/workflows so the default test suite runs without requiring live COMcheck API access.
Changes:
- Added
tools/scripts/manual/integration script suite (client + project operations) plus shared script test data. - Converted operation tests to run offline by default using a committed
sample_project.json, with opt-in--integrationlive round-trips. - Updated GitHub Actions workflows (new
Testsworkflow; docs deploy triggered by publish; action version bumps) and refreshed documentation links/paths.
Reviewed changes
Copilot reviewed 16 out of 26 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Bumps locked package version to 1.0.1. |
| tools/scripts/script_test_data.py | Adds shared Pydantic test fixtures for manual scripts. |
| tools/scripts/README.md | Updates paths/instructions to reflect tools/scripts/ location. |
| tools/scripts/project_operations_tests/envelope_operations_script.py | Adds manual envelope operations runner (currently has runtime issues around update/export). |
| tools/scripts/project_operations_tests/building_area_operations_script.py | Adds manual building-area operations runner (currently has runtime issues around export). |
| tools/scripts/project_operations_tests/init.py | Marks package for script module layout. |
| tools/scripts/main.py | Updates default base dir to tools/scripts. |
| tools/scripts/comcheck_client_tests/user_function_script.py | Adds manual client smoke script (currently has indexing + export serialization issues). |
| tools/scripts/comcheck_client_tests/simulation_script.py | Updates import path to new script test data module location. |
| tools/scripts/comcheck_client_tests/init.py | Marks package for script module layout. |
| tools/scripts/init.py | Marks scripts directory as a package. |
| tests/test_data/sample_project.json | Adds committed sample project snapshot for offline tests. |
| tests/test_data/components.py | Adds Python test fixtures for components/models (contains a naming typo). |
| tests/test_data/init.py | Initializes test data package. |
| tests/test_comcheck_client.py | Makes live client tests skip cleanly without/with rejected API key. |
| tests/README.md | Updates link to manual scripts location. |
| tests/project_operation_tests/conftest.py | Switches operation tests to offline sample project by default; --integration uses live API. |
| tests/client/test_simulation.py | Updates commented fixture import path. |
| README.md | Moves/updates Support section and links to public docs site. |
| examples/README.md | Removes data_manager example section and renumbers headings accordingly. |
| examples/data_manager/envelope.py | Removes outdated data manager example. |
| examples/data_manager/building_area.py | Removes outdated data manager example. |
| CHANGELOG.md | Removes changelog file. |
| .github/workflows/test.yml | Adds workflow to run offline pytest suite on PRs/pushes. |
| .github/workflows/publish.yml | Updates GitHub Action versions for publish workflow. |
| .github/workflows/docs.yml | Deploys docs only after successful publish (or manually); bumps action versions and hardcodes canonical URL. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+53
to
+56
| if request.config.getoption("--integration"): | ||
| projects = client.list_projects() | ||
| if not projects or not (project_id := projects[0].get("_id")): | ||
| pytest.skip("No projects found for integration tests.") |
| project = client.get_project(project_id) | ||
| else: | ||
| data = json.loads(SAMPLE_PROJECT_PATH.read_text()) | ||
| project = client._parse_data(data, "python") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thank you for your interest in this project!
However, this project does not accept external contributions or pull requests at this time. Development is managed internally by the PNNL team.
Alternative Ways to Help
If you've found a bug or have a suggestion:
We appreciate your understanding and interest in the COMcheck API Python client!