quadkit-testing 0.0.4__tar.gz → 0.0.42__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/.gitignore +32 -1
  2. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/PKG-INFO +4 -4
  3. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/README.md +3 -3
  4. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/pyproject.toml +1 -1
  5. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/event_client.py +6 -4
  6. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/event_bus.py +21 -7
  7. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/LICENSE +0 -0
  8. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/NOTICE +0 -0
  9. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/ARCHITECTURE.md +0 -0
  10. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/COMPLIANCE.md +0 -0
  11. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/CONFIGURATION.md +0 -0
  12. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/GUIDE.md +0 -0
  13. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/HOWTOS.md +0 -0
  14. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/QUICKSTART.md +0 -0
  15. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/docs/TROUBLESHOOTING.md +0 -0
  16. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/py.typed +0 -0
  17. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/README.md +0 -0
  18. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/__init__.py +0 -0
  19. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/_lazy_exports.py +0 -0
  20. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ai/__init__.py +0 -0
  21. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ai/bed.py +0 -0
  22. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ai/client.py +0 -0
  23. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ai/data.py +0 -0
  24. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/__init__.py +0 -0
  25. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/bed.py +0 -0
  26. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/client.py +0 -0
  27. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/__init__.py +0 -0
  28. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/_async.py +0 -0
  29. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/beds.py +0 -0
  30. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/mocks.py +0 -0
  31. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/tokens.py +0 -0
  32. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/fixtures/users.py +0 -0
  33. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/py.typed +0 -0
  34. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/test_client.py +0 -0
  35. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/auth/types.py +0 -0
  36. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/__init__.py +0 -0
  37. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/bed.py +0 -0
  38. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/client.py +0 -0
  39. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/client_core.py +0 -0
  40. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/data.py +0 -0
  41. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/__init__.py +0 -0
  42. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/_async.py +0 -0
  43. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/beds.py +0 -0
  44. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/data.py +0 -0
  45. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/lifecycle.py +0 -0
  46. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/fixtures/scenarios.py +0 -0
  47. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/cache/py.typed +0 -0
  48. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/db/__init__.py +0 -0
  49. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/db/bed.py +0 -0
  50. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/db/client.py +0 -0
  51. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/__init__.py +0 -0
  52. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/client.py +0 -0
  53. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/__init__.py +0 -0
  54. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/command_client.py +0 -0
  55. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/py.typed +0 -0
  56. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/query_client.py +0 -0
  57. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/test_bed.py +0 -0
  58. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/components/test_data.py +0 -0
  59. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/__init__.py +0 -0
  60. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/_async.py +0 -0
  61. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/beds.py +0 -0
  62. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/data.py +0 -0
  63. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/handlers.py +0 -0
  64. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/models.py +0 -0
  65. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/fixtures/scenarios.py +0 -0
  66. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/events/py.typed +0 -0
  67. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/search/__init__.py +0 -0
  68. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/search/client.py +0 -0
  69. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/search/fixtures.py +0 -0
  70. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/search/py.typed +0 -0
  71. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/storage/__init__.py +0 -0
  72. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/storage/fixtures.py +0 -0
  73. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/storage/mocks.py +0 -0
  74. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/storage/py.typed +0 -0
  75. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/__init__.py +0 -0
  76. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/bed.py +0 -0
  77. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/client.py +0 -0
  78. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/data.py +0 -0
  79. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/mocks.py +0 -0
  80. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/tasks/py.typed +0 -0
  81. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ui/__init__.py +0 -0
  82. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/ui/core.py +0 -0
  83. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/web/__init__.py +0 -0
  84. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/web/bed.py +0 -0
  85. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/web/client.py +0 -0
  86. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clients/web/py.typed +0 -0
  87. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/clock.py +0 -0
  88. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/__init__.py +0 -0
  89. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/audit.py +0 -0
  90. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/blob_store.py +0 -0
  91. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/cache.py +0 -0
  92. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/database.py +0 -0
  93. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/distributed_lock.py +0 -0
  94. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/event_bus.py +0 -0
  95. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/flags.py +0 -0
  96. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/middleware.py +0 -0
  97. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/notification.py +0 -0
  98. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/queue_backend.py +0 -0
  99. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/repository.py +0 -0
  100. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/search.py +0 -0
  101. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/secrets.py +0 -0
  102. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/task_queue.py +0 -0
  103. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/vector_store.py +0 -0
  104. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/compliance/webhook.py +0 -0
  105. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/config.py +0 -0
  106. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/constants.py +0 -0
  107. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/decorators.py +0 -0
  108. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/di/__init__.py +0 -0
  109. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/events.py +0 -0
  110. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/exceptions.py +0 -0
  111. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/__init__.py +0 -0
  112. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/audit.py +0 -0
  113. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/buses.py +0 -0
  114. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/cache.py +0 -0
  115. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/clock.py +0 -0
  116. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/config.py +0 -0
  117. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/events.py +0 -0
  118. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/governance.py +0 -0
  119. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/lifecycle.py +0 -0
  120. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/logging.py +0 -0
  121. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/monitoring.py +0 -0
  122. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/redis.py +0 -0
  123. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/secrets.py +0 -0
  124. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fakes/tracing.py +0 -0
  125. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/__init__.py +0 -0
  126. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/ai.py +0 -0
  127. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/bed.py +0 -0
  128. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/container.py +0 -0
  129. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/containers.py +0 -0
  130. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/core.py +0 -0
  131. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/db.py +0 -0
  132. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/py.typed +0 -0
  133. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/tasks.py +0 -0
  134. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/fixtures/web.py +0 -0
  135. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/generators.py +0 -0
  136. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/generators_contract.py +0 -0
  137. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/__init__.py +0 -0
  138. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/container.py +0 -0
  139. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/decorators.py +0 -0
  140. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/environment.py +0 -0
  141. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/overrides.py +0 -0
  142. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/harness/testbed.py +0 -0
  143. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/hooks.py +0 -0
  144. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/__init__.py +0 -0
  145. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/cleanup.py +0 -0
  146. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/config.py +0 -0
  147. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/fixtures.py +0 -0
  148. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/markers.py +0 -0
  149. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/integration/probes.py +0 -0
  150. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/__init__.py +0 -0
  151. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/admin_helpers.py +0 -0
  152. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/assertions.py +0 -0
  153. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/async_helper.py +0 -0
  154. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/factory.py +0 -0
  155. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/smoke.py +0 -0
  156. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/snapshots.py +0 -0
  157. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/lib/stubs.py +0 -0
  158. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/__init__.py +0 -0
  159. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/audit.py +0 -0
  160. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/blob_store.py +0 -0
  161. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/cache.py +0 -0
  162. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/config/__init__.py +0 -0
  163. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/config/models.py +0 -0
  164. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/constants.py +0 -0
  165. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/cqrs.py +0 -0
  166. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/di/__init__.py +0 -0
  167. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/di/provider.py +0 -0
  168. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/exceptions.py +0 -0
  169. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/lock.py +0 -0
  170. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/notification.py +0 -0
  171. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/outbox.py +0 -0
  172. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/queue.py +0 -0
  173. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/repository.py +0 -0
  174. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/search.py +0 -0
  175. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/memory/uow.py +0 -0
  176. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/mocks/__init__.py +0 -0
  177. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/mocks/base.py +0 -0
  178. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/mocks/test_provider.py +0 -0
  179. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/module.py +0 -0
  180. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/plugins/__init__.py +0 -0
  181. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/plugins/pytest/__init__.py +0 -0
  182. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/plugins/pytest/plugin.py +0 -0
  183. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/protocols.py +0 -0
  184. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/py.typed +0 -0
  185. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/testkit/__init__.py +0 -0
  186. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/testkit/assertions.py +0 -0
  187. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/testkit/environment.py +0 -0
  188. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/testkit/fakes.py +0 -0
  189. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/testkit/fixtures.py +0 -0
  190. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/types.py +0 -0
  191. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/websocket/__init__.py +0 -0
  192. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/websocket/client.py +0 -0
  193. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/workflow/__init__.py +0 -0
  194. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/src/quadkit/testing/workflow/harness.py +0 -0
  195. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/__snapshots__/test_snapshot_function.json +0 -0
  196. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/conftest.py +0 -0
  197. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/integration/test_ai_client.py +0 -0
  198. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/integration/test_bed.py +0 -0
  199. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/integration/test_web_client.py +0 -0
  200. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/test_package_structure_p1.py +0 -0
  201. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/__snapshots__/test_snapshot_function.json +0 -0
  202. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/_integration_helpers.py +0 -0
  203. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/conftest.py +0 -0
  204. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_ai_client_budget.py +0 -0
  205. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_ai_clients.py +0 -0
  206. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_app_testbed.py +0 -0
  207. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_app_testbed_from_factory_overrides.py +0 -0
  208. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_assertion_helpers.py +0 -0
  209. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_async_helper.py +0 -0
  210. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_cache_client_fixtures.py +0 -0
  211. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_cache_clients.py +0 -0
  212. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_command_query_test_clients.py +0 -0
  213. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_compliance_suites.py +0 -0
  214. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_container.py +0 -0
  215. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_container_bind.py +0 -0
  216. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_container_factory_auto_registration.py +0 -0
  217. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_container_try_resolve.py +0 -0
  218. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_db_clients.py +0 -0
  219. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_db_transaction_fixture.py +0 -0
  220. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_environment_lifecycle.py +0 -0
  221. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_event_test_client.py +0 -0
  222. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_exceptions.py +0 -0
  223. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_factory.py +0 -0
  224. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fake_audit.py +0 -0
  225. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fake_event_bus_ordering.py +0 -0
  226. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fake_tracer.py +0 -0
  227. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fakes.py +0 -0
  228. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fakes_cluster.py +0 -0
  229. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fakes_lifecycle.py +0 -0
  230. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fakes_observability.py +0 -0
  231. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_fixture_modules.py +0 -0
  232. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_generators_util.py +0 -0
  233. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_harness_container.py +0 -0
  234. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_harness_testkit.py +0 -0
  235. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_integration_cleanup.py +0 -0
  236. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_integration_cluster.py +0 -0
  237. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_integration_environment.py +0 -0
  238. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_integration_fixtures.py +0 -0
  239. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_integration_probes.py +0 -0
  240. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_lib_admin_client.py +0 -0
  241. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_lib_async_helpers.py +0 -0
  242. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_lib_helpers.py +0 -0
  243. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_backends.py +0 -0
  244. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_cqrs.py +0 -0
  245. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_event_bus.py +0 -0
  246. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_lock.py +0 -0
  247. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_outbox.py +0 -0
  248. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_memory_repository.py +0 -0
  249. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_mocks.py +0 -0
  250. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_mocks_cluster.py +0 -0
  251. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_override_context_manager_revert.py +0 -0
  252. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_plugin.py +0 -0
  253. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_public_exports.py +0 -0
  254. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_pytest_plugin_fixtures.py +0 -0
  255. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_round33_hardening.py +0 -0
  256. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_service_probe_connectivity.py +0 -0
  257. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_small_modules.py +0 -0
  258. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_smoke.py +0 -0
  259. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_snapshot_asserter_create_compare.py +0 -0
  260. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_snapshots.py +0 -0
  261. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_stubs.py +0 -0
  262. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_subpackage_exports.py +0 -0
  263. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_tasks_clients.py +0 -0
  264. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_test_environment.py +0 -0
  265. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_test_environment_facade.py +0 -0
  266. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_test_environment_overrides.py +0 -0
  267. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_testing_constants.py +0 -0
  268. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_testing_module.py +0 -0
  269. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_testing_stack_scenario.py +0 -0
  270. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_testing_utils.py +0 -0
  271. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_testkit_surface.py +0 -0
  272. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_utilities.py +0 -0
  273. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_web_clients.py +0 -0
  274. {quadkit_testing-0.0.4 → quadkit_testing-0.0.42}/tests/unit/test_workflow_websocket_plugins.py +0 -0
@@ -149,6 +149,27 @@ apps/**/*.pyc
149
149
  apps/**/*.db
150
150
  apps/**/*.db-wal
151
151
  apps/**/*.db-shm
152
+ apps/**/.env
153
+ apps/**/.env.*
154
+ !apps/**/.env.example
155
+ !apps/**/.env.full.example
156
+
157
+ # Piccolina — nested app tracked in this monorepo (standalone .git removed).
158
+ # Keep marketing packages and deployment secrets out of the tree.
159
+ apps/piccolina/piccolina-marketing/
160
+ apps/piccolina/piccolina-marketing-plans/
161
+ apps/piccolina/secrets/
162
+ apps/piccolina/**/secrets/
163
+ apps/piccolina/**/*.pem
164
+ apps/piccolina/**/*.key
165
+ apps/piccolina/**/.venv/
166
+ apps/piccolina/**/node_modules/
167
+ apps/piccolina/**/__pycache__/
168
+ apps/piccolina/**/*.pyc
169
+ apps/piccolina/**/*.pbf
170
+ apps/piccolina/**/.open-next/
171
+ apps/piccolina/**/storage/
172
+ apps/piccolina/**/.deploy-host
152
173
 
153
174
  # Re-exclude private content under the tiered paths.
154
175
  # MUST come after the !...docs/** negations above — last match wins.
@@ -180,4 +201,14 @@ test.db
180
201
  !packages/*/quadkit*/docs/gifs/
181
202
  !packages/*/quadkit*/docs/gifs/**
182
203
  examples/*/screenshot.png
183
- !banner*
204
+ !banner*
205
+ apps/quadkit-playground/**/node_modules/
206
+ apps/quadkit-playground/**/dist/
207
+ apps/quadkit-playground/**/__pycache__/
208
+ apps/quadkit-playground/**/*.pyc
209
+ apps/quadkit-playground/**/*.db
210
+ apps/quadkit-playground/**/*.db-wal
211
+ apps/quadkit-playground/**/*.db-shm
212
+ apps/quadkit-playground/projects/
213
+ apps/quadkit-playground/quadkit/
214
+ docs/superpowers/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: quadkit-testing
3
- Version: 0.0.4
3
+ Version: 0.0.42
4
4
  Summary: Centralized testing infrastructure for Quadkit Framework - Fixtures, factories, and utilities
5
5
  Project-URL: Homepage, https://dbtinoy-.github.io/quadkit/
6
6
  Project-URL: Repository, https://github.com/dbtinoy-/quadkit
@@ -250,10 +250,10 @@ vulnerabilities privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/
250
250
 
251
251
  ## Stability
252
252
 
253
- Version `0.0.3` in the `0.x` series, released in lockstep with the
253
+ Version `0.0.42` in the `0.x` series, released in lockstep with the
254
254
  other four distributions; APIs may change between minor versions until
255
- 1.0 — pin an exact version (`quadkit-testing==0.0.3`) or a tight range
256
- (`>=0.0.3,<0.1.0`). Full policy:
255
+ 1.0 — pin an exact version (`quadkit-testing==0.0.42`) or a tight range
256
+ (`>=0.0.42,<0.1.0`). Full policy:
257
257
  [stability and compatibility](https://dbtinoy-.github.io/quadkit/reference/stability/).
258
258
 
259
259
  ## Links
@@ -178,10 +178,10 @@ vulnerabilities privately per [SECURITY.md](https://github.com/dbtinoy-/quadkit/
178
178
 
179
179
  ## Stability
180
180
 
181
- Version `0.0.3` in the `0.x` series, released in lockstep with the
181
+ Version `0.0.42` in the `0.x` series, released in lockstep with the
182
182
  other four distributions; APIs may change between minor versions until
183
- 1.0 — pin an exact version (`quadkit-testing==0.0.3`) or a tight range
184
- (`>=0.0.3,<0.1.0`). Full policy:
183
+ 1.0 — pin an exact version (`quadkit-testing==0.0.42`) or a tight range
184
+ (`>=0.0.42,<0.1.0`). Full policy:
185
185
  [stability and compatibility](https://dbtinoy-.github.io/quadkit/reference/stability/).
186
186
 
187
187
  ## Links
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "quadkit-testing"
9
- version = "0.0.4"
9
+ version = "0.0.42"
10
10
  description = "Centralized testing infrastructure for Quadkit Framework - Fixtures, factories, and utilities"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -83,7 +83,7 @@ class EventTestClient:
83
83
  event_type: The event type to subscribe to
84
84
  handler: The handler function or class
85
85
  """
86
- self.event_bus.subscribe(event_type, handler) # type: ignore[arg-type]
86
+ self.event_bus.subscribe(event_type, handler)
87
87
 
88
88
  async def unsubscribe_handler(
89
89
  self,
@@ -99,7 +99,9 @@ class EventTestClient:
99
99
  Returns:
100
100
  True if handler was unsubscribed
101
101
  """
102
- return self.event_bus.unsubscribe(event_type, handler) # type: ignore[func-returns-value,return-value,arg-type]
102
+ # The protocol's unsubscribe is ``-> None``; this client reports whether
103
+ # a subscription was removed, which is the API its callers use.
104
+ return self.event_bus.unsubscribe(event_type, handler) # type: ignore[func-returns-value,return-value]
103
105
 
104
106
  def get_published_events(
105
107
  self,
@@ -186,7 +188,7 @@ class EventTestClient:
186
188
 
187
189
  # Subscribe handler temporarily
188
190
  event_type = type(event)
189
- self.event_bus.subscribe(event_type, handler) # type: ignore[arg-type]
191
+ self.event_bus.subscribe(event_type, handler)
190
192
 
191
193
  try:
192
194
  # Publish event
@@ -202,7 +204,7 @@ class EventTestClient:
202
204
 
203
205
  finally:
204
206
  # Cleanup
205
- self.event_bus.unsubscribe(event_type, handler) # type: ignore[arg-type]
207
+ self.event_bus.unsubscribe(event_type, handler)
206
208
 
207
209
  def clear_published_events(self) -> None:
208
210
  """Clear the published events history."""
@@ -18,7 +18,7 @@ from quadkit.contracts.events import EventBusProtocol as EventBusProtocol
18
18
  from quadkit.contracts.events import EventHandlerProtocol
19
19
 
20
20
  if TYPE_CHECKING:
21
- from collections.abc import Callable
21
+ from collections.abc import Awaitable, Callable
22
22
 
23
23
  from quadkit.contracts.core import MiddlewarePipelineProtocol
24
24
  from quadkit.contracts.domain.events import DomainEvent
@@ -76,11 +76,14 @@ class InMemoryEventBus(EventBusProtocol):
76
76
  the originating request context.
77
77
  """
78
78
  # handlers stored as (priority, handler) tuples, sorted by priority
79
- self._handlers: dict[type | str, list[tuple[int, EventHandlerProtocol]]] = (
80
- defaultdict(list)
81
- )
79
+ self._handlers: dict[
80
+ type | str,
81
+ list[tuple[int, EventHandlerProtocol | Callable[..., Awaitable[Any]]]],
82
+ ] = defaultdict(list)
82
83
  # wildcard subscriptions receive every published event regardless of type
83
- self._wildcard_handlers: list[tuple[int, EventHandlerProtocol]] = []
84
+ self._wildcard_handlers: list[
85
+ tuple[int, EventHandlerProtocol | Callable[..., Awaitable[Any]]]
86
+ ] = []
84
87
  from quadkit.app.pipeline import (
85
88
  MiddlewarePipeline as _MiddlewarePipeline,
86
89
  )
@@ -98,7 +101,7 @@ class InMemoryEventBus(EventBusProtocol):
98
101
  def subscribe(
99
102
  self,
100
103
  event_type: type | str,
101
- handler: EventHandlerProtocol,
104
+ handler: EventHandlerProtocol | Callable[..., Awaitable[Any]],
102
105
  *,
103
106
  priority: int = 0,
104
107
  ) -> None:
@@ -121,7 +124,9 @@ class InMemoryEventBus(EventBusProtocol):
121
124
  self._handlers[event_type].sort(key=lambda entry: entry[0])
122
125
 
123
126
  def unsubscribe(
124
- self, event_type: type | str, handler: EventHandlerProtocol
127
+ self,
128
+ event_type: type | str,
129
+ handler: EventHandlerProtocol | Callable[..., Awaitable[Any]],
125
130
  ) -> None:
126
131
  """Remove a previously registered handler for an event type.
127
132
 
@@ -141,6 +146,15 @@ class InMemoryEventBus(EventBusProtocol):
141
146
  return
142
147
  self._handlers[event_type] = [(p, h) for p, h in handlers if h is not handler]
143
148
 
149
+ async def flush(self) -> None:
150
+ """Wait until all pending events have been dispatched.
151
+
152
+ A no-op here: ``publish`` awaits every handler before it returns, so
153
+ this engine never has an in-flight dispatch to drain. The member
154
+ exists because ``EventBusProtocol`` declares it — the flagship bus
155
+ dispatches in the background and does need it.
156
+ """
157
+
144
158
  def add_middleware(self, middleware: Any) -> None:
145
159
  """Add a middleware function to the event processing chain.
146
160
 
File without changes