df-test-framework 4.3.1__tar.gz → 4.4.2__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 (885) hide show
  1. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/CHANGELOG.md +66 -0
  2. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/CLAUDE.md +18 -0
  3. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/PKG-INFO +1 -1
  4. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/testing.md +20 -1
  5. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/failure-diagnosis-hook-example.py +4 -2
  6. df_test_framework-4.4.2/docs/guides/fixture_chain_pattern.md +224 -0
  7. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/fixtures_guide.md +68 -2
  8. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/local_debug_quickstart.md +20 -4
  9. df_test_framework-4.4.2/docs/guides/sanitize_guide.md +186 -0
  10. df_test_framework-4.4.2/docs/guides/service_client_guide.md +451 -0
  11. df_test_framework-4.4.2/docs/releases/v4.4.0.md +111 -0
  12. df_test_framework-4.4.2/docs/releases/v4.4.1.md +239 -0
  13. df_test_framework-4.4.2/docs/releases/v4.4.2.md +96 -0
  14. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/pyproject.toml +1 -1
  15. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/__init__.py +12 -2
  16. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/client.py +0 -15
  17. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/init_cmd.py +5 -0
  18. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/__init__.py +2 -0
  19. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/env_files.py +18 -18
  20. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/__init__.py +2 -0
  21. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/conftest.py +13 -0
  22. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/enhanced_gitignore.py +1 -1
  23. df_test_framework-4.4.2/src/df_test_framework/cli/templates/project/fixture_chain_example.py +236 -0
  24. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/fixtures_init.py +8 -0
  25. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/full_conftest.py +13 -0
  26. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/readme.py +6 -2
  27. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/events/bus.py +0 -5
  28. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/logging/config.py +1 -1
  29. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/logging/observability.py +2 -2
  30. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/sanitize/__init__.py +9 -5
  31. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/sanitize/service.py +61 -27
  32. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/debugging/console.py +1 -8
  33. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/decorators/__init__.py +3 -0
  34. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/decorators/service_client.py +79 -0
  35. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/cleanup.py +0 -2
  36. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/core.py +0 -1
  37. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/debugging.py +91 -43
  38. df_test_framework-4.4.2/src/df_test_framework/testing/fixtures/http_recorder.py +266 -0
  39. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/reporting/allure/observer.py +3 -12
  40. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/sanitize/test_service.py +50 -33
  41. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/decorators/test_service_client.py +85 -0
  42. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_fixtures_debugging.py +102 -0
  43. df_test_framework-4.4.2/tests/testing/fixtures/test_http_recorder.py +84 -0
  44. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/uv.lock +98 -98
  45. df_test_framework-4.3.1/docs/guides/sanitize_guide.md +0 -351
  46. df_test_framework-4.3.1/docs/guides/service_client_guide.md +0 -283
  47. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.editorconfig +0 -0
  48. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.env.example +0 -0
  49. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.gitattributes +0 -0
  50. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/README.md +0 -0
  51. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/lint.yml +0 -0
  52. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/release.yml +0 -0
  53. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/scheduled.yml +0 -0
  54. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/security.yml +0 -0
  55. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.github/workflows/test.yml +0 -0
  56. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.gitignore +0 -0
  57. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.gitleaks.toml +0 -0
  58. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.gitleaksignore +0 -0
  59. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.pre-commit-config.yaml +0 -0
  60. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/.python-version +0 -0
  61. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/AGENTS.md +0 -0
  62. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/CONTRIBUTING.md +0 -0
  63. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/README.md +0 -0
  64. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/README_PYPI.md +0 -0
  65. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/CONTRIBUTOR_GUIDE.md +0 -0
  66. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/DOC_REORGANIZATION_PLAN_v4.0.md +0 -0
  67. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/ESSENTIAL_DOCS.md +0 -0
  68. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/FAQ.md +0 -0
  69. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/LEARNING_PATH.md +0 -0
  70. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/README.md +0 -0
  71. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/README.md +0 -0
  72. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/clients.md +0 -0
  73. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/README.md +0 -0
  74. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/context.md +0 -0
  75. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/events.md +0 -0
  76. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/exceptions.md +0 -0
  77. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/middleware.md +0 -0
  78. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/protocols.md +0 -0
  79. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core/types.md +0 -0
  80. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/core.md +0 -0
  81. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/databases.md +0 -0
  82. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/drivers.md +0 -0
  83. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/extensions.md +0 -0
  84. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/infrastructure.md +0 -0
  85. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/api-reference/patterns.md +0 -0
  86. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/ARCHITECTURE_V4.0.md +0 -0
  87. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/CODE_STRUCTURE.md +0 -0
  88. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/PLUGIN_SYSTEM_V3.37.md +0 -0
  89. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/README.md +0 -0
  90. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/TEST_EXECUTION_LIFECYCLE.md +0 -0
  91. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/README.md +0 -0
  92. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/REFACTORING_PLAN_V3.md +0 -0
  93. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/REFACTORING_PLAN_V3_REVISED.md +0 -0
  94. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/DI_STRATEGY.md +0 -0
  95. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/PREPARE_DATA_DESIGN.md +0 -0
  96. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/TESTING_MODULE_OPTIMIZATION.md +0 -0
  97. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/UOW_CLEANUP_ARCHITECTURE.md +0 -0
  98. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/UOW_REFACTORING_PROPOSAL.md +0 -0
  99. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/allure_integration_modes.md +0 -0
  100. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/capability_plan_vs_current.md +0 -0
  101. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/config-driven-design.md +0 -0
  102. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/config-management-analysis.md +0 -0
  103. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/eventbus-integration-analysis.md +0 -0
  104. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/failure-diagnosis-v2-design.md +0 -0
  105. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/future_allure_plugin_plans.md +0 -0
  106. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/http-vs-web-comparison.md +0 -0
  107. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/observability-debugging-unification.md +0 -0
  108. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/provider-pattern-deep-dive.md +0 -0
  109. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/tech-debt-cleanup-plan.md +0 -0
  110. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/ui-failure-diagnosis-implementation-v3.46.3.md +0 -0
  111. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/design/ui-observability-design.md +0 -0
  112. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/discussion_1_initial_issues.md +0 -0
  113. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/v3_complete_draft.md +0 -0
  114. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/v3_final_draft.md +0 -0
  115. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/FRAMEWORK_ARCHITECTURE_v3.6.2.md +0 -0
  116. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/OVERVIEW_V3.17.md +0 -0
  117. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/V3.14_ENTERPRISE_PLATFORM_DESIGN.md +0 -0
  118. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/V3.16_LAYER4_BOOTSTRAP_ARCHITECTURE.md +0 -0
  119. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/V3.17_EVENT_SYSTEM_REDESIGN.md +0 -0
  120. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/V3_ARCHITECTURE.md +0 -0
  121. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/V3_IMPLEMENTATION.md +0 -0
  122. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/overview.md +0 -0
  123. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/archive/versions/v2-architecture.md +0 -0
  124. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/extension-points.md +0 -0
  125. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/multi-project-reuse.md +0 -0
  126. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/observability-architecture.md +0 -0
  127. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture/test-type-support.md +0 -0
  128. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/architecture//344/272/224/345/261/202/346/236/266/346/236/204/350/257/246/350/247/243.md" +0 -0
  129. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/README.md +0 -0
  130. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/ACTION_PLAN_v2.0.md +0 -0
  131. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/AUDIT_VERIFICATION_REPORT.md +0 -0
  132. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/AUTH_PLACEMENT_ANALYSIS.md +0 -0
  133. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/CODE_REVIEW_f95e08cd.md +0 -0
  134. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/COMPREHENSIVE_FEATURE_AUDIT.md +0 -0
  135. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/FRAMEWORK_OPTIMIZATION_ANALYSIS_2025.md +0 -0
  136. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/PHASE2_COMPARISON_ANALYSIS.md +0 -0
  137. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/PHASE2_COMPLETION_REPORT.md +0 -0
  138. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/PHASE2_SUMMARY.md +0 -0
  139. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/README.md +0 -0
  140. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis/V3_REFACTORING_COMPLETE.md +0 -0
  141. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/ALLURE_HTTP_LOGGING_ISSUE.md +0 -0
  142. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_CHECK_REPORT.md +0 -0
  143. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_DESIGN.md +0 -0
  144. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_SUMMARY.md +0 -0
  145. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/ALLURE_ROOT_CAUSE_ANALYSIS.md +0 -0
  146. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/CODE_ANALYSIS_AND_PROGRESS.md +0 -0
  147. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/COMPREHENSIVE_FRAMEWORK_EVALUATION.md +0 -0
  148. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/analysis_2025/CONFIG_MODERNIZATION_ANALYSIS.md +0 -0
  149. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/ARCHITECTURE_AUDIT.md +0 -0
  150. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/FUTURE_ENHANCEMENTS.md +0 -0
  151. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/IMPLEMENTATION_SUMMARY.md +0 -0
  152. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/MIDDLEWARE_V3.14_DESIGN.md +0 -0
  153. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/ROADMAP_V3.29_ENHANCEMENTS.md +0 -0
  154. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/SIGNATURE_FRAMEWORK_CAPABILITIES.md +0 -0
  155. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/TEMPLATE_DEBUG_FIXTURES_ISSUE.md +0 -0
  156. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/observability-config-design.md +0 -0
  157. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/ui-best-practices-2026.md +0 -0
  158. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/web-architecture-consistency-design.md +0 -0
  159. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/design/web-event-driven-comparison.md +0 -0
  160. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/evaluations_2025/DUAL_AI_ANALYSIS_COMPARISON.md +0 -0
  161. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/evaluations_2025/FRAMEWORK_ASSESSMENT.md +0 -0
  162. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/evaluations_2025/FRAMEWORK_BEST_PRACTICES_UPDATE.md +0 -0
  163. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/evaluations_2025/FRAMEWORK_CAPABILITIES.md +0 -0
  164. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/evaluations_2025/FRAMEWORK_IMPROVEMENT_PROPOSALS.md +0 -0
  165. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/async_database_guide.md +0 -0
  166. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/async_http_client.md +0 -0
  167. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/httpx_advanced_usage.md +0 -0
  168. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/logging_configuration.md +0 -0
  169. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/logging_pytest_integration.md +0 -0
  170. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/modern_logging_best_practices.md +0 -0
  171. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/guides/repository_uow_guide.md +0 -0
  172. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/111.md +0 -0
  173. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/CONFIG_AND_INTERCEPTOR_INTEGRATION.md +0 -0
  174. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/DIRECTORY_STRUCTURE_REFACTORING.md +0 -0
  175. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE.md +0 -0
  176. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE_VERIFICATION.md +0 -0
  177. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_CONFIG_BEST_PRACTICES.md +0 -0
  178. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_DESIGN.md +0 -0
  179. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_VS_ACTUAL.md +0 -0
  180. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_LOCATION_DECISION.md +0 -0
  181. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_NAMING_STANDARDS.md +0 -0
  182. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_PERFORMANCE_ANALYSIS.md +0 -0
  183. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/README.md +0 -0
  184. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/REFACTORING_IMPLEMENTATION_PLAN.md +0 -0
  185. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/interceptor_refactoring/REFACTORING_PROGRESS.md +0 -0
  186. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/issues/README.md +0 -0
  187. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/issues/summary.md +0 -0
  188. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/issues/v1.md +0 -0
  189. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/migration/README.md +0 -0
  190. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/migration/v3.15-to-v3.16.md +0 -0
  191. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/CAPABILITY_LAYER_OPTIMIZATION.md +0 -0
  192. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/REFACTORING_PLAN_v2.md +0 -0
  193. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/REFACTORING_TASKS_v2.md +0 -0
  194. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/RFC_MULTIPART_FORM_DATA_SUPPORT.md +0 -0
  195. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/RFC_MULTIPART_IMPLEMENTATION_CODE.md +0 -0
  196. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/UV_SYNC_MIGRATION_SUMMARY.md +0 -0
  197. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/UV_SYNC_QUICK_START.md +0 -0
  198. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/plans/v2-migration-plan-draft.md +0 -0
  199. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/CHANGELOG_AUDIT_REPORT.md +0 -0
  200. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/CODE_QUALITY_FIXES_2025-11-09.md +0 -0
  201. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/CORE_DOCS_UPDATE_PLAN.md +0 -0
  202. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOCUMENTATION_AUDIT_REPORT_2025-12-05.md +0 -0
  203. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOCUMENTATION_CLEANUP_SUMMARY.md +0 -0
  204. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOCUMENTATION_INDEX.md +0 -0
  205. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOCUMENTATION_MAINTENANCE_COMPLETE.md +0 -0
  206. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOCUMENTATION_UPDATE_CHECKLIST.md +0 -0
  207. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/DOC_UPDATE_SUMMARY.md +0 -0
  208. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/IMPROVEMENTS_2025-01-09.md +0 -0
  209. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/PHASE3_COMPLETION_REPORT.md +0 -0
  210. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/PYTHON_VERSION_UNIFICATION.md +0 -0
  211. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/REFACTORING_COMPLETION_CHECK.md +0 -0
  212. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/TEST_CODE_GENERATION_ANALYSIS.md +0 -0
  213. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.3.0_DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
  214. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.3.0_MIGRATION_CHECKLIST.md +0 -0
  215. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_ALLURE_INTEGRATION_PLAN.md +0 -0
  216. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_DOCUMENTATION_COMPLETE.md +0 -0
  217. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_OBSERVABILITY_FINAL_STATUS.md +0 -0
  218. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_PHASE2_ACCEPTANCE_REPORT.md +0 -0
  219. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN.md +0 -0
  220. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN_REVISED.md +0 -0
  221. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/VERIFIED_BEST_PRACTICES_INTEGRATION_COMPLETE.md +0 -0
  222. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/reports_2025/async_http_client_design.md +0 -0
  223. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/user-guide/PHASE3_FEATURES.md +0 -0
  224. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/user-guide/extensions.md +0 -0
  225. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/user-guide/ui-testing.md +0 -0
  226. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/BaseAPI/346/234/200/344/275/263/345/256/236/350/267/265/346/214/207/345/215/227.md" +0 -0
  227. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/FRAMEWORK_DESIGN_PRINCIPLES.md +0 -0
  228. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/README.md +0 -0
  229. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/UPGRADE_SUMMARY_v1.3.1.md +0 -0
  230. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/architecture.md +0 -0
  231. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/best-practices.md +0 -0
  232. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/config-integration-guide.md +0 -0
  233. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/optimization-report.md +0 -0
  234. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1/publishing.md +0 -0
  235. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/v1//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251/346/265/213/350/257/225/346/241/206/346/236/266.md" +0 -0
  236. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/versions/QUICK_START_V3.14.md +0 -0
  237. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/archive/versions/QUICK_START_V3.5.md +0 -0
  238. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/ci-templates/README.md +0 -0
  239. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/ci-templates/github-actions.yml +0 -0
  240. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/ci-templates/gitlab-ci.yml +0 -0
  241. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/development/DOCUMENTATION_MAINTENANCE.md +0 -0
  242. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/development/FRAMEWORK_DEPENDENCY_MANAGEMENT.md +0 -0
  243. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/development/RELEASE.md +0 -0
  244. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/development/VERSION_CONTROL_RULES.md +0 -0
  245. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/development/local-development.md +0 -0
  246. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/DECIMAL_GUIDE.md +0 -0
  247. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/allure_plugin.md +0 -0
  248. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/assertions_guide.md +0 -0
  249. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/async_api_guide.md +0 -0
  250. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/auth_session_guide.md +0 -0
  251. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/bootstrap_guide.md +0 -0
  252. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/config_guide.md +0 -0
  253. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/database_guide.md +0 -0
  254. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/decorators_guide.md +0 -0
  255. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/distributed_tracing.md +0 -0
  256. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/event_bus_guide.md +0 -0
  257. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/extensions.md +0 -0
  258. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/factory_guide.md +0 -0
  259. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/graphql_client.md +0 -0
  260. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/grpc_client.md +0 -0
  261. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/helpers_guide.md +0 -0
  262. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/http_client_guide.md +0 -0
  263. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/integration-guide.md +0 -0
  264. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/logging_guide.md +0 -0
  265. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/message_queue.md +0 -0
  266. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/middleware_guide.md +0 -0
  267. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/mocking.md +0 -0
  268. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/monitoring_plugin.md +0 -0
  269. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/openapi_guide.md +0 -0
  270. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/plugins_guide.md +0 -0
  271. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/prometheus_metrics.md +0 -0
  272. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/redis_guide.md +0 -0
  273. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/resilience_guide.md +0 -0
  274. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/scaffold_cli_guide.md +0 -0
  275. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/storage.md +0 -0
  276. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/telemetry_guide.md +0 -0
  277. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/test_data.md +0 -0
  278. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/test_data_cleanup.md +0 -0
  279. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/testing-development.md +0 -0
  280. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/guides/web-ui-testing.md +0 -0
  281. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/migration/README.md +0 -0
  282. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/migration/v3-to-v4.md +0 -0
  283. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/README.md +0 -0
  284. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.0.0-alpha.md +0 -0
  285. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.1.0.md +0 -0
  286. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.10.0.md +0 -0
  287. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.11.0.md +0 -0
  288. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.11.1.md +0 -0
  289. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.12.0.md +0 -0
  290. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.12.1.md +0 -0
  291. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.13.0.md +0 -0
  292. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.14.0.md +0 -0
  293. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.14.0_completion_report.md +0 -0
  294. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.14.0_implementation_complete.md +0 -0
  295. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.16.0.md +0 -0
  296. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.17.0.md +0 -0
  297. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.17.1.md +0 -0
  298. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.17.2.md +0 -0
  299. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.18.0.md +0 -0
  300. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.18.1-bugfix.md +0 -0
  301. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.18.1.md +0 -0
  302. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.19.0.md +0 -0
  303. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.2.0.md +0 -0
  304. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.20.0.md +0 -0
  305. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.21.0.md +0 -0
  306. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.22.0.md +0 -0
  307. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.22.1.md +0 -0
  308. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.23.0.md +0 -0
  309. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.24.0.md +0 -0
  310. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.25.0.md +0 -0
  311. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.26.0.md +0 -0
  312. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.27.0.md +0 -0
  313. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.28.0.md +0 -0
  314. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.28.1.md +0 -0
  315. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.29.0.md +0 -0
  316. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.3.0.md +0 -0
  317. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.30.0.md +0 -0
  318. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.31.0.md +0 -0
  319. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.32.0.md +0 -0
  320. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.33.0.md +0 -0
  321. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.34.0.md +0 -0
  322. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.34.1.md +0 -0
  323. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.0.md +0 -0
  324. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.1.md +0 -0
  325. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.2.md +0 -0
  326. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.3.md +0 -0
  327. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.4.md +0 -0
  328. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.5.md +0 -0
  329. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.6.md +0 -0
  330. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.35.7.md +0 -0
  331. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.36.0.md +0 -0
  332. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.36.1.md +0 -0
  333. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.37.0.md +0 -0
  334. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.0.md +0 -0
  335. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.10.md +0 -0
  336. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.2.md +0 -0
  337. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.4.md +0 -0
  338. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.5.md +0 -0
  339. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.7.md +0 -0
  340. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.8.md +0 -0
  341. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.38.9.md +0 -0
  342. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.39.0.md +0 -0
  343. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.39.1.md +0 -0
  344. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.4.0.md +0 -0
  345. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.40.0.md +0 -0
  346. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.41.0.md +0 -0
  347. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.41.1.md +0 -0
  348. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.42.0.md +0 -0
  349. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.43.0.md +0 -0
  350. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.44.0.md +0 -0
  351. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.45.0.md +0 -0
  352. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.46.1.md +0 -0
  353. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.46.2.md +0 -0
  354. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.46.3.md +0 -0
  355. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.5.0.md +0 -0
  356. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.6.0.md +0 -0
  357. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.6.1.md +0 -0
  358. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.6.2.md +0 -0
  359. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.7.0.md +0 -0
  360. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.8.0.md +0 -0
  361. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v3.9.0.md +0 -0
  362. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.0.0.md +0 -0
  363. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.0.1.md +0 -0
  364. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.0.2.md +0 -0
  365. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.0.3.md +0 -0
  366. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.0.4.md +0 -0
  367. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.1.0.md +0 -0
  368. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.1.1.md +0 -0
  369. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.1.2.md +0 -0
  370. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.2.0.md +0 -0
  371. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.2.1.md +0 -0
  372. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.2.2.md +0 -0
  373. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.3.0.md +0 -0
  374. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/releases/v4.3.1.md +0 -0
  375. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/skills/write-code.zip +0 -0
  376. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/skills/write-test.zip +0 -0
  377. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/troubleshooting/README.md +0 -0
  378. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/troubleshooting/common-errors.md +0 -0
  379. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/troubleshooting/debugging-guide.md +0 -0
  380. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/BEST_PRACTICES.md +0 -0
  381. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/QUICK_REFERENCE.md +0 -0
  382. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/QUICK_START.md +0 -0
  383. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/README.md +0 -0
  384. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/USER_MANUAL.md +0 -0
  385. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/VERIFIED_BEST_PRACTICES.md +0 -0
  386. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/ci-cd.md +0 -0
  387. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/code-generation.md +0 -0
  388. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/configuration.md +0 -0
  389. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/cross-project-sharing.md +0 -0
  390. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/debugging.md +0 -0
  391. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/examples.md +0 -0
  392. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/multi-repo.md +0 -0
  393. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/nested-settings-guide.md +0 -0
  394. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/docs/user-guide/security-best-practices.md +0 -0
  395. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/01-basic/README.md +0 -0
  396. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/01-basic/database_operations.py +0 -0
  397. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/01-basic/http_client_usage.py +0 -0
  398. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/01-basic/redis_cache.py +0 -0
  399. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/01-basic/storage_usage.py +0 -0
  400. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/02-bootstrap/README.md +0 -0
  401. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/02-bootstrap/custom_providers.py +0 -0
  402. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/02-bootstrap/custom_settings.py +0 -0
  403. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/02-bootstrap/minimal_bootstrap.py +0 -0
  404. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/02-bootstrap/with_extensions.py +0 -0
  405. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/03-testing/README.md +0 -0
  406. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/03-testing/conftest.py +0 -0
  407. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/03-testing/test_api.py +0 -0
  408. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/03-testing/test_database.py +0 -0
  409. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/03-testing/test_with_fixtures.py +0 -0
  410. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/04-patterns/README.md +0 -0
  411. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/04-patterns/builder_pattern.py +0 -0
  412. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/04-patterns/combined_patterns.py +0 -0
  413. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/04-patterns/repository_pattern.py +0 -0
  414. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/README.md +0 -0
  415. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/allure_enhancement_extension.py +0 -0
  416. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/custom_extension.py +0 -0
  417. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/data_factory_extension.py +0 -0
  418. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/environment_validator_extension.py +0 -0
  419. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/monitoring_extension.py +0 -0
  420. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/mq_monitor_extension.py +0 -0
  421. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/05-extensions/notification_extension.py +0 -0
  422. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/06-ui-testing/README.md +0 -0
  423. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/06-ui-testing/basic_ui_test.py +0 -0
  424. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/06-ui-testing/conftest.py +0 -0
  425. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/06-ui-testing/page_object_example.py +0 -0
  426. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/README.md +0 -0
  427. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/docker-compose-kafka.yml +0 -0
  428. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/docker-compose-rabbitmq.yml +0 -0
  429. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/docker-compose-rocketmq.yml +0 -0
  430. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/kafka_basic.py +0 -0
  431. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/kafka_ssl.py +0 -0
  432. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/rabbitmq_basic.py +0 -0
  433. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/rabbitmq_topic.py +0 -0
  434. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/rocketmq-broker.conf +0 -0
  435. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-message-queue/rocketmq_basic.py +0 -0
  436. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-v35-features/01_configurable_interceptors.py +0 -0
  437. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-v35-features/02_profile_configuration.py +0 -0
  438. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-v35-features/03_runtime_overrides.py +0 -0
  439. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-v35-features/04_observability.py +0 -0
  440. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/07-v35-features/README.md +0 -0
  441. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/01_unit_of_work_basics.py +0 -0
  442. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/02_repository_v37.py +0 -0
  443. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/03_auto_rollback_testing.py +0 -0
  444. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/04_multi_repository_transactions.py +0 -0
  445. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/05_project_uow.py +0 -0
  446. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/06_exception_handling_with_uow.py +0 -0
  447. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/08-v37-features/README.md +0 -0
  448. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/examples/README.md +0 -0
  449. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/scripts/fetch_swagger.py +0 -0
  450. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/scripts/security-scan.bat +0 -0
  451. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/scripts/security-scan.sh +0 -0
  452. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/bootstrap/__init__.py +0 -0
  453. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/bootstrap/bootstrap.py +0 -0
  454. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/bootstrap/providers.py +0 -0
  455. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/bootstrap/runtime.py +0 -0
  456. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/__init__.py +0 -0
  457. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/__init__.py +0 -0
  458. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/__init__.py +0 -0
  459. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/client.py +0 -0
  460. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/middleware/__init__.py +0 -0
  461. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/middleware/base.py +0 -0
  462. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/middleware/event_publisher.py +0 -0
  463. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/middleware/logging.py +0 -0
  464. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/middleware/retry.py +0 -0
  465. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/models.py +0 -0
  466. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/graphql/query_builder.py +0 -0
  467. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/__init__.py +0 -0
  468. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/client.py +0 -0
  469. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/__init__.py +0 -0
  470. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/base.py +0 -0
  471. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/event_publisher.py +0 -0
  472. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/logging.py +0 -0
  473. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/metadata.py +0 -0
  474. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/retry.py +0 -0
  475. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/middleware/timing.py +0 -0
  476. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/grpc/models.py +0 -0
  477. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/__init__.py +0 -0
  478. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/core/__init__.py +0 -0
  479. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/core/request.py +0 -0
  480. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/core/response.py +0 -0
  481. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/__init__.py +0 -0
  482. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/auth.py +0 -0
  483. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/event_publisher.py +0 -0
  484. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/factory.py +0 -0
  485. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/logging.py +0 -0
  486. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/retry.py +0 -0
  487. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/signature.py +0 -0
  488. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/middleware/telemetry.py +0 -0
  489. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/__init__.py +0 -0
  490. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/factory.py +0 -0
  491. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/__init__.py +0 -0
  492. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_base_api.py +0 -0
  493. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_client.py +0 -0
  494. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/base_api.py +0 -0
  495. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/clients/http/rest/protocols.py +0 -0
  496. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/__init__.py +0 -0
  497. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/async_database.py +0 -0
  498. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/database.py +0 -0
  499. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/factory.py +0 -0
  500. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/query_builder.py +0 -0
  501. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/redis/__init__.py +0 -0
  502. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/redis/async_redis.py +0 -0
  503. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/redis/redis_client.py +0 -0
  504. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/repositories/__init__.py +0 -0
  505. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/repositories/base.py +0 -0
  506. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/repositories/query_spec.py +0 -0
  507. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/databases/uow.py +0 -0
  508. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/__init__.py +0 -0
  509. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/__init__.py +0 -0
  510. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/app_actions.py +0 -0
  511. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/async_app_actions.py +0 -0
  512. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/factory.py +0 -0
  513. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/__init__.py +0 -0
  514. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser.py +0 -0
  515. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser_pool.py +0 -0
  516. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_page.py +0 -0
  517. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/browser.py +0 -0
  518. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/component.py +0 -0
  519. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/locator.py +0 -0
  520. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/playwright/page.py +0 -0
  521. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/drivers/web/protocols.py +0 -0
  522. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/__init__.py +0 -0
  523. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/batch/__init__.py +0 -0
  524. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/batch/spark/__init__.py +0 -0
  525. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/olap/__init__.py +0 -0
  526. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/stream/__init__.py +0 -0
  527. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/engines/stream/flink/__init__.py +0 -0
  528. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/__init__.py +0 -0
  529. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/pubsub/__init__.py +0 -0
  530. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/__init__.py +0 -0
  531. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/kafka/__init__.py +0 -0
  532. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/kafka/client.py +0 -0
  533. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/kafka/config.py +0 -0
  534. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/__init__.py +0 -0
  535. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/client.py +0 -0
  536. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/config.py +0 -0
  537. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/__init__.py +0 -0
  538. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/client.py +0 -0
  539. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/config.py +0 -0
  540. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/__init__.py +0 -0
  541. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/blob/__init__.py +0 -0
  542. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/file/__init__.py +0 -0
  543. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/file/local/__init__.py +0 -0
  544. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/file/local/client.py +0 -0
  545. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/file/local/config.py +0 -0
  546. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/__init__.py +0 -0
  547. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/oss/__init__.py +0 -0
  548. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/oss/client.py +0 -0
  549. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/oss/config.py +0 -0
  550. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/s3/__init__.py +0 -0
  551. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/s3/client.py +0 -0
  552. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/capabilities/storages/object/s3/config.py +0 -0
  553. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/__init__.py +0 -0
  554. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/__main__.py +0 -0
  555. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/__init__.py +0 -0
  556. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/cicd.py +0 -0
  557. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/env.py +0 -0
  558. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/generate_cmd.py +0 -0
  559. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/commands/interactive.py +0 -0
  560. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/generators/__init__.py +0 -0
  561. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/generators/json_to_model.py +0 -0
  562. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/generators/openapi_generator.py +0 -0
  563. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/generators/openapi_parser.py +0 -0
  564. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/main.py +0 -0
  565. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/release.yml +0 -0
  566. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/scheduled.yml +0 -0
  567. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/test-full.yml +0 -0
  568. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/test.yml +0 -0
  569. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/.gitlab-ci.yml +0 -0
  570. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/Jenkinsfile +0 -0
  571. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/docker/.dockerignore +0 -0
  572. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/docker/Dockerfile +0 -0
  573. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/cicd/docker/docker-compose.yml +0 -0
  574. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/__init__.py +0 -0
  575. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/actions.py +0 -0
  576. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/api_client.py +0 -0
  577. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/builder.py +0 -0
  578. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/graphql_client.py +0 -0
  579. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/redis_example.py +0 -0
  580. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/repository.py +0 -0
  581. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/settings_enhanced.py +0 -0
  582. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/test.py +0 -0
  583. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/test_complete.py +0 -0
  584. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/generators/test_graphql.py +0 -0
  585. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/async_example_api.py +0 -0
  586. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/async_ui_app_actions.py +0 -0
  587. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/base_api.py +0 -0
  588. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/constants.py +0 -0
  589. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/data_cleaners.py +0 -0
  590. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/docs_api.py +0 -0
  591. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/editorconfig.py +0 -0
  592. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/env.py +0 -0
  593. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/full_settings.py +0 -0
  594. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/gitattributes.py +0 -0
  595. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/gitignore.py +0 -0
  596. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/models_requests_example.py +0 -0
  597. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/models_responses_example.py +0 -0
  598. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/pyproject_toml.py +0 -0
  599. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/script_fetch_swagger.py +0 -0
  600. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/script_run_tests.py +0 -0
  601. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/settings.py +0 -0
  602. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/test_async_example.py +0 -0
  603. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/test_example.py +0 -0
  604. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_app_actions.py +0 -0
  605. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_conftest.py +0 -0
  606. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_fixtures_init.py +0 -0
  607. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_page_object.py +0 -0
  608. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_settings.py +0 -0
  609. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/ui_test_example.py +0 -0
  610. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/uow.py +0 -0
  611. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/user_api_example.py +0 -0
  612. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/utils_converters.py +0 -0
  613. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/utils_validators.py +0 -0
  614. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/templates/project/vscode_settings.py +0 -0
  615. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/cli/utils.py +0 -0
  616. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/__init__.py +0 -0
  617. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/context/__init__.py +0 -0
  618. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/context/execution.py +0 -0
  619. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/context/propagation.py +0 -0
  620. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/decorators.py +0 -0
  621. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/events/__init__.py +0 -0
  622. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/events/types.py +0 -0
  623. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/exceptions.py +0 -0
  624. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/middleware/__init__.py +0 -0
  625. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/middleware/base.py +0 -0
  626. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/middleware/chain.py +0 -0
  627. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/middleware/decorator.py +0 -0
  628. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/middleware/protocol.py +0 -0
  629. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/models/__init__.py +0 -0
  630. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/models/base.py +0 -0
  631. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/__init__.py +0 -0
  632. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/client.py +0 -0
  633. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/event.py +0 -0
  634. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/plugin.py +0 -0
  635. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/repository.py +0 -0
  636. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/protocols/telemetry.py +0 -0
  637. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/core/types.py +0 -0
  638. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/__init__.py +0 -0
  639. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/__init__.py +0 -0
  640. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/loader.py +0 -0
  641. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/middleware_schema.py +0 -0
  642. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/pipeline.py +0 -0
  643. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/schema.py +0 -0
  644. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/settings.py +0 -0
  645. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/config/sources.py +0 -0
  646. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/context/__init__.py +0 -0
  647. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/context/carriers/__init__.py +0 -0
  648. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/context/carriers/grpc.py +0 -0
  649. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/context/carriers/http.py +0 -0
  650. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/context/carriers/mq.py +0 -0
  651. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/events/__init__.py +0 -0
  652. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/events/handlers/__init__.py +0 -0
  653. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/helpers/__init__.py +0 -0
  654. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/helpers/crypto.py +0 -0
  655. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/helpers/hash.py +0 -0
  656. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/helpers/network.py +0 -0
  657. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/helpers/signature.py +0 -0
  658. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/logging/__init__.py +0 -0
  659. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/logging/interface.py +0 -0
  660. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/logging/logger.py +0 -0
  661. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/__init__.py +0 -0
  662. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/decorators.py +0 -0
  663. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/manager.py +0 -0
  664. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/observer.py +0 -0
  665. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/performance.py +0 -0
  666. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/registry.py +0 -0
  667. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/metrics/types.py +0 -0
  668. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/plugins/__init__.py +0 -0
  669. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/plugins/hooks.py +0 -0
  670. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/plugins/manager.py +0 -0
  671. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/resilience/__init__.py +0 -0
  672. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/resilience/circuit_breaker.py +0 -0
  673. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/telemetry/__init__.py +0 -0
  674. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/telemetry/exporters/__init__.py +0 -0
  675. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/telemetry/facade.py +0 -0
  676. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/telemetry/noop.py +0 -0
  677. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/__init__.py +0 -0
  678. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/context.py +0 -0
  679. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/decorators.py +0 -0
  680. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/exporters.py +0 -0
  681. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/integrations/__init__.py +0 -0
  682. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/integrations/database.py +0 -0
  683. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/integrations/sqlalchemy_instrumentation.py +0 -0
  684. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/interceptors/__init__.py +0 -0
  685. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/interceptors/grpc.py +0 -0
  686. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/interceptors/http.py +0 -0
  687. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/infrastructure/tracing/manager.py +0 -0
  688. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/__init__.py +0 -0
  689. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/__init__.py +0 -0
  690. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/monitoring/__init__.py +0 -0
  691. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/monitoring/plugin.py +0 -0
  692. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/reporting/__init__.py +0 -0
  693. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/reporting/allure_plugin.py +0 -0
  694. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/plugins/builtin/reporting/oms_reporter_plugin.py +0 -0
  695. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/__init__.py +0 -0
  696. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/assertions/__init__.py +0 -0
  697. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/assertions/helper.py +0 -0
  698. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/assertions/json_schema.py +0 -0
  699. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/assertions/matchers.py +0 -0
  700. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/assertions/response.py +0 -0
  701. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/__init__.py +0 -0
  702. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/builders/__init__.py +0 -0
  703. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/builders/base.py +0 -0
  704. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/factories/__init__.py +0 -0
  705. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/factories/base.py +0 -0
  706. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/factories/examples.py +0 -0
  707. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/generators/__init__.py +0 -0
  708. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/generators/data_generator.py +0 -0
  709. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/loaders/__init__.py +0 -0
  710. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/loaders/base.py +0 -0
  711. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/loaders/csv_loader.py +0 -0
  712. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/loaders/json_loader.py +0 -0
  713. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/data/loaders/yaml_loader.py +0 -0
  714. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/debugging/__init__.py +0 -0
  715. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/decorators/actions_class.py +0 -0
  716. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/decorators/api_class.py +0 -0
  717. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/__init__.py +0 -0
  718. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/allure.py +0 -0
  719. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/auth.py +0 -0
  720. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/message_queue.py +0 -0
  721. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/metrics.py +0 -0
  722. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/monitoring.py +0 -0
  723. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/fixtures/ui.py +0 -0
  724. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/mocking/__init__.py +0 -0
  725. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/mocking/database_mock.py +0 -0
  726. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/mocking/http_mock.py +0 -0
  727. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/mocking/redis_mock.py +0 -0
  728. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/mocking/time_mock.py +0 -0
  729. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/__init__.py +0 -0
  730. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/api_autodiscovery.py +0 -0
  731. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/debug.py +0 -0
  732. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/env_plugin.py +0 -0
  733. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/logging_plugin.py +0 -0
  734. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/plugins/markers.py +0 -0
  735. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/reporting/__init__.py +0 -0
  736. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/reporting/allure/__init__.py +0 -0
  737. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/src/df_test_framework/testing/reporting/allure/helper.py +0 -0
  738. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/README.md +0 -0
  739. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/bootstrap/__init__.py +0 -0
  740. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/bootstrap/test_bootstrap.py +0 -0
  741. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/bootstrap/test_providers.py +0 -0
  742. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/bootstrap/test_runtime.py +0 -0
  743. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/__init__.py +0 -0
  744. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/graphql/__init__.py +0 -0
  745. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/graphql/test_client.py +0 -0
  746. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/graphql/test_middleware.py +0 -0
  747. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/graphql/test_models.py +0 -0
  748. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/graphql/test_query_builder.py +0 -0
  749. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/grpc/__init__.py +0 -0
  750. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/grpc/test_client.py +0 -0
  751. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/grpc/test_middleware.py +0 -0
  752. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/grpc/test_models.py +0 -0
  753. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/auth/signature/test_strategies.py +0 -0
  754. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/core/__init__.py +0 -0
  755. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/core/test_multipart.py +0 -0
  756. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/core/test_request.py +0 -0
  757. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/core/test_response.py +0 -0
  758. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/middleware/__init__.py +0 -0
  759. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/middleware/test_factory.py +0 -0
  760. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/middleware/test_logging.py +0 -0
  761. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_async_base_api.py +0 -0
  762. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_async_client.py +0 -0
  763. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_auth_control.py +0 -0
  764. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_base_api.py +0 -0
  765. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_factory.py +0 -0
  766. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/clients/http/rest/test_http_client.py +0 -0
  767. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/redis/test_async_redis.py +0 -0
  768. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/redis/test_redis_client.py +0 -0
  769. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_async_database.py +0 -0
  770. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_database.py +0 -0
  771. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_database_factory.py +0 -0
  772. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_query_builder.py +0 -0
  773. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_repositories.py +0 -0
  774. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/databases/test_uow.py +0 -0
  775. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/drivers/web/playwright/test_async_browser_pool.py +0 -0
  776. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/drivers/web/test_async_ui.py +0 -0
  777. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/drivers/web/test_modern_ui.py +0 -0
  778. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/messengers/__init__.py +0 -0
  779. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/messengers/test_kafka_client.py +0 -0
  780. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/messengers/test_rabbitmq_client.py +0 -0
  781. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/messengers/test_rocketmq_client.py +0 -0
  782. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/storages/__init__.py +0 -0
  783. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/storages/test_local_file.py +0 -0
  784. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/storages/test_oss.py +0 -0
  785. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/capabilities/storages/test_s3.py +0 -0
  786. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/__init__.py +0 -0
  787. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_env_cmd.py +0 -0
  788. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_generate_cmd.py +0 -0
  789. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_init_cmd.py +0 -0
  790. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_interactive_cmd.py +0 -0
  791. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_main.py +0 -0
  792. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/cli/test_utils.py +0 -0
  793. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/conftest.py +0 -0
  794. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/protocols/test_client.py +0 -0
  795. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/protocols/test_event.py +0 -0
  796. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/protocols/test_plugin.py +0 -0
  797. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/protocols/test_repository.py +0 -0
  798. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/protocols/test_telemetry.py +0 -0
  799. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_context.py +0 -0
  800. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_decorators.py +0 -0
  801. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_event_types.py +0 -0
  802. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_events.py +0 -0
  803. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_middleware.py +0 -0
  804. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/core/test_types.py +0 -0
  805. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/__init__.py +0 -0
  806. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/config/test_loader.py +0 -0
  807. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/config/test_middleware_schema.py +0 -0
  808. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/context/test_carriers.py +0 -0
  809. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/events/__init__.py +0 -0
  810. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/events/test_bus.py +0 -0
  811. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/__init__.py +0 -0
  812. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_decorators.py +0 -0
  813. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_manager.py +0 -0
  814. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_observer.py +0 -0
  815. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_performance.py +0 -0
  816. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_registry.py +0 -0
  817. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/metrics/test_types.py +0 -0
  818. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/plugins/test_manager.py +0 -0
  819. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/resilience/__init__.py +0 -0
  820. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/resilience/test_circuit_breaker.py +0 -0
  821. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/sanitize/__init__.py +0 -0
  822. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/telemetry/__init__.py +0 -0
  823. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/telemetry/test_facade.py +0 -0
  824. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/telemetry/test_noop.py +0 -0
  825. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_bootstrap.py +0 -0
  826. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_helpers.py +0 -0
  827. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_logging.py +0 -0
  828. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_pipeline.py +0 -0
  829. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_runtime.py +0 -0
  830. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_settings.py +0 -0
  831. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/test_sources.py +0 -0
  832. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/__init__.py +0 -0
  833. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_context.py +0 -0
  834. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_decorators.py +0 -0
  835. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_exporters.py +0 -0
  836. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_integrations.py +0 -0
  837. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_interceptors.py +0 -0
  838. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/infrastructure/tracing/test_manager.py +0 -0
  839. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/integration/__init__.py +0 -0
  840. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/integration/test_config_environment.py +0 -0
  841. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/integration/test_event_observability.py +0 -0
  842. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/integration/test_factory_assertions.py +0 -0
  843. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/integration/test_middleware_chain.py +0 -0
  844. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/migration/__init__.py +0 -0
  845. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/migration/test_v3_13_to_v3_14_examples.py +0 -0
  846. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/plugins/__init__.py +0 -0
  847. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/plugins/builtin/__init__.py +0 -0
  848. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/plugins/builtin/monitoring/__init__.py +0 -0
  849. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/plugins/builtin/monitoring/test_plugin.py +0 -0
  850. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/test_json_to_model_generator.py +0 -0
  851. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/assertions/__init__.py +0 -0
  852. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/assertions/test_json_schema.py +0 -0
  853. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/assertions/test_matchers.py +0 -0
  854. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/data/__init__.py +0 -0
  855. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/data/test_builders.py +0 -0
  856. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/data/test_data_generator.py +0 -0
  857. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/data/test_factories.py +0 -0
  858. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/debugging/__init__.py +0 -0
  859. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/debugging/test_console_debug_observer.py +0 -0
  860. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/decorators/__init__.py +0 -0
  861. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/decorators/test_actions_class.py +0 -0
  862. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/decorators/test_api_class.py +0 -0
  863. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/__init__.py +0 -0
  864. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_cleanup.py +0 -0
  865. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_fixtures_core.py +0 -0
  866. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_fixtures_message_queue.py +0 -0
  867. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_fixtures_monitoring.py +0 -0
  868. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_monitoring_metrics.py +0 -0
  869. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/fixtures/test_ui_fixtures.py +0 -0
  870. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/mocking/__init__.py +0 -0
  871. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/mocking/test_database_mock.py +0 -0
  872. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/mocking/test_http_mock.py +0 -0
  873. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/mocking/test_redis_mock.py +0 -0
  874. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/mocking/test_time_mock.py +0 -0
  875. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/plugins/test_api_autodiscovery.py +0 -0
  876. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/plugins/test_debug_plugin.py +0 -0
  877. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/plugins/test_env_plugin.py +0 -0
  878. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/plugins/test_logging_plugin.py +0 -0
  879. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/plugins/test_markers.py +0 -0
  880. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/reporting/test_allure_observer.py +0 -0
  881. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/test_allure_helper.py +0 -0
  882. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/test_assertions.py +0 -0
  883. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/test_data_loaders.py +0 -0
  884. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/tests/testing/test_factories_presets.py +0 -0
  885. {df_test_framework-4.3.1 → df_test_framework-4.4.2}/verify_fixes.py +0 -0
@@ -5,6 +5,72 @@
5
5
  格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
6
6
  版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
7
7
 
8
+ ## [4.4.2] - 2026-04-20
9
+
10
+ ### 🐛 修复
11
+
12
+ - **(P2) `_check_observability` 漏报**:装饰器声明了显式依赖(如 `token="..."`)时,auto-inject 整体跳过,即使 `__init__` 有 `runtime` 形参也不会被注入,但原逻辑判断 `runtime in params` 就不告警。修复后仅以 `dependencies` 是否含 `runtime` 为判据,两种漏报场景均能告警,且文案区分"缺形参"与"依赖未点名"两种修复路径
13
+ - **(P3) HTTP Context form body 明文泄露**:`_format_body` 对非 JSON 文本调用 `sanitize_message()` 时,该方法硬编码检查 `logging.enabled`,导致 `logging` 关闭而 `console` 开启时 form-urlencoded body 原样输出
14
+
15
+ ### ♻️ 重构
16
+
17
+ - **统一脱敏 API**:将 `sanitize_dict(data, context="default")` 重命名为 `sanitize_data(data, context)`,`sanitize_message(text)` 重命名为 `sanitize_text(text, context)`;两个方法均要求显式传 `context`,消除硬编码上下文的历史问题。`sanitize_data` 同时支持顶层 `list`,allure observer 中的 list 元素循环可简化为一次调用
18
+ - 所有输出通道(HTTP Context、console_debugger、Allure、structlog)均已对齐新 API
19
+
20
+ ### 📚 文档 & 模板
21
+
22
+ - 重写 `docs/guides/sanitize_guide.md`,以"三条统一入口 + context 归属表 + 业务补字段"为主线,删除旧版散碎写法和错误的调试建议
23
+ - 修正脚手架 `readme.py` 两处 `logging.sanitize: false`(无效路径)→ `sanitize.console.enabled: false`
24
+ - 更新 `env_files.py` base 注释,从 `enabled/strategy` 改为 `sensitive_keys` 业务扩展示例
25
+
26
+ ## [4.4.1] - 2026-04-18
27
+
28
+ ### 🐛 修复
29
+
30
+ - **(P1, 安全) `sanitize_header()` 不再绕过脱敏策略**: 早期实现把 Bearer 截断写死,忽略 `default_strategy` 配置,导致用户在生产环境设为 FULL/HASH 时仍会暴露明文。修复后 scheme-prefixed 短路仅在 `PARTIAL` 下生效,FULL/HASH 一律路由到 `sanitize_value` 得到 `******` 或 `sha256:xxx`
31
+ - **(P2) HTTP Context 阶段覆盖**: 之前仅 `call` 阶段失败时注入,setup / teardown 失败拿不到上下文
32
+
33
+ ### 🔧 改进
34
+
35
+ - 🩺 **`HttpRequestRecorder` 组件** (`testing/fixtures/http_recorder.py`): 轻量 HTTP 请求/响应缓存器,订阅 EventBus,自动排除认证类 URL,按 `correlation_id` 关联 Start/End 事件。`_pending` 中已发出但响应事件未到达的请求在格式化时附加 `← no response (async)` 标记
36
+ - 🛟 **`_http_failure_section` autouse fixture** (`testing/fixtures/debugging.py`): 测试失败时自动把最近 3 次业务请求/响应作为 `HTTP Context` section 注入 pytest 报告。无需 `-s` / `--log-cli-level=DEBUG`,无需任何配置或显式声明,对所有测试生效;用例成功时不输出
37
+ - 🔐 **`SanitizeService.sanitize_header()` 公共 API** (`infrastructure/sanitize/service.py`): HTTP header 专用脱敏方法,统一 ConsoleDebugObserver、AllureObserver、HttpRequestRecorder 三处实现
38
+ - ✂️ **scheme-prefixed token 截断**: PARTIAL 策略下 `Authorization: Bearer eyJhbGciOi...KS8yo`(前 8 + ... + 后 5),覆盖 Bearer/Basic/Token/Digest/Mac/Hawk
39
+ - **`ConsoleDebugObserver` HTTP header 输出**: 改为直接调用 `sanitize_header()`,与 `HttpRequestRecorder.format_section()` 输出格式完全一致;非 HTTP 路径(gRPC metadata、MQ 消息)的通用 `_sanitize_value` 行为保持不变
40
+ - 🚧 **`ServiceClientObservabilityWarning`** (`testing/decorators/service_client.py`): `@service_client` 装饰的 `HttpClient`/`AsyncHttpClient` 子类未在 `__init__` 声明 `runtime` 参数时,注册期发出警告。提示用户:该客户端的 HTTP 请求会绕过 EventBus,失败 section / console_debugger / Allure attachment 都拿不到。CI 可通过 `filterwarnings = ["error::df_test_framework.testing.decorators.ServiceClientObservabilityWarning"]` 升级为错误
41
+
42
+ ### 📚 文档
43
+
44
+ - 新增 [v4.4.1 发布说明](docs/releases/v4.4.1.md)
45
+ - 更新 `docs/guides/sanitize_guide.md` —— 新增 "HTTP Header 脱敏" 小节
46
+ - 更新 `docs/guides/fixtures_guide.md` —— 新增 "失败上下文 Fixture" 小节
47
+ - 更新 `docs/guides/local_debug_quickstart.md` —— 业务失败时无需 `-s` 即可看到 HTTP Context
48
+ - 更新 `docs/guides/service_client_guide.md` —— 所有 `HttpClient` 子类示例统一加 `runtime=None`;新增 "事件发布与可观测性(必读)" 章节
49
+
50
+ ---
51
+
52
+ ## [4.4.0] - 2026-04-17
53
+
54
+ ### ✨ 新增功能
55
+
56
+ - 📐 **长链路前置造数 Fixture 链范式** (`cli/templates/project/fixture_chain_example.py`): 新增可复制的两层结构骨架,解决 E2E 测试 ≥3 步业务前置在 ≥2 个文件复用时的"跨文件偷 import 私有函数"坏味道
57
+ - **底层 step 函数**:公开签名 + `cleanup.add(...)` 内嵌,独立可调用
58
+ - **组合 + Fixture 层**:`provision_*(...)` 顶层语义函数 + `business_prerequisite` 一站式 fixture + `account_created` / `resource_created` 细粒度 fixture
59
+ - **数据契约**:每层返回 `@dataclass(frozen=True)` + `@property` 便捷访问
60
+ - **加载机制**:通过 `tests/conftest.py` 的 `pytest_plugins = ["{project}.fixtures.example_chain"]` 加载
61
+
62
+ - 📦 **脚手架自动生成范式骨架**: `df-test init my-project --type api|full` 现会在 `src/{project}/fixtures/example_chain.py` 生成可改写的副本
63
+
64
+ - 📚 **新增范式指南** (`docs/guides/fixture_chain_pattern.md`): 涵盖问题陈述、决策标准(何时启用 / 不启用)、两层结构、线性 vs 分叉链路、Cleanup 集成、反模式清单,以及 **UI 测试的对应思考**(默认推荐 `storage_state` + Page Object,仅当 ≥3 个 page action 业务流程才升级到链范式)
65
+
66
+ ### 🔧 改进
67
+
68
+ - **`conftest.py` / `full_conftest.py` 模板**: 新增注释化 `pytest_plugins` 块,引导用户启用业务领域 fixture 链
69
+ - **`fixtures_init.py` 模板**: 新增范式提示,避免在 `__init__.py` 里 `from .xxx_chain import *` 绕开 pytest fixture 注册的反模式
70
+ - **`enhanced_gitignore` 模板**: `config/secrets/` → `config/secrets/*`,配合 `!.gitkeep` 和 `!.env.local.example` 例外规则正确生效
71
+
72
+ ---
73
+
8
74
  ## [4.3.1] - 2026-04-16
9
75
 
10
76
  ### 🔧 改进
@@ -127,6 +127,24 @@ def test_login(self): ...
127
127
 
128
128
  ## 版本发布
129
129
 
130
+ ### 版本号选择规则(语义化版本)
131
+
132
+ **完整规范**: `docs/development/VERSION_CONTROL_RULES.md`
133
+
134
+ **MAJOR / MINOR / PATCH 决策三问**(在改 `pyproject.toml` 前先回答):
135
+
136
+ 1. 这是**独立的功能模块**吗?(不是现有功能的延续/增强)
137
+ 2. 值得**单独写一篇发布文档**吗?
138
+ 3. 用户会**专门为它升级**吗?
139
+
140
+ - 三个都是 YES → **MINOR +1**(如新增 GraphQL 客户端、新增分布式追踪)
141
+ - 否则 → **PATCH +1**(bug 修复、性能优化、内部统一、辅助方法、现有主题的延续补强)
142
+ - 不兼容变更 / 移除 API / 升级最低 Python 版本 → **MAJOR +1**
143
+
144
+ **核心原则**:MINOR 要克制,相关功能合并发布;PATCH 要积极,bug 立即修。
145
+
146
+ ### 发布步骤
147
+
130
148
  发布新版本时,严格按以下顺序执行:
131
149
 
132
150
  ### Step 1: 更新文件
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: df-test-framework
3
- Version: 4.3.1
3
+ Version: 4.4.2
4
4
  Summary: 基于交互模式的现代化测试自动化框架,支持多种测试场景
5
5
  Project-URL: Homepage, https://github.com/yourorg/df-test-framework
6
6
  Project-URL: Repository, https://github.com/yourorg/df-test-framework
@@ -1161,7 +1161,7 @@ def test_create_card(
1161
1161
  | 维度 | @api_class | @service_client |
1162
1162
  |------|-----------|----------------|
1163
1163
  | 基类要求 | 必须继承 `BaseAPI` | 无要求 |
1164
- | HTTP 客户端 | 共享框架的 `http_client` | 自行管理 |
1164
+ | HTTP 客户端 | 共享框架的 `http_client` | 推荐基于框架 `HttpClient` / `AsyncHttpClient` 自行封装 |
1165
1165
  | base_url | 从框架配置统一获取 | 通过 `base_url_config` 注入 |
1166
1166
  | 认证方式 | 框架中间件统一处理 | 各客户端自行实现 |
1167
1167
 
@@ -1171,6 +1171,25 @@ def test_create_card(
1171
1171
 
1172
1172
  `settings`、`database`、`async_database`、`redis_client`、`async_redis_client`、`runtime`、`rabbitmq_client`、`kafka_client`、`rocketmq_client`
1173
1173
 
1174
+ ### 推荐写法
1175
+
1176
+ 当 fixture 本身就是“一个独立 HTTP 客户端”时,推荐直接继承框架 `HttpClient`:
1177
+
1178
+ ```python
1179
+ from df_test_framework import HttpClient
1180
+ from df_test_framework.testing.decorators import service_client
1181
+
1182
+
1183
+ @service_client("payment_client", base_url_config="business.payment_url")
1184
+ class PaymentClient(HttpClient):
1185
+ def __init__(self, base_url: str, runtime=None) -> None:
1186
+ super().__init__(base_url=base_url, max_retries=0, runtime=runtime)
1187
+ ```
1188
+
1189
+ > **v4.4.1 起强制要求**:`HttpClient` / `AsyncHttpClient` 子类必须在 `__init__` 声明 `runtime=None` 并透传给 `super().__init__()`,否则该客户端发出的 HTTP 请求不会经过 EventBus,失败 section 的 `HTTP Context`、`console_debugger`、Allure HTTP attachment 都拿不到。注册期会发出 `ServiceClientObservabilityWarning`。详见 [service_client_guide.md → 事件发布与可观测性](../guides/service_client_guide.md)。
1190
+
1191
+ `@service_client` 仍兼容普通类和其他 HTTP 库,但那属于兼容场景,不是首选推荐。对于需要统一重试、中间件、事件发布和调试链路的项目,优先使用框架 `HttpClient` / `AsyncHttpClient`。
1192
+
1174
1193
  ---
1175
1194
 
1176
1195
  ## 🔗 相关文档
@@ -43,10 +43,11 @@ def pytest_runtest_makereport(item, call):
43
43
  # 附加到 Allure 报告
44
44
  try:
45
45
  import allure
46
+
46
47
  allure.attach.file(
47
48
  str(screenshot_path),
48
49
  name="失败截图",
49
- attachment_type=allure.attachment_type.PNG
50
+ attachment_type=allure.attachment_type.PNG,
50
51
  )
51
52
  except ImportError:
52
53
  pass # 未安装 allure-pytest,跳过
@@ -64,10 +65,11 @@ def pytest_runtest_makereport(item, call):
64
65
  # 附加到 Allure 报告
65
66
  try:
66
67
  import allure
68
+
67
69
  allure.attach.file(
68
70
  str(video_path),
69
71
  name="测试视频",
70
- attachment_type=allure.attachment_type.WEBM
72
+ attachment_type=allure.attachment_type.WEBM,
71
73
  )
72
74
  except ImportError:
73
75
  pass
@@ -0,0 +1,224 @@
1
+ # 长链路前置造数:Fixture 链范式
2
+
3
+ > **最后更新**: 2026-04-17
4
+ > **适用版本**: v4.4.0+
5
+ > **配套模板**: `cli/templates/project/fixture_chain_example.py`(脚手架生成 `src/{project}/fixtures/example_chain.py`)
6
+
7
+ ---
8
+
9
+ ## 目录
10
+
11
+ - [问题:为什么需要这个范式](#问题为什么需要这个范式)
12
+ - [何时启用 / 何时不启用](#何时启用--何时不启用)
13
+ - [两层结构](#两层结构)
14
+ - [完整示例](#完整示例)
15
+ - [线性链路 vs 分叉链路](#线性链路-vs-分叉链路)
16
+ - [Cleanup 集成](#cleanup-集成)
17
+ - [反模式](#反模式)
18
+ - [UI 测试的对应思考](#ui-测试的对应思考)
19
+
20
+ ---
21
+
22
+ ## 问题:为什么需要这个范式
23
+
24
+ E2E 测试常常需要"建租户 → 建账号 → 建商品 → 建订单"这种 N 步业务前置。如果不抽取,会出现 3 类典型坏味道:
25
+
26
+ 1. **跨文件偷 import 私有函数**
27
+ `from tests.api.test_order_e2e import _step1_create_supplier`
28
+ → 修改测试 A 时悄悄改坏了测试 B;新成员不知道哪些 `_step` 是公共契约。
29
+
30
+ 2. **每个 e2e 文件复制一份相同的 7 步**
31
+ → 业务 schema 升级时要改 N 处;漏改一处 → 测试间断式失败。
32
+
33
+ 3. **fixture 写在 conftest 里没有清晰边界**
34
+ → conftest 越长越难读;fixture 之间的依赖关系隐式藏在闭包里。
35
+
36
+ **本范式的目标**:让"业务前置数据链"成为一等公民——**有显式的模块、有公开的契约、有明确的扩展点**。
37
+
38
+ ---
39
+
40
+ ## 何时启用 / 何时不启用
41
+
42
+ | 启用 | 不启用 |
43
+ |------|--------|
44
+ | E2E 测试有 ≥3 步业务前置 | 单测试只用 1-2 步 → 直接 inline |
45
+ | 这套前置在 ≥2 个测试文件里复用 | 仅 1 个文件复用 → 抽到 module 顶部 helper |
46
+ | 之前为了复用偷 `from tests.xxx import _step_*` | 单元测试 / mock 化测试 |
47
+ | 业务链路有自然的"分叉点"(1 个账号 × 多个资源) | UI 测试以登录态为前置 → 优先 `storage_state` |
48
+
49
+ **判断口诀**:拿出代码统计——单文件 + ≤2 步 → 不抽;多文件 + ≥3 步 → 抽。中间地带(如 2 文件 + 2 步)多半也不值得抽,等第 3 个文件出现再说。
50
+
51
+ ---
52
+
53
+ ## 两层结构
54
+
55
+ ```
56
+ ┌──────────────────────────────────────────────────────────┐
57
+ │ 二、组合 + Fixture 层(pytest 入口) │
58
+ │ - business_prerequisite fixture(一站式,覆盖 80% 场景)│
59
+ │ - account_created / resource_created(细粒度,分叉用) │
60
+ │ - provision_*(...) 顶层语义函数(一次造完一段) │
61
+ └────────────────────────┬─────────────────────────────────┘
62
+ │ 调用
63
+ ┌────────────────────────▼─────────────────────────────────┐
64
+ │ 一、底层 step 函数(pure function) │
65
+ │ - step_create_account(...) │
66
+ │ - step_create_resource(...) │
67
+ │ - step_bind_resource_to_account(...) │
68
+ │ 签名公开、参数显式;cleanup.add(...) 内嵌 │
69
+ └──────────────────────────────────────────────────────────┘
70
+ ```
71
+
72
+ **核心约定**:
73
+ - **底层 step 函数公开签名**——`step_create_account(account_api, test_id, cleanup)`,不藏 `_` 前缀。
74
+ - **每层返回 `frozen=True` 的 dataclass**,不返回 `dict` / `tuple`,避免下游用魔法字符串取值。
75
+ - **dataclass 上加 `@property` 便捷访问**:`prerequisite.account_id` 比 `prerequisite.account.account_id` 更顺手。
76
+ - **`provision_*(...)` 是顶层语义函数**,把"造一段链路"封装为一行调用,给分叉用例循环时用。
77
+ - **fixture 分两档**:一站式(`business_prerequisite`)+ 细粒度(`account_created`),不要只提供一站式。
78
+
79
+ ---
80
+
81
+ ## 完整示例
82
+
83
+ 完整骨架见 `cli/templates/project/fixture_chain_example.py`。脚手架 `df-test init my-project --type api` 会在 `src/my_project/fixtures/example_chain.py` 生成可改写的副本。
84
+
85
+ 启用步骤(5 步):
86
+
87
+ ```python
88
+ # 1. 把模板里的 Account / Resource / Workflow 等占位实体替换为真实业务名词
89
+ # 2. 把 step_* 内的 API 调用替换为真实业务调用
90
+ # 3. 保留 cleanup.add(...) 内嵌写法(cleanup 与 step 同生命周期,调试时不易遗漏)
91
+ # 4. 在 tests/conftest.py 添加:
92
+ pytest_plugins = ["my_project.fixtures.example_chain"]
93
+
94
+ # 5. E2E 测试直接消费 fixture:
95
+ def test_main_flow(business_prerequisite):
96
+ assert business_prerequisite.account_id > 0
97
+ assert business_prerequisite.resource_id > 0
98
+ ```
99
+
100
+ ---
101
+
102
+ ## 线性链路 vs 分叉链路
103
+
104
+ ### 场景 A:线性 1×1×1(80% 用例)
105
+
106
+ `business_prerequisite` 一站式 fixture 直接覆盖:
107
+
108
+ ```python
109
+ def test_full_order_flow(order_prerequisite):
110
+ """完整下单链路:1 账号 + 1 商品 + 1 订单"""
111
+ place_order(order_prerequisite.account_id, order_prerequisite.resource_id)
112
+ ```
113
+
114
+ ### 场景 B:分叉 1 账号 × N 资源(如回调三态测试)
115
+
116
+ 不要为分叉造一个新 fixture——**直接消费细粒度 fixture + 在测试里循环调用 `provision_*`**:
117
+
118
+ ```python
119
+ def test_callback_three_states(account_created, resource_api, binding_api,
120
+ business_test_id, cleanup):
121
+ """1 账号 × 3 通道(成功/失败/处理中)"""
122
+ channels = {
123
+ ch_type: provision_resource(
124
+ resource_api, binding_api, account_created, business_test_id,
125
+ cleanup, resource_type=ch_type,
126
+ )
127
+ for ch_type in ("success", "fail", "processing")
128
+ }
129
+ for ch_type, ch in channels.items():
130
+ trigger_callback(account_created.account_id, ch.resource_id, state=ch_type)
131
+ ```
132
+
133
+ **关键设计**:
134
+ - `step_create_resource(..., resource_type="default")` 用 keyword-only 参数支持分叉。
135
+ - `provision_resource(...)` 把"建+绑"打包成一次调用,循环时不必重复 step 序列。
136
+ - 共用 `account_created` fixture,N 个资源真正复用 1 个账号。
137
+
138
+ ---
139
+
140
+ ## Cleanup 集成
141
+
142
+ **约定**:`cleanup.add(key, id)` 必须**内嵌在 `step_*` 函数内**,不要让调用方手动注册。
143
+
144
+ ```python
145
+ def step_create_account(account_api, test_id, cleanup) -> AccountData:
146
+ with step("步骤1: 新建账号"):
147
+ response = account_api.create(name=f"acct_{test_id}")
148
+ cleanup.add("account", response.id) # ⭐ 内嵌,不依赖调用方
149
+ return AccountData(account_id=response.id, ...)
150
+ ```
151
+
152
+ **理由**:
153
+ - 造数 = 造 + 注册清理是一对原子操作,分开写迟早漏。
154
+ - 调试时把 step 函数单独 import 也能正常清理。
155
+ - `cleanup` fixture 是配置驱动的(`CLEANUP__MAPPINGS__*`),重复注册同一 ID 是幂等的。
156
+
157
+ ---
158
+
159
+ ## 反模式
160
+
161
+ | ❌ 不要这样 | ✅ 改成这样 |
162
+ |------------|------------|
163
+ | `from tests.api.test_x import _step1, _step2` | 抽到 `src/{project}/fixtures/xxx_chain.py` |
164
+ | `step` 函数返回 `dict` 或 `tuple` | 返回 `@dataclass(frozen=True)` |
165
+ | `cleanup.add` 写在测试里 | 写在 `step_*` 函数里 |
166
+ | 只提供一站式 `business_prerequisite` | 同时暴露 `account_created` 等细粒度 fixture |
167
+ | 分叉用例新建一个 `branched_prerequisite` fixture | 复用 `account_created` + 循环调用 `provision_*` |
168
+ | step 函数加 `_` 前缀 | 公开签名、放进 `__all__` |
169
+ | 在 `fixtures/__init__.py` 里 `from .xxx_chain import *` | 通过 `pytest_plugins = [...]` 加载 |
170
+
171
+ 最后一条特别重要:**fixture 模块要通过 `pytest_plugins` 加载,不要在 `__init__.py` 里 import**。后者会绕开 pytest 的 fixture 注册机制,触发 collection 期的奇怪错误。
172
+
173
+ ---
174
+
175
+ ## UI 测试的对应思考
176
+
177
+ UI 测试的"前置"和 API 测试形态不同,**默认不需要本范式**:
178
+
179
+ ### 默认方案:`storage_state` + Page Object
180
+
181
+ > v4.0.3+ 框架原生支持 `storage_state`,详见 `docs/guides/auth_session_guide.md`。
182
+
183
+ 90% 的 UI 测试前置就是"已登录用户",框架的 `AuthSetup` 已经把这一步做掉了:
184
+
185
+ ```python
186
+ # tests/conftest.py
187
+ @pytest.fixture(scope="session")
188
+ def storage_state(auth_setup):
189
+ return auth_setup.create_state(login_func=lambda page: ...)
190
+
191
+ # 测试里直接用 page,已是登录态
192
+ def test_dashboard(page):
193
+ page.goto("/dashboard")
194
+ expect(page.get_by_text("Welcome")).to_be_visible()
195
+ ```
196
+
197
+ 这比 API 链路简单得多:UI 状态可以"序列化到磁盘 + 跨 session 复用",而 API 业务数据通常需要每次新建(避免数据污染)。
198
+
199
+ ### 何时 UI 也用 Fixture 链范式
200
+
201
+ 仅当 **UI 业务流程 ≥3 个 page action 且在 ≥2 个测试文件里复用** 时才考虑。例如:
202
+
203
+ - 配置向导:登录 → 选模板 → 填表单 → 预览 → 发布(5 步)
204
+ - 商家入驻:登录 → 填资质 → 上传证件 → 提交审核 → 等待通过(5 步)
205
+
206
+ UI 范式的对应映射:
207
+
208
+ | API 范式 | UI 范式 |
209
+ |---------|---------|
210
+ | `step_create_xxx(api, ...)` | `step_xxx_action(page, ...)` |
211
+ | `provision_*(...)` | `provision_ui_state(...)` |
212
+ | `cleanup.add("table", id)` | 通常无需清理(storage_state 已隔离)|
213
+ | 返回 `@dataclass(frozen=True)` | 返回 `@dataclass(frozen=True)`,记录 page state |
214
+ | 通过 `pytest_plugins` 加载 | 通过 `pytest_plugins` 加载 |
215
+
216
+ **警惕**:UI 链通常比 API 慢一个数量级(每步要等渲染),如果能用 API 造数 + UI 验证的组合,**优先用 API 造前置**,让 UI 只负责验证用户可见的部分。
217
+
218
+ ---
219
+
220
+ ## 参考
221
+
222
+ - 完整范式骨架: `src/df_test_framework/cli/templates/project/fixture_chain_example.py`
223
+ - 真实案例: `D:\Git\DF\master_test\src\master_test\fixtures\order_chain.py`(7 步下单前置链)
224
+ - 相关文档: [Fixtures 使用指南](./fixtures_guide.md) · [测试数据管理](./test_data.md) · [认证会话指南](./auth_session_guide.md)
@@ -1,7 +1,7 @@
1
1
  # Fixtures 使用指南
2
2
 
3
- > **最后更新**: 2026-03-03
4
- > **适用版本**: v3.0.0+
3
+ > **最后更新**: 2026-04-18
4
+ > **适用版本**: v3.0.0+;v4.4.1+ 新增 `_http_failure_section` autouse fixture
5
5
 
6
6
  ---
7
7
 
@@ -423,6 +423,71 @@ def test_with_test_runtime(test_runtime):
423
423
 
424
424
  ---
425
425
 
426
+ ### 失败上下文 Fixture(v4.4.1+,autouse)
427
+
428
+ #### `_http_failure_section` - 失败时自动注入 HTTP 上下文
429
+
430
+ **Scope**: `function`
431
+ **自动**: 是(autouse=True,无需声明)
432
+ **版本**: v4.4.1+
433
+ **位置**: `df_test_framework/testing/fixtures/debugging.py`
434
+
435
+ 对所有测试自动生效,**不需要写在测试参数里、不需要任何配置**:
436
+
437
+ - 测试开始时为该用例创建 `HttpRequestRecorder`,订阅当前 EventBus
438
+ - 测试通过时不输出任何内容(不污染正常日志)
439
+ - 测试在 **任意阶段(setup / call / teardown)** 失败时,把最近 3 次业务请求/响应作为
440
+ `HTTP Context` section 注入 pytest 报告
441
+
442
+ #### 输出示例
443
+
444
+ ```text
445
+ _______________________ TestOrder.test_create_order ______________________
446
+ ...
447
+ E AssertionError: 期望 retCode=0,实际为 1
448
+
449
+ ----------------------------- HTTP Context -----------------------------
450
+ [1] POST https://api.example.com/orders ← business failure
451
+ Request Headers:
452
+ Authorization: Bearer eyJhbGciOi...KS8yo
453
+ Content-Type: application/json
454
+ Request Body: {"product_id":"P001","quantity":2}
455
+ Response: ❌ 200 (123ms)
456
+ {"retCode":"1","retMsg":"IP地址非法,请求IP:113.57.21.67"}
457
+ ```
458
+
459
+ 三种 tag:
460
+
461
+ | tag | 含义 |
462
+ |-----|------|
463
+ | `← business failure` | HTTP 状态码 ≥ 400,或响应体内 `retCode/code/errCode` 等键非成功值 |
464
+ | `← request error` | 请求层异常(连接拒绝、超时、DNS 失败等) |
465
+ | `← no response (async)` | 已发出 Start 事件但 End 事件尚未到达(async 时序兜底) |
466
+
467
+ #### 配置
468
+
469
+ 无需任何配置。框架自动:
470
+
471
+ - 排除认证类 URL(`/login/token`、`/auth/token`、`/oauth/token` 等),避免污染上下文
472
+ - 缓存最近 **3** 条业务请求(队列大小由 `HttpRequestRecorder(max_records=3)` 控制)
473
+ - header 输出走 `SanitizeService.sanitize_header()`,与 console / Allure 格式一致
474
+ - request/response body 超过 500 字符自动截断并注明 `共 N 字符`
475
+
476
+ #### 与 `console_debugger` / `debug_mode` 的区别
477
+
478
+ | Fixture | 何时输出 | 是否需要 `-s` | 适用场景 |
479
+ |---------|---------|--------------|----------|
480
+ | `_http_failure_section` | **失败时**,写入 pytest section | 否 | 默认兜底,CI 失败排查 |
481
+ | `console_debugger` | **每个请求实时**输出彩色调试信息 | 是 | 主动调试,本地开发 |
482
+ | `debug_mode` | 同 `console_debugger`(依赖它) | 是 | 用例级别开关 |
483
+
484
+ > **重要前置**:`HttpRequestRecorder` 通过订阅 `HttpRequest{Start,End,Error}Event` 工作。
485
+ > 若项目里 `@service_client` 装饰类直接使用原生 `httpx.Client(...)` 而不是框架的
486
+ > `HttpClient`,事件不会发布,section 自然拿不到这些请求。详见
487
+ > [service_client 指南](service_client_guide.md)。
488
+
489
+ ---
490
+
426
491
  ## API 封装 Fixtures
427
492
 
428
493
  ### 自动加载机制(v3.45.0+)
@@ -1128,6 +1193,7 @@ def test_user_order_flow(user_api, order_api):
1128
1193
 
1129
1194
  ## 版本历史
1130
1195
 
1196
+ - **v4.4.1** (2026-04-18): 新增 `_http_failure_section` autouse fixture,失败时自动注入 `HTTP Context` section(覆盖 setup/call/teardown 全阶段)
1131
1197
  - **v4.1.0** (2026-03-03): Browser Session 复用,`browser_manager`/`browser` 提升为 session scope,context/page 保持 function scope 每测试隔离
1132
1198
  - **v4.0.0** (2026-01-16): 全面异步化,新增 `async_http_client`、`async_database`、`async_redis_client`、`async_page` 等异步 fixtures
1133
1199
  - **v3.45.0** (2025-12): 新增 `@api_class` 和 `@actions_class` 装饰器,API/Actions 自动加载
@@ -1,7 +1,7 @@
1
1
  # 本地开发调试快速指南
2
2
 
3
- > **最后更新**: 2026-01-16
4
- > **适用版本**: v3.38.0+(本地调试配置)
3
+ > **最后更新**: 2026-04-18
4
+ > **适用版本**: v3.38.0+(本地调试配置);v4.4.1+ 失败自动注入 HTTP Context section
5
5
 
6
6
  ---
7
7
 
@@ -140,6 +140,12 @@ uv run pytest tests/ -k "login or register" --env=local -v
140
140
 
141
141
  ### 失败调试
142
142
 
143
+ > **v4.4.1+ 默认行为**:测试失败时框架自动在 pytest 报告里注入 `HTTP Context` section,
144
+ > 显示最近 3 次业务请求/响应(含 headers / body / 状态码 / 耗时),**无需 `-s`,
145
+ > 无需 `--log-cli-level=DEBUG`,无需任何 fixture 声明**。详见
146
+ > [fixtures_guide.md → 失败上下文 Fixture](fixtures_guide.md#失败上下文-fixturev441autouse)。
147
+ > 仅当需要观察 **成功用例** 的实时请求时,才需要 `-s` + `console_debugger`。
148
+
143
149
  ```bash
144
150
  # 首次失败即停止
145
151
  uv run pytest tests/ --env=local -x -v
@@ -332,6 +338,11 @@ uv run pytest tests/ --log-cli-level=DEBUG -v
332
338
 
333
339
  ### Q2: 想看到完整的请求/响应体?
334
340
 
341
+ **失败用例(v4.4.1+ 默认)**:直接看 pytest 输出里的 `HTTP Context` section,
342
+ 无需任何额外标志。最近 3 次业务请求/响应已自动展开。
343
+
344
+ **成功用例(主动调试)**:
345
+
335
346
  ```bash
336
347
  # 方式 1:环境变量
337
348
  OBSERVABILITY__DEBUG_OUTPUT=true uv run pytest tests/ -v -s
@@ -342,6 +353,11 @@ def test_api(http_client):
342
353
  pass
343
354
  ```
344
355
 
356
+ > 三者职责区分:
357
+ > - `_http_failure_section`(autouse,v4.4.1+)— 失败兜底,写 pytest section
358
+ > - `console_debugger` / `debug_mode` — 实时输出,需要 `-s`
359
+ > - `OBSERVABILITY__DEBUG_OUTPUT=true` — 全局打开 `console_debugger` 行为
360
+
345
361
  ### Q3: 如何在测试中打断点?
346
362
 
347
363
  ```python
@@ -423,5 +439,5 @@ uv run pytest tests/ --env=test -v
423
439
 
424
440
  ---
425
441
 
426
- **文档版本**: v1.0.0
427
- **最后更新**: 2025-12-26
442
+ **文档版本**: v1.1.0
443
+ **最后更新**: 2026-04-18(v4.4.1 失败自动注入 HTTP Context)