Skip to content

Stabilize Azure Functions Durable E2E tests - #238

Merged
berndverst merged 1 commit into
microsoft:mainfrom
andystaples:andystaples-stabilize-functions-e2e
Jul 29, 2026
Merged

Stabilize Azure Functions Durable E2E tests#238
berndverst merged 1 commit into
microsoft:mainfrom
andystaples:andystaples-stabilize-functions-e2e

Conversation

@andystaples

Copy link
Copy Markdown
Contributor

Summary

  • write history-export artifacts to the system temporary directory instead of beneath the Function app, preventing the Functions file watcher from restarting the host mid-suite
  • temporarily skip the six E2E checks that directly depend on Azurite returning messages after an initial visibility delay: V1 and durabletask timers, delayed entity signals, and scheduled tasks
  • centralize the skip explanation and link it to Queues do not correctly handle visibility timeout Azure/Azurite#2343 so the quarantine is easy to remove when emulator behavior is reliable

The AzureStorage polling interval does not address this failure: the failed runs polled after the messages were due, but Azurite returned empty queue responses. Retry-policy E2Es remain enabled because they have not exhibited the failure and use substantially shorter delays.

Validation

  • python -m flake8 on the changed E2E files
  • focused history-export Functions E2E: 2 passed
  • full Functions E2E: 74 passed, 7 skipped (six quarantined tests plus the pre-existing Docker-dependent tracing skip)
  • confirmed the Functions host log contains no configuration-change restart during history export

Keep history export output outside the watched Function app and quarantine Azurite-dependent delayed visibility tests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: cb2d68a5-0184-45af-bb9c-4def2afe8e8a
Copilot AI review requested due to automatic review settings July 29, 2026 18:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR stabilizes the Azure Functions Durable E2E test suite by preventing Functions host restarts during history export and quarantining a small set of flaky Azurite-dependent scenarios.

Changes:

  • Write history-export artifacts to an OS temp directory (outside the Function app root) to avoid triggering the Functions file watcher.
  • Quarantine the Azurite “delayed visibility” dependent E2Es via a centralized skip marker with a linked tracking issue.
  • Apply the shared marker across the affected V1, durabletask, entity, and scheduled-task E2E tests.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/azure-functions-durable/e2e/test_v1_patterns_e2e.py Skips the V1 timer E2E affected by Azurite delayed-visibility flakiness.
tests/azure-functions-durable/e2e/test_dtask_scheduled_e2e.py Skips scheduled-task E2Es that depend on delayed queue message visibility.
tests/azure-functions-durable/e2e/test_dtask_patterns_e2e.py Skips the durabletask-native timer E2E affected by delayed visibility.
tests/azure-functions-durable/e2e/test_dtask_entities_advanced_e2e.py Skips delayed entity signal E2Es impacted by Azurite behavior.
tests/azure-functions-durable/e2e/apps/dtask_style/history_export_routes.py Moves exported history output to a stable temp directory outside the app to prevent host restarts.
tests/azure-functions-durable/e2e/_markers.py Adds a centralized, documented pytest skip marker for the Azurite delayed-visibility quarantine.

@berndverst berndverst left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed head 6d50cb0 against merge base 50f62e2. I found no actionable issues in the complete diff or affected Azure Functions E2E lifecycle and test infrastructure.

@berndverst
berndverst merged commit c688368 into microsoft:main Jul 29, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants