Add missing sync and new async integration tests #996
Draft
Add missing sync and new async integration tests #996
Conversation
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
# Conflicts: # tests/examples/conftest.py # tests/examples/test_configuration.py # tests/integration/AGENTS.md # tests/integration/conftest.py # tests/integration/test_configuration.py # tests/integration/test_distributed_lock.py # tests/integration/test_metadata.py # tests/integration/test_pubsub.py # tests/integration/test_secret_store.py # tests/integration/test_state_store.py
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #996 +/- ##
==========================================
- Coverage 86.63% 81.46% -5.17%
==========================================
Files 84 139 +55
Lines 4473 13525 +9052
==========================================
+ Hits 3875 11018 +7143
- Misses 598 2507 +1909 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds new sync/async pytest coverage for previously untested Dapr SDK building blocks, and centralizes common test utilities/fixtures to reduce duplication (per #972).
Changes:
- Introduces
tests/wait_utils.py(sync + async polling helpers) and updates tests to reuse it. - Adds new async integration test modules (aio client) plus expands/normalizes several sync integration tests.
- Adds shared session fixtures (
flush_redis,redis_set_config), pytest-asyncio auto mode, and new integration resources (binding/crypto/conversation components + key material).
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
tests/wait_utils.py |
New shared sync/async polling helpers for tests. |
tests/process_utils.py |
Updates subprocess/process-group helper docstring. |
tests/integration/test_state_store_async.py |
New async state store smoke tests. |
tests/integration/test_state_store.py |
Refactors to function-style tests; keeps state coverage. |
tests/integration/test_secret_store_async.py |
New async secrets smoke tests. |
tests/integration/test_pubsub_async.py |
New async pubsub publish/bulk publish tests using async polling. |
tests/integration/test_pubsub.py |
Adds bulk publish + streaming/handler subscribe coverage; uses shared flush/polling. |
tests/integration/test_metadata_async.py |
New async metadata tests. |
tests/integration/test_metadata.py |
Refactors to function-style tests; keeps metadata coverage. |
tests/integration/test_jobs_async.py |
New async jobs alpha API smoke tests. |
tests/integration/test_invoke_binding_async.py |
New async output binding tests against localstorage binding. |
tests/integration/test_invoke_async.py |
New async service invocation tests. |
tests/integration/test_distributed_lock_async.py |
New async distributed lock alpha API tests. |
tests/integration/test_distributed_lock.py |
Refactors to function-style tests; keeps lock coverage. |
tests/integration/test_crypto_async.py |
New async crypto alpha API round-trip tests (RSA/AES). |
tests/integration/test_conversation_async.py |
New async conversation alpha API smoke tests. |
tests/integration/test_configuration_async.py |
New async configuration get tests. |
tests/integration/test_configuration.py |
Refactors + adds race-focused xfail + improves subscribe test robustness. |
tests/integration/resources/statestore.yaml |
Marks statestore as actor state store (workflow compatibility). |
tests/integration/resources/localbinding.yaml |
Adds localstorage binding component for binding tests. |
tests/integration/resources/cryptostore.yaml |
Adds localstorage crypto component for crypto tests. |
tests/integration/resources/conversation.yaml |
Adds echo conversation component for conversation tests. |
tests/integration/keys/symmetric-key-256 |
Adds symmetric key material for crypto tests. |
tests/integration/keys/rsa-private-key.pem |
Adds RSA private key material for crypto tests. |
tests/integration/conftest.py |
Sidecar lifecycle improvements; shared wait helper import; binding scratch-dir setup; sidecar-death fast-fail. |
tests/integration/AGENTS.md |
Updates integration test documentation and directory layout. |
tests/examples/test_pubsub_streaming_async.py |
Updates expected output lines for streaming example test. |
tests/examples/test_langgraph_checkpointer.py |
Switches to shared wait helper; relies on shared redis flush fixture. |
tests/examples/test_configuration.py |
Uses shared redis_set_config fixture to seed config store. |
tests/examples/conftest.py |
Switches to tests.process_utils module. |
tests/conftest.py |
New shared session fixtures for Redis flushing/config seeding. |
pyproject.toml |
Enables pytest-asyncio asyncio_mode = "auto". |
dev-requirements.txt |
Adds pytest-asyncio requirement (but missing redis dependency). |
CLAUDE.md |
Updates repo guidance formatting/content. |
.gitignore |
Ignores integration binding scratch directory. |
Comments suppressed due to low confidence (1)
dev-requirements.txt:25
redisis imported/used by integration tests (e.g.,tests/integration/test_configuration.py) but theredisPyPI package isn’t listed indev-requirements.txt(there’s only a comment). Add an explicit dependency (e.g.,redis>=...) sotox -e integrationinstalls what the tests require.
# needed for direct Redis access in integration tests
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds tests for previously uncovered components and basic async tests for all components.
Also moves the custom
wait_until()functions to a common module to deduplicate the code fromtests/examples/.Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #972
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list: