Azure / Azure/azure-functions-durable-python

Add regression coverage for None-returning orchestrations

Ouverte Adaptée aux débutants
#617 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Enhancement fixed-in-v2 P3
Langage dominant
Python
Étoiles
157
Forks
70
Merge moyen
2 j 10 h
PR mergées (30 j)
2

Description

💡 **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.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
testing
Type d'issue
Fonctionnalité
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Calme
Clarté
Clairement spécifiée
Accessibilité débutants
72/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.