Azure / Azure/azure-functions-durable-python

Add regression coverage for None-returning orchestrations

Offen Anfängerfreundlich
#617 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Enhancement fixed-in-v2 P3
Vorherrschende Sprache
Python
Sterne
157
Forks
70
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
2

Beschreibung

💡 **Feature description**

Add explicit regression tests for all supported `None`-return paths in orchestration replay:

- A sub-orchestrator whose completion event has `Result=None`.
- A top-level generator orchestrator that completes without an explicit return value.

Activity completion with `Result=None` is already covered by `test_call_activity_with_none_return`. The additional tests should verify that replay completes successfully, produces the expected `None` task value where applicable, and does not call JSON deserialization with `None`.

💭 **Describe alternatives you've considered**

Relying on the shared guard in `TaskOrchestrationExecutor.parse_history_event` and the existing activity test leaves the separate `SUB_ORCHESTRATION_INSTANCE_COMPLETED` branch without direct regression coverage. A top-level no-return test would also preserve the behavior that originally made issue #260 difficult to diagnose.

**Additional context**

Issue #260 reported the original failure. The root cause was isolated in #454 and fixed by #466, released in `azure-functions-durable` 1.2.9. Current code handles both task and sub-orchestration completion events with null results, but only the activity path has a focused regression test.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start with the existing test_call_activity_with_none_return regression test and inspect TaskOrchestrationExecutor.parse_history_event, especially the SUB_ORCHESTRATION_INSTANCE_COMPLETED path. Add focused coverage for a sub-orchestrator with Result=None and a top-level generator with no explicit return. Done means replay completes successfully, produces None where applicable, and does not attempt JSON deserialization with None.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
testing
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
72/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.