-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Test Python
-
Storage Engines - Foundations
-
383.606
-
SE Foundations - 2026-07-21
-
3
Several publish-rejection and validation behaviors for schema epochs are not covered in the Python test suite. The existing tests in test_layered_schema07.py, test_layered_schema10.py, and test_layered_schema11.py cover the happy path but leave gaps in error handling and follower-side publish constraints.
Add test cases to the identified files:
test_layered_schema07.py:
- Publish the same URI at epoch E2 after it was already published at a later epoch E1; verify publish epochs for the same URI cannot regress.
test_layered_schema10.py:
- Publish a follower-created table with schema epoch 0; verify EINVAL.
- Publish a follower-created table at epoch <= stable schema epoch; verify rejection once stable is set.
- Call publish on a follower-created table without schema_epoch; verify no-op.
- Leave an unpublished table in a state that would otherwise become stable; verify the illegal state fails loudly.
- Trigger illegal unpublished-table stable-data case; verify no partial durable metadata is produced.
test_layered_schema11.py:
- Publish a follower drop with schema epoch 0; verify EINVAL.
- Publish a follower drop at epoch <= stable schema epoch; verify rejection.
- Call publish on a follower drop without schema_epoch; verify no-op.