Description
progress_type_request does not correctly reject progress updates after a test has reached completed or canceled.
TestStatus.progress_step() returns an integer progress index, but the returned integer was compared directly against TestStatus.completed and TestStatus.canceled enum symbols.
As a result, terminal states could be incorrectly treated as active progress states.
Expected behavior
If the latest progress status is completed or canceled, a subsequent progress update should be rejected and the progress trail should remain unchanged.
Actual behavior
The terminal-state guard was bypassed, allowing additional progress entries after completed or canceled.
Reproduction
Regression tests demonstrate that:
- completed -> completed was accepted
- canceled -> completed was accepted
Fix
Compare the stored TestStatus enum directly against the terminal enum values, while retaining progress_step() for numeric progress ordering.
Tests
Regression tests cover both completed and canceled terminal states.
Description
progress_type_requestdoes not correctly reject progress updates after a test has reachedcompletedorcanceled.TestStatus.progress_step()returns an integer progress index, but the returned integer was compared directly againstTestStatus.completedandTestStatus.canceledenum symbols.As a result, terminal states could be incorrectly treated as active progress states.
Expected behavior
If the latest progress status is
completedorcanceled, a subsequent progress update should be rejected and the progress trail should remain unchanged.Actual behavior
The terminal-state guard was bypassed, allowing additional progress entries after
completedorcanceled.Reproduction
Regression tests demonstrate that:
Fix
Compare the stored
TestStatusenum directly against the terminal enum values, while retainingprogress_step()for numeric progress ordering.Tests
Regression tests cover both
completedandcanceledterminal states.