🧪 Test/fields process node coverage - #7448
Merged
GeigerJ2 merged 1 commit intoJul 16, 2026
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7448 +/- ##
==========================================
- Coverage 80.61% 80.60% -0.00%
==========================================
Files 580 580
Lines 46722 46722
==========================================
- Hits 37658 37656 -2
- Misses 9064 9066 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
GeigerJ2
added a commit
to GeigerJ2/aiida-core
that referenced
this pull request
Jul 16, 2026
This reverts commit 1270306. The 8 refreshed fixtures cover the process nodes and the `Data`/ `ProcessNode` bases, which `test_all_node_fields` never enumerates: its `startswith('core.')` filter excludes the whole `aiida.node` group. Nothing reads them, so refreshing them here rewrote 8 unread files with no test to verify the result. They are also largely out of scope for this sweep. Two thirds of that diff is structural drift from the pydantic model rework that introduced the filter (`QbDictField` -> `QbAttributesField`, dtypes becoming the `AttributesModel` class), not the repr modernization this PR is about. The refresh lands instead in aiidateam#7448, together with the filter fix that gives those fixtures a test again, so the regenerated values are actually verified there rather than asserted here.
GeigerJ2
added a commit
to GeigerJ2/aiida-core
that referenced
this pull request
Jul 16, 2026
This reverts commit 1270306. The 8 refreshed fixtures cover the process nodes and the `Data`/ `ProcessNode` bases, which `test_all_node_fields` never enumerates: its `startswith('core.')` filter excludes the whole `aiida.node` group. Nothing reads them, so refreshing them here rewrote 8 unread files with no test to verify the result. They are also largely out of scope for this sweep. Two thirds of that diff is structural drift from the pydantic model rework that introduced the filter (`QbDictField` -> `QbAttributesField`, dtypes becoming the `AttributesModel` class), not the repr modernization this PR is about. The refresh lands instead in aiidateam#7448, together with the filter fix that gives those fixtures a test again, so the regenerated values are actually verified there rather than asserted here.
📝 WalkthroughWalkthroughORM field fixtures now represent node attributes through typed ChangesORM field fixture updates
Estimated code review effort: 3 (Moderate) | ~25 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
GeigerJ2
force-pushed
the
test/fields-process-node-coverage
branch
from
July 16, 2026 11:31
42affc0 to
07144a3
Compare
The `node_and_data_entry_points` fixture filtered entry points with
`startswith('core.')`, but every `aiida.node` name starts with `data` or
`process`, never `core.`, so the whole group was silently excluded.
`test_all_node_fields` therefore only ever checked the 32 `aiida.data`
classes, leaving the process nodes and the `Data`/`ProcessNode`/
`CalculationNode`/`WorkflowNode` bases with no field-schema coverage.
Drop the filter so they are checked again.
Refresh the eight reference fixtures the filter had orphaned. They had
drifted since the pydantic model rework that introduced the filter and
still carried the pre-PEP-585 dtype reprs (`typing.List[str]` ->
`list[str]`, `typing.Sequence` -> `collections.abc.Sequence`); only now
do they gain a test that verifies them.
Also drop the `skipif < 3.14` guard. It existed because `repr()` of
`typing` generics is not stable across versions, but the annotations are
now PEP 585/604 throughout (aiidateam#7254), so every field repr is
version-stable and the fixtures hold on 3.10-3.14. That matters beyond
coverage: it restores the only CI check of `extract_root_type`'s
`types.UnionType` branch, which is a no-op on 3.14 (where `t.Union is
UnionType`) but load-bearing below it, so removing that branch now fails
the suite instead of silently degrading 187 query fields to
`QbAnyField`.
This was referenced Jul 16, 2026
Merged
agoscinski
pushed a commit
to agoscinski/aiida-core
that referenced
this pull request
Jul 31, 2026
The `node_and_data_entry_points` fixture filtered entry points with
`startswith('core.')`, but every `aiida.node` name starts with `data` or
`process`, never `core.`, so the whole group was silently excluded.
`test_all_node_fields` therefore only ever checked the 32 `aiida.data`
classes, leaving the process nodes and the `Data`/`ProcessNode`/
`CalculationNode`/`WorkflowNode` bases with no field-schema coverage.
Drop the filter so they are checked again.
Refresh the eight reference fixtures the filter had orphaned. They had
drifted since the pydantic model rework that introduced the filter and
still carried the pre-PEP-585 dtype reprs (`typing.List[str]` ->
`list[str]`, `typing.Sequence` -> `collections.abc.Sequence`); only now
do they gain a test that verifies them.
Also drop the `skipif < 3.14` guard. It existed because `repr()` of
`typing` generics is not stable across versions, but the annotations are
now PEP 585/604 throughout (aiidateam#7254), so every field repr is
version-stable and the fixtures hold on 3.10-3.14. That matters beyond
coverage: it restores the only CI check of `extract_root_type`'s
`types.UnionType` branch, which is a no-op on 3.14 (where `t.Union is
UnionType`) but load-bearing below it, so removing that branch now fails
the suite instead of silently degrading 187 query fields to
`QbAnyField`.
agoscinski
pushed a commit
to agoscinski/aiida-core
that referenced
this pull request
Jul 31, 2026
The `node_and_data_entry_points` fixture filtered entry points with
`startswith('core.')`, but every `aiida.node` name starts with `data` or
`process`, never `core.`, so the whole group was silently excluded.
`test_all_node_fields` therefore only ever checked the 32 `aiida.data`
classes, leaving the process nodes and the `Data`/`ProcessNode`/
`CalculationNode`/`WorkflowNode` bases with no field-schema coverage.
Drop the filter so they are checked again.
Refresh the eight reference fixtures the filter had orphaned. They had
drifted since the pydantic model rework that introduced the filter and
still carried the pre-PEP-585 dtype reprs (`typing.List[str]` ->
`list[str]`, `typing.Sequence` -> `collections.abc.Sequence`); only now
do they gain a test that verifies them.
Also drop the `skipif < 3.14` guard. It existed because `repr()` of
`typing` generics is not stable across versions, but the annotations are
now PEP 585/604 throughout (aiidateam#7254), so every field repr is
version-stable and the fixtures hold on 3.10-3.14. That matters beyond
coverage: it restores the only CI check of `extract_root_type`'s
`types.UnionType` branch, which is a no-op on 3.14 (where `t.Union is
UnionType`) but load-bearing below it, so removing that branch now fails
the suite instead of silently degrading 187 query fields to
`QbAnyField`.
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.
Split off from #7254.
Summary by CodeRabbit
Bug Fixes
repository_contentmappings.Tests