df-test-framework 4.4.2__tar.gz → 4.4.3__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.4.2 → df_test_framework-4.4.3}/CHANGELOG.md +9 -0
  2. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/PKG-INFO +1 -1
  3. df_test_framework-4.4.3/docs/guides/sanitize_guide.md +176 -0
  4. df_test_framework-4.4.3/docs/releases/v4.4.3.md +100 -0
  5. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/pyproject.toml +1 -1
  6. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/__init__.py +1 -1
  7. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/middleware/event_publisher.py +14 -0
  8. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/event_publisher.py +9 -1
  9. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/event_publisher.py +28 -3
  10. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/env_files.py +2 -3
  11. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/readme.py +2 -4
  12. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/schema.py +3 -13
  13. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/logging/config.py +3 -3
  14. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/logging/observability.py +5 -12
  15. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/sanitize/service.py +4 -39
  16. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/interceptors/grpc.py +3 -19
  17. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/interceptors/http.py +3 -20
  18. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/debugging/console.py +2 -21
  19. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/http_recorder.py +5 -18
  20. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/reporting/allure/observer.py +13 -69
  21. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/sanitize/test_service.py +12 -66
  22. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_integrations.py +0 -2
  23. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_interceptors.py +11 -30
  24. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/debugging/test_console_debug_observer.py +22 -62
  25. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/uv.lock +129 -128
  26. df_test_framework-4.4.2/docs/guides/sanitize_guide.md +0 -186
  27. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.editorconfig +0 -0
  28. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.env.example +0 -0
  29. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.gitattributes +0 -0
  30. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/README.md +0 -0
  31. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/lint.yml +0 -0
  32. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/release.yml +0 -0
  33. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/scheduled.yml +0 -0
  34. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/security.yml +0 -0
  35. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.github/workflows/test.yml +0 -0
  36. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.gitignore +0 -0
  37. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.gitleaks.toml +0 -0
  38. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.gitleaksignore +0 -0
  39. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.pre-commit-config.yaml +0 -0
  40. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/.python-version +0 -0
  41. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/AGENTS.md +0 -0
  42. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/CLAUDE.md +0 -0
  43. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/CONTRIBUTING.md +0 -0
  44. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/README.md +0 -0
  45. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/README_PYPI.md +0 -0
  46. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/CONTRIBUTOR_GUIDE.md +0 -0
  47. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/DOC_REORGANIZATION_PLAN_v4.0.md +0 -0
  48. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/ESSENTIAL_DOCS.md +0 -0
  49. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/FAQ.md +0 -0
  50. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/LEARNING_PATH.md +0 -0
  51. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/README.md +0 -0
  52. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/README.md +0 -0
  53. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/clients.md +0 -0
  54. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/README.md +0 -0
  55. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/context.md +0 -0
  56. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/events.md +0 -0
  57. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/exceptions.md +0 -0
  58. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/middleware.md +0 -0
  59. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/protocols.md +0 -0
  60. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core/types.md +0 -0
  61. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/core.md +0 -0
  62. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/databases.md +0 -0
  63. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/drivers.md +0 -0
  64. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/extensions.md +0 -0
  65. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/infrastructure.md +0 -0
  66. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/patterns.md +0 -0
  67. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/api-reference/testing.md +0 -0
  68. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/ARCHITECTURE_V4.0.md +0 -0
  69. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/CODE_STRUCTURE.md +0 -0
  70. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/PLUGIN_SYSTEM_V3.37.md +0 -0
  71. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/README.md +0 -0
  72. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/TEST_EXECUTION_LIFECYCLE.md +0 -0
  73. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/README.md +0 -0
  74. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/REFACTORING_PLAN_V3.md +0 -0
  75. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/REFACTORING_PLAN_V3_REVISED.md +0 -0
  76. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/DI_STRATEGY.md +0 -0
  77. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/PREPARE_DATA_DESIGN.md +0 -0
  78. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/TESTING_MODULE_OPTIMIZATION.md +0 -0
  79. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/UOW_CLEANUP_ARCHITECTURE.md +0 -0
  80. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/UOW_REFACTORING_PROPOSAL.md +0 -0
  81. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/allure_integration_modes.md +0 -0
  82. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/capability_plan_vs_current.md +0 -0
  83. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/config-driven-design.md +0 -0
  84. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/config-management-analysis.md +0 -0
  85. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/eventbus-integration-analysis.md +0 -0
  86. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/failure-diagnosis-v2-design.md +0 -0
  87. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/future_allure_plugin_plans.md +0 -0
  88. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/http-vs-web-comparison.md +0 -0
  89. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/observability-debugging-unification.md +0 -0
  90. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/provider-pattern-deep-dive.md +0 -0
  91. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/tech-debt-cleanup-plan.md +0 -0
  92. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/ui-failure-diagnosis-implementation-v3.46.3.md +0 -0
  93. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/design/ui-observability-design.md +0 -0
  94. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/discussion_1_initial_issues.md +0 -0
  95. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/v3_complete_draft.md +0 -0
  96. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/v3_final_draft.md +0 -0
  97. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/FRAMEWORK_ARCHITECTURE_v3.6.2.md +0 -0
  98. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/OVERVIEW_V3.17.md +0 -0
  99. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/V3.14_ENTERPRISE_PLATFORM_DESIGN.md +0 -0
  100. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/V3.16_LAYER4_BOOTSTRAP_ARCHITECTURE.md +0 -0
  101. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/V3.17_EVENT_SYSTEM_REDESIGN.md +0 -0
  102. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/V3_ARCHITECTURE.md +0 -0
  103. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/V3_IMPLEMENTATION.md +0 -0
  104. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/overview.md +0 -0
  105. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/archive/versions/v2-architecture.md +0 -0
  106. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/extension-points.md +0 -0
  107. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/failure-diagnosis-hook-example.py +0 -0
  108. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/multi-project-reuse.md +0 -0
  109. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/observability-architecture.md +0 -0
  110. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture/test-type-support.md +0 -0
  111. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/architecture//344/272/224/345/261/202/346/236/266/346/236/204/350/257/246/350/247/243.md" +0 -0
  112. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/README.md +0 -0
  113. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/ACTION_PLAN_v2.0.md +0 -0
  114. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/AUDIT_VERIFICATION_REPORT.md +0 -0
  115. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/AUTH_PLACEMENT_ANALYSIS.md +0 -0
  116. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/CODE_REVIEW_f95e08cd.md +0 -0
  117. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/COMPREHENSIVE_FEATURE_AUDIT.md +0 -0
  118. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/FRAMEWORK_OPTIMIZATION_ANALYSIS_2025.md +0 -0
  119. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/PHASE2_COMPARISON_ANALYSIS.md +0 -0
  120. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/PHASE2_COMPLETION_REPORT.md +0 -0
  121. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/PHASE2_SUMMARY.md +0 -0
  122. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/README.md +0 -0
  123. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis/V3_REFACTORING_COMPLETE.md +0 -0
  124. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/ALLURE_HTTP_LOGGING_ISSUE.md +0 -0
  125. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/ALLURE_INTEGRATION_CHECK_REPORT.md +0 -0
  126. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/ALLURE_INTEGRATION_DESIGN.md +0 -0
  127. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/ALLURE_INTEGRATION_SUMMARY.md +0 -0
  128. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/ALLURE_ROOT_CAUSE_ANALYSIS.md +0 -0
  129. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/CODE_ANALYSIS_AND_PROGRESS.md +0 -0
  130. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/COMPREHENSIVE_FRAMEWORK_EVALUATION.md +0 -0
  131. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/analysis_2025/CONFIG_MODERNIZATION_ANALYSIS.md +0 -0
  132. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/ARCHITECTURE_AUDIT.md +0 -0
  133. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/FUTURE_ENHANCEMENTS.md +0 -0
  134. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/IMPLEMENTATION_SUMMARY.md +0 -0
  135. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/MIDDLEWARE_V3.14_DESIGN.md +0 -0
  136. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/ROADMAP_V3.29_ENHANCEMENTS.md +0 -0
  137. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/SIGNATURE_FRAMEWORK_CAPABILITIES.md +0 -0
  138. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/TEMPLATE_DEBUG_FIXTURES_ISSUE.md +0 -0
  139. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/observability-config-design.md +0 -0
  140. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/ui-best-practices-2026.md +0 -0
  141. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/web-architecture-consistency-design.md +0 -0
  142. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/design/web-event-driven-comparison.md +0 -0
  143. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/evaluations_2025/DUAL_AI_ANALYSIS_COMPARISON.md +0 -0
  144. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/evaluations_2025/FRAMEWORK_ASSESSMENT.md +0 -0
  145. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/evaluations_2025/FRAMEWORK_BEST_PRACTICES_UPDATE.md +0 -0
  146. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/evaluations_2025/FRAMEWORK_CAPABILITIES.md +0 -0
  147. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/evaluations_2025/FRAMEWORK_IMPROVEMENT_PROPOSALS.md +0 -0
  148. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/async_database_guide.md +0 -0
  149. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/async_http_client.md +0 -0
  150. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/httpx_advanced_usage.md +0 -0
  151. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/logging_configuration.md +0 -0
  152. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/logging_pytest_integration.md +0 -0
  153. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/modern_logging_best_practices.md +0 -0
  154. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/guides/repository_uow_guide.md +0 -0
  155. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/111.md +0 -0
  156. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/CONFIG_AND_INTERCEPTOR_INTEGRATION.md +0 -0
  157. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/DIRECTORY_STRUCTURE_REFACTORING.md +0 -0
  158. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE.md +0 -0
  159. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE_VERIFICATION.md +0 -0
  160. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_CONFIG_BEST_PRACTICES.md +0 -0
  161. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_DESIGN.md +0 -0
  162. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_VS_ACTUAL.md +0 -0
  163. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_LOCATION_DECISION.md +0 -0
  164. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_NAMING_STANDARDS.md +0 -0
  165. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/INTERCEPTOR_PERFORMANCE_ANALYSIS.md +0 -0
  166. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/README.md +0 -0
  167. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/REFACTORING_IMPLEMENTATION_PLAN.md +0 -0
  168. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/interceptor_refactoring/REFACTORING_PROGRESS.md +0 -0
  169. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/issues/README.md +0 -0
  170. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/issues/summary.md +0 -0
  171. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/issues/v1.md +0 -0
  172. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/migration/README.md +0 -0
  173. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/migration/v3.15-to-v3.16.md +0 -0
  174. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/CAPABILITY_LAYER_OPTIMIZATION.md +0 -0
  175. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/REFACTORING_PLAN_v2.md +0 -0
  176. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/REFACTORING_TASKS_v2.md +0 -0
  177. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/RFC_MULTIPART_FORM_DATA_SUPPORT.md +0 -0
  178. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/RFC_MULTIPART_IMPLEMENTATION_CODE.md +0 -0
  179. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/UV_SYNC_MIGRATION_SUMMARY.md +0 -0
  180. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/UV_SYNC_QUICK_START.md +0 -0
  181. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/plans/v2-migration-plan-draft.md +0 -0
  182. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/CHANGELOG_AUDIT_REPORT.md +0 -0
  183. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/CODE_QUALITY_FIXES_2025-11-09.md +0 -0
  184. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/CORE_DOCS_UPDATE_PLAN.md +0 -0
  185. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOCUMENTATION_AUDIT_REPORT_2025-12-05.md +0 -0
  186. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOCUMENTATION_CLEANUP_SUMMARY.md +0 -0
  187. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOCUMENTATION_INDEX.md +0 -0
  188. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOCUMENTATION_MAINTENANCE_COMPLETE.md +0 -0
  189. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOCUMENTATION_UPDATE_CHECKLIST.md +0 -0
  190. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/DOC_UPDATE_SUMMARY.md +0 -0
  191. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/IMPROVEMENTS_2025-01-09.md +0 -0
  192. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/PHASE3_COMPLETION_REPORT.md +0 -0
  193. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/PYTHON_VERSION_UNIFICATION.md +0 -0
  194. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/REFACTORING_COMPLETION_CHECK.md +0 -0
  195. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/TEST_CODE_GENERATION_ANALYSIS.md +0 -0
  196. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.3.0_DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
  197. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.3.0_MIGRATION_CHECKLIST.md +0 -0
  198. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_ALLURE_INTEGRATION_PLAN.md +0 -0
  199. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_DOCUMENTATION_COMPLETE.md +0 -0
  200. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_OBSERVABILITY_FINAL_STATUS.md +0 -0
  201. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_PHASE2_ACCEPTANCE_REPORT.md +0 -0
  202. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN.md +0 -0
  203. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN_REVISED.md +0 -0
  204. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/VERIFIED_BEST_PRACTICES_INTEGRATION_COMPLETE.md +0 -0
  205. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/reports_2025/async_http_client_design.md +0 -0
  206. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/user-guide/PHASE3_FEATURES.md +0 -0
  207. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/user-guide/extensions.md +0 -0
  208. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/user-guide/ui-testing.md +0 -0
  209. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/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
  210. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/FRAMEWORK_DESIGN_PRINCIPLES.md +0 -0
  211. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/README.md +0 -0
  212. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/UPGRADE_SUMMARY_v1.3.1.md +0 -0
  213. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/architecture.md +0 -0
  214. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/best-practices.md +0 -0
  215. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/config-integration-guide.md +0 -0
  216. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/optimization-report.md +0 -0
  217. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/v1/publishing.md +0 -0
  218. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/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
  219. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/versions/QUICK_START_V3.14.md +0 -0
  220. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/archive/versions/QUICK_START_V3.5.md +0 -0
  221. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/ci-templates/README.md +0 -0
  222. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/ci-templates/github-actions.yml +0 -0
  223. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/ci-templates/gitlab-ci.yml +0 -0
  224. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/development/DOCUMENTATION_MAINTENANCE.md +0 -0
  225. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/development/FRAMEWORK_DEPENDENCY_MANAGEMENT.md +0 -0
  226. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/development/RELEASE.md +0 -0
  227. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/development/VERSION_CONTROL_RULES.md +0 -0
  228. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/development/local-development.md +0 -0
  229. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/DECIMAL_GUIDE.md +0 -0
  230. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/allure_plugin.md +0 -0
  231. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/assertions_guide.md +0 -0
  232. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/async_api_guide.md +0 -0
  233. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/auth_session_guide.md +0 -0
  234. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/bootstrap_guide.md +0 -0
  235. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/config_guide.md +0 -0
  236. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/database_guide.md +0 -0
  237. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/decorators_guide.md +0 -0
  238. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/distributed_tracing.md +0 -0
  239. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/event_bus_guide.md +0 -0
  240. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/extensions.md +0 -0
  241. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/factory_guide.md +0 -0
  242. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/fixture_chain_pattern.md +0 -0
  243. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/fixtures_guide.md +0 -0
  244. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/graphql_client.md +0 -0
  245. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/grpc_client.md +0 -0
  246. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/helpers_guide.md +0 -0
  247. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/http_client_guide.md +0 -0
  248. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/integration-guide.md +0 -0
  249. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/local_debug_quickstart.md +0 -0
  250. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/logging_guide.md +0 -0
  251. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/message_queue.md +0 -0
  252. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/middleware_guide.md +0 -0
  253. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/mocking.md +0 -0
  254. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/monitoring_plugin.md +0 -0
  255. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/openapi_guide.md +0 -0
  256. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/plugins_guide.md +0 -0
  257. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/prometheus_metrics.md +0 -0
  258. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/redis_guide.md +0 -0
  259. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/resilience_guide.md +0 -0
  260. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/scaffold_cli_guide.md +0 -0
  261. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/service_client_guide.md +0 -0
  262. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/storage.md +0 -0
  263. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/telemetry_guide.md +0 -0
  264. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/test_data.md +0 -0
  265. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/test_data_cleanup.md +0 -0
  266. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/testing-development.md +0 -0
  267. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/guides/web-ui-testing.md +0 -0
  268. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/migration/README.md +0 -0
  269. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/migration/v3-to-v4.md +0 -0
  270. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/README.md +0 -0
  271. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.0.0-alpha.md +0 -0
  272. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.1.0.md +0 -0
  273. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.10.0.md +0 -0
  274. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.11.0.md +0 -0
  275. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.11.1.md +0 -0
  276. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.12.0.md +0 -0
  277. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.12.1.md +0 -0
  278. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.13.0.md +0 -0
  279. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.14.0.md +0 -0
  280. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.14.0_completion_report.md +0 -0
  281. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.14.0_implementation_complete.md +0 -0
  282. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.16.0.md +0 -0
  283. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.17.0.md +0 -0
  284. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.17.1.md +0 -0
  285. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.17.2.md +0 -0
  286. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.18.0.md +0 -0
  287. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.18.1-bugfix.md +0 -0
  288. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.18.1.md +0 -0
  289. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.19.0.md +0 -0
  290. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.2.0.md +0 -0
  291. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.20.0.md +0 -0
  292. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.21.0.md +0 -0
  293. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.22.0.md +0 -0
  294. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.22.1.md +0 -0
  295. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.23.0.md +0 -0
  296. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.24.0.md +0 -0
  297. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.25.0.md +0 -0
  298. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.26.0.md +0 -0
  299. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.27.0.md +0 -0
  300. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.28.0.md +0 -0
  301. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.28.1.md +0 -0
  302. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.29.0.md +0 -0
  303. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.3.0.md +0 -0
  304. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.30.0.md +0 -0
  305. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.31.0.md +0 -0
  306. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.32.0.md +0 -0
  307. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.33.0.md +0 -0
  308. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.34.0.md +0 -0
  309. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.34.1.md +0 -0
  310. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.0.md +0 -0
  311. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.1.md +0 -0
  312. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.2.md +0 -0
  313. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.3.md +0 -0
  314. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.4.md +0 -0
  315. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.5.md +0 -0
  316. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.6.md +0 -0
  317. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.35.7.md +0 -0
  318. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.36.0.md +0 -0
  319. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.36.1.md +0 -0
  320. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.37.0.md +0 -0
  321. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.0.md +0 -0
  322. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.10.md +0 -0
  323. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.2.md +0 -0
  324. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.4.md +0 -0
  325. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.5.md +0 -0
  326. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.7.md +0 -0
  327. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.8.md +0 -0
  328. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.38.9.md +0 -0
  329. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.39.0.md +0 -0
  330. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.39.1.md +0 -0
  331. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.4.0.md +0 -0
  332. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.40.0.md +0 -0
  333. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.41.0.md +0 -0
  334. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.41.1.md +0 -0
  335. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.42.0.md +0 -0
  336. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.43.0.md +0 -0
  337. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.44.0.md +0 -0
  338. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.45.0.md +0 -0
  339. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.46.1.md +0 -0
  340. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.46.2.md +0 -0
  341. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.46.3.md +0 -0
  342. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.5.0.md +0 -0
  343. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.6.0.md +0 -0
  344. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.6.1.md +0 -0
  345. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.6.2.md +0 -0
  346. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.7.0.md +0 -0
  347. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.8.0.md +0 -0
  348. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v3.9.0.md +0 -0
  349. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.0.0.md +0 -0
  350. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.0.1.md +0 -0
  351. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.0.2.md +0 -0
  352. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.0.3.md +0 -0
  353. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.0.4.md +0 -0
  354. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.1.0.md +0 -0
  355. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.1.1.md +0 -0
  356. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.1.2.md +0 -0
  357. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.2.0.md +0 -0
  358. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.2.1.md +0 -0
  359. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.2.2.md +0 -0
  360. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.3.0.md +0 -0
  361. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.3.1.md +0 -0
  362. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.4.0.md +0 -0
  363. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.4.1.md +0 -0
  364. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/releases/v4.4.2.md +0 -0
  365. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/skills/write-code.zip +0 -0
  366. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/skills/write-test.zip +0 -0
  367. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/troubleshooting/README.md +0 -0
  368. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/troubleshooting/common-errors.md +0 -0
  369. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/troubleshooting/debugging-guide.md +0 -0
  370. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/BEST_PRACTICES.md +0 -0
  371. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/QUICK_REFERENCE.md +0 -0
  372. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/QUICK_START.md +0 -0
  373. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/README.md +0 -0
  374. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/USER_MANUAL.md +0 -0
  375. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/VERIFIED_BEST_PRACTICES.md +0 -0
  376. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/ci-cd.md +0 -0
  377. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/code-generation.md +0 -0
  378. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/configuration.md +0 -0
  379. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/cross-project-sharing.md +0 -0
  380. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/debugging.md +0 -0
  381. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/examples.md +0 -0
  382. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/multi-repo.md +0 -0
  383. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/nested-settings-guide.md +0 -0
  384. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/docs/user-guide/security-best-practices.md +0 -0
  385. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/01-basic/README.md +0 -0
  386. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/01-basic/database_operations.py +0 -0
  387. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/01-basic/http_client_usage.py +0 -0
  388. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/01-basic/redis_cache.py +0 -0
  389. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/01-basic/storage_usage.py +0 -0
  390. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/02-bootstrap/README.md +0 -0
  391. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/02-bootstrap/custom_providers.py +0 -0
  392. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/02-bootstrap/custom_settings.py +0 -0
  393. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/02-bootstrap/minimal_bootstrap.py +0 -0
  394. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/02-bootstrap/with_extensions.py +0 -0
  395. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/03-testing/README.md +0 -0
  396. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/03-testing/conftest.py +0 -0
  397. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/03-testing/test_api.py +0 -0
  398. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/03-testing/test_database.py +0 -0
  399. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/03-testing/test_with_fixtures.py +0 -0
  400. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/04-patterns/README.md +0 -0
  401. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/04-patterns/builder_pattern.py +0 -0
  402. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/04-patterns/combined_patterns.py +0 -0
  403. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/04-patterns/repository_pattern.py +0 -0
  404. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/README.md +0 -0
  405. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/allure_enhancement_extension.py +0 -0
  406. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/custom_extension.py +0 -0
  407. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/data_factory_extension.py +0 -0
  408. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/environment_validator_extension.py +0 -0
  409. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/monitoring_extension.py +0 -0
  410. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/mq_monitor_extension.py +0 -0
  411. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/05-extensions/notification_extension.py +0 -0
  412. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/06-ui-testing/README.md +0 -0
  413. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/06-ui-testing/basic_ui_test.py +0 -0
  414. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/06-ui-testing/conftest.py +0 -0
  415. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/06-ui-testing/page_object_example.py +0 -0
  416. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/README.md +0 -0
  417. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/docker-compose-kafka.yml +0 -0
  418. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/docker-compose-rabbitmq.yml +0 -0
  419. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/docker-compose-rocketmq.yml +0 -0
  420. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/kafka_basic.py +0 -0
  421. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/kafka_ssl.py +0 -0
  422. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/rabbitmq_basic.py +0 -0
  423. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/rabbitmq_topic.py +0 -0
  424. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/rocketmq-broker.conf +0 -0
  425. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-message-queue/rocketmq_basic.py +0 -0
  426. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-v35-features/01_configurable_interceptors.py +0 -0
  427. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-v35-features/02_profile_configuration.py +0 -0
  428. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-v35-features/03_runtime_overrides.py +0 -0
  429. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-v35-features/04_observability.py +0 -0
  430. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/07-v35-features/README.md +0 -0
  431. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/01_unit_of_work_basics.py +0 -0
  432. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/02_repository_v37.py +0 -0
  433. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/03_auto_rollback_testing.py +0 -0
  434. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/04_multi_repository_transactions.py +0 -0
  435. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/05_project_uow.py +0 -0
  436. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/06_exception_handling_with_uow.py +0 -0
  437. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/08-v37-features/README.md +0 -0
  438. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/examples/README.md +0 -0
  439. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/scripts/fetch_swagger.py +0 -0
  440. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/scripts/security-scan.bat +0 -0
  441. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/scripts/security-scan.sh +0 -0
  442. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/bootstrap/__init__.py +0 -0
  443. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/bootstrap/bootstrap.py +0 -0
  444. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/bootstrap/providers.py +0 -0
  445. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/bootstrap/runtime.py +0 -0
  446. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/__init__.py +0 -0
  447. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/__init__.py +0 -0
  448. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/__init__.py +0 -0
  449. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/client.py +0 -0
  450. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/middleware/__init__.py +0 -0
  451. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/middleware/base.py +0 -0
  452. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/middleware/logging.py +0 -0
  453. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/middleware/retry.py +0 -0
  454. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/models.py +0 -0
  455. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/graphql/query_builder.py +0 -0
  456. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/__init__.py +0 -0
  457. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/client.py +0 -0
  458. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/__init__.py +0 -0
  459. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/base.py +0 -0
  460. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/logging.py +0 -0
  461. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/metadata.py +0 -0
  462. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/retry.py +0 -0
  463. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/middleware/timing.py +0 -0
  464. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/grpc/models.py +0 -0
  465. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/__init__.py +0 -0
  466. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/core/__init__.py +0 -0
  467. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/core/request.py +0 -0
  468. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/core/response.py +0 -0
  469. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/__init__.py +0 -0
  470. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/auth.py +0 -0
  471. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/factory.py +0 -0
  472. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/logging.py +0 -0
  473. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/retry.py +0 -0
  474. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/signature.py +0 -0
  475. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/middleware/telemetry.py +0 -0
  476. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/__init__.py +0 -0
  477. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/factory.py +0 -0
  478. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/httpx/__init__.py +0 -0
  479. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_base_api.py +0 -0
  480. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_client.py +0 -0
  481. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/httpx/base_api.py +0 -0
  482. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/httpx/client.py +0 -0
  483. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/clients/http/rest/protocols.py +0 -0
  484. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/__init__.py +0 -0
  485. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/async_database.py +0 -0
  486. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/database.py +0 -0
  487. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/factory.py +0 -0
  488. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/query_builder.py +0 -0
  489. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/redis/__init__.py +0 -0
  490. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/redis/async_redis.py +0 -0
  491. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/redis/redis_client.py +0 -0
  492. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/repositories/__init__.py +0 -0
  493. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/repositories/base.py +0 -0
  494. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/repositories/query_spec.py +0 -0
  495. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/databases/uow.py +0 -0
  496. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/__init__.py +0 -0
  497. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/__init__.py +0 -0
  498. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/app_actions.py +0 -0
  499. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/async_app_actions.py +0 -0
  500. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/factory.py +0 -0
  501. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/__init__.py +0 -0
  502. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser.py +0 -0
  503. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser_pool.py +0 -0
  504. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/async_page.py +0 -0
  505. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/browser.py +0 -0
  506. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/component.py +0 -0
  507. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/locator.py +0 -0
  508. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/playwright/page.py +0 -0
  509. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/drivers/web/protocols.py +0 -0
  510. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/__init__.py +0 -0
  511. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/batch/__init__.py +0 -0
  512. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/batch/spark/__init__.py +0 -0
  513. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/olap/__init__.py +0 -0
  514. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/stream/__init__.py +0 -0
  515. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/engines/stream/flink/__init__.py +0 -0
  516. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/__init__.py +0 -0
  517. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/pubsub/__init__.py +0 -0
  518. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/__init__.py +0 -0
  519. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/kafka/__init__.py +0 -0
  520. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/kafka/client.py +0 -0
  521. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/kafka/config.py +0 -0
  522. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/__init__.py +0 -0
  523. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/client.py +0 -0
  524. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/config.py +0 -0
  525. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rocketmq/__init__.py +0 -0
  526. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rocketmq/client.py +0 -0
  527. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/messengers/queue/rocketmq/config.py +0 -0
  528. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/__init__.py +0 -0
  529. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/blob/__init__.py +0 -0
  530. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/file/__init__.py +0 -0
  531. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/file/local/__init__.py +0 -0
  532. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/file/local/client.py +0 -0
  533. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/file/local/config.py +0 -0
  534. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/__init__.py +0 -0
  535. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/oss/__init__.py +0 -0
  536. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/oss/client.py +0 -0
  537. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/oss/config.py +0 -0
  538. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/s3/__init__.py +0 -0
  539. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/s3/client.py +0 -0
  540. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/capabilities/storages/object/s3/config.py +0 -0
  541. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/__init__.py +0 -0
  542. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/__main__.py +0 -0
  543. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/__init__.py +0 -0
  544. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/cicd.py +0 -0
  545. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/env.py +0 -0
  546. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/generate_cmd.py +0 -0
  547. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/init_cmd.py +0 -0
  548. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/commands/interactive.py +0 -0
  549. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/generators/__init__.py +0 -0
  550. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/generators/json_to_model.py +0 -0
  551. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/generators/openapi_generator.py +0 -0
  552. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/generators/openapi_parser.py +0 -0
  553. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/main.py +0 -0
  554. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/__init__.py +0 -0
  555. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/.github/workflows/release.yml +0 -0
  556. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/.github/workflows/scheduled.yml +0 -0
  557. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/.github/workflows/test-full.yml +0 -0
  558. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/.github/workflows/test.yml +0 -0
  559. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/.gitlab-ci.yml +0 -0
  560. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/Jenkinsfile +0 -0
  561. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/docker/.dockerignore +0 -0
  562. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/docker/Dockerfile +0 -0
  563. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/cicd/docker/docker-compose.yml +0 -0
  564. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/__init__.py +0 -0
  565. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/actions.py +0 -0
  566. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/api_client.py +0 -0
  567. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/builder.py +0 -0
  568. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/graphql_client.py +0 -0
  569. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/redis_example.py +0 -0
  570. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/repository.py +0 -0
  571. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/settings_enhanced.py +0 -0
  572. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/test.py +0 -0
  573. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/test_complete.py +0 -0
  574. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/generators/test_graphql.py +0 -0
  575. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/__init__.py +0 -0
  576. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/async_example_api.py +0 -0
  577. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/async_ui_app_actions.py +0 -0
  578. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/base_api.py +0 -0
  579. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/conftest.py +0 -0
  580. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/constants.py +0 -0
  581. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/data_cleaners.py +0 -0
  582. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/docs_api.py +0 -0
  583. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/editorconfig.py +0 -0
  584. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/enhanced_gitignore.py +0 -0
  585. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/env.py +0 -0
  586. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/fixture_chain_example.py +0 -0
  587. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/fixtures_init.py +0 -0
  588. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/full_conftest.py +0 -0
  589. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/full_settings.py +0 -0
  590. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/gitattributes.py +0 -0
  591. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/gitignore.py +0 -0
  592. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/models_requests_example.py +0 -0
  593. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/models_responses_example.py +0 -0
  594. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/pyproject_toml.py +0 -0
  595. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/script_fetch_swagger.py +0 -0
  596. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/script_run_tests.py +0 -0
  597. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/settings.py +0 -0
  598. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/test_async_example.py +0 -0
  599. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/test_example.py +0 -0
  600. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_app_actions.py +0 -0
  601. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_conftest.py +0 -0
  602. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_fixtures_init.py +0 -0
  603. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_page_object.py +0 -0
  604. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_settings.py +0 -0
  605. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/ui_test_example.py +0 -0
  606. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/uow.py +0 -0
  607. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/user_api_example.py +0 -0
  608. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/utils_converters.py +0 -0
  609. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/utils_validators.py +0 -0
  610. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/templates/project/vscode_settings.py +0 -0
  611. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/cli/utils.py +0 -0
  612. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/__init__.py +0 -0
  613. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/context/__init__.py +0 -0
  614. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/context/execution.py +0 -0
  615. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/context/propagation.py +0 -0
  616. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/decorators.py +0 -0
  617. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/events/__init__.py +0 -0
  618. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/events/types.py +0 -0
  619. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/exceptions.py +0 -0
  620. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/middleware/__init__.py +0 -0
  621. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/middleware/base.py +0 -0
  622. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/middleware/chain.py +0 -0
  623. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/middleware/decorator.py +0 -0
  624. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/middleware/protocol.py +0 -0
  625. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/models/__init__.py +0 -0
  626. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/models/base.py +0 -0
  627. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/__init__.py +0 -0
  628. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/client.py +0 -0
  629. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/event.py +0 -0
  630. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/plugin.py +0 -0
  631. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/repository.py +0 -0
  632. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/protocols/telemetry.py +0 -0
  633. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/core/types.py +0 -0
  634. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/__init__.py +0 -0
  635. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/__init__.py +0 -0
  636. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/loader.py +0 -0
  637. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/middleware_schema.py +0 -0
  638. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/pipeline.py +0 -0
  639. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/settings.py +0 -0
  640. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/config/sources.py +0 -0
  641. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/context/__init__.py +0 -0
  642. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/context/carriers/__init__.py +0 -0
  643. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/context/carriers/grpc.py +0 -0
  644. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/context/carriers/http.py +0 -0
  645. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/context/carriers/mq.py +0 -0
  646. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/events/__init__.py +0 -0
  647. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/events/bus.py +0 -0
  648. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/events/handlers/__init__.py +0 -0
  649. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/helpers/__init__.py +0 -0
  650. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/helpers/crypto.py +0 -0
  651. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/helpers/hash.py +0 -0
  652. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/helpers/network.py +0 -0
  653. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/helpers/signature.py +0 -0
  654. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/logging/__init__.py +0 -0
  655. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/logging/interface.py +0 -0
  656. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/logging/logger.py +0 -0
  657. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/__init__.py +0 -0
  658. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/decorators.py +0 -0
  659. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/manager.py +0 -0
  660. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/observer.py +0 -0
  661. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/performance.py +0 -0
  662. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/registry.py +0 -0
  663. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/metrics/types.py +0 -0
  664. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/plugins/__init__.py +0 -0
  665. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/plugins/hooks.py +0 -0
  666. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/plugins/manager.py +0 -0
  667. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/resilience/__init__.py +0 -0
  668. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/resilience/circuit_breaker.py +0 -0
  669. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/sanitize/__init__.py +0 -0
  670. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/telemetry/__init__.py +0 -0
  671. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/telemetry/exporters/__init__.py +0 -0
  672. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/telemetry/facade.py +0 -0
  673. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/telemetry/noop.py +0 -0
  674. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/__init__.py +0 -0
  675. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/context.py +0 -0
  676. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/decorators.py +0 -0
  677. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/exporters.py +0 -0
  678. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/integrations/__init__.py +0 -0
  679. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/integrations/database.py +0 -0
  680. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/integrations/sqlalchemy_instrumentation.py +0 -0
  681. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/interceptors/__init__.py +0 -0
  682. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/infrastructure/tracing/manager.py +0 -0
  683. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/__init__.py +0 -0
  684. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/__init__.py +0 -0
  685. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/monitoring/__init__.py +0 -0
  686. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/monitoring/plugin.py +0 -0
  687. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/reporting/__init__.py +0 -0
  688. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/reporting/allure_plugin.py +0 -0
  689. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/plugins/builtin/reporting/oms_reporter_plugin.py +0 -0
  690. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/__init__.py +0 -0
  691. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/assertions/__init__.py +0 -0
  692. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/assertions/helper.py +0 -0
  693. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/assertions/json_schema.py +0 -0
  694. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/assertions/matchers.py +0 -0
  695. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/assertions/response.py +0 -0
  696. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/__init__.py +0 -0
  697. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/builders/__init__.py +0 -0
  698. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/builders/base.py +0 -0
  699. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/factories/__init__.py +0 -0
  700. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/factories/base.py +0 -0
  701. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/factories/examples.py +0 -0
  702. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/generators/__init__.py +0 -0
  703. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/generators/data_generator.py +0 -0
  704. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/loaders/__init__.py +0 -0
  705. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/loaders/base.py +0 -0
  706. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/loaders/csv_loader.py +0 -0
  707. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/loaders/json_loader.py +0 -0
  708. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/data/loaders/yaml_loader.py +0 -0
  709. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/debugging/__init__.py +0 -0
  710. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/decorators/__init__.py +0 -0
  711. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/decorators/actions_class.py +0 -0
  712. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/decorators/api_class.py +0 -0
  713. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/decorators/service_client.py +0 -0
  714. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/__init__.py +0 -0
  715. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/allure.py +0 -0
  716. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/auth.py +0 -0
  717. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/cleanup.py +0 -0
  718. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/core.py +0 -0
  719. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/debugging.py +0 -0
  720. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/message_queue.py +0 -0
  721. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/metrics.py +0 -0
  722. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/monitoring.py +0 -0
  723. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/fixtures/ui.py +0 -0
  724. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/mocking/__init__.py +0 -0
  725. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/mocking/database_mock.py +0 -0
  726. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/mocking/http_mock.py +0 -0
  727. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/mocking/redis_mock.py +0 -0
  728. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/mocking/time_mock.py +0 -0
  729. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/__init__.py +0 -0
  730. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/api_autodiscovery.py +0 -0
  731. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/debug.py +0 -0
  732. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/env_plugin.py +0 -0
  733. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/logging_plugin.py +0 -0
  734. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/plugins/markers.py +0 -0
  735. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/reporting/__init__.py +0 -0
  736. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/reporting/allure/__init__.py +0 -0
  737. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/src/df_test_framework/testing/reporting/allure/helper.py +0 -0
  738. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/README.md +0 -0
  739. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/bootstrap/__init__.py +0 -0
  740. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/bootstrap/test_bootstrap.py +0 -0
  741. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/bootstrap/test_providers.py +0 -0
  742. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/bootstrap/test_runtime.py +0 -0
  743. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/__init__.py +0 -0
  744. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/graphql/__init__.py +0 -0
  745. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/graphql/test_client.py +0 -0
  746. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/graphql/test_middleware.py +0 -0
  747. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/graphql/test_models.py +0 -0
  748. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/graphql/test_query_builder.py +0 -0
  749. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/grpc/__init__.py +0 -0
  750. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/grpc/test_client.py +0 -0
  751. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/grpc/test_middleware.py +0 -0
  752. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/grpc/test_models.py +0 -0
  753. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/auth/signature/test_strategies.py +0 -0
  754. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/core/__init__.py +0 -0
  755. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/core/test_multipart.py +0 -0
  756. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/core/test_request.py +0 -0
  757. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/core/test_response.py +0 -0
  758. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/middleware/__init__.py +0 -0
  759. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/middleware/test_factory.py +0 -0
  760. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/middleware/test_logging.py +0 -0
  761. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_async_base_api.py +0 -0
  762. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_async_client.py +0 -0
  763. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_auth_control.py +0 -0
  764. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_base_api.py +0 -0
  765. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_factory.py +0 -0
  766. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/clients/http/rest/test_http_client.py +0 -0
  767. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/redis/test_async_redis.py +0 -0
  768. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/redis/test_redis_client.py +0 -0
  769. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_async_database.py +0 -0
  770. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_database.py +0 -0
  771. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_database_factory.py +0 -0
  772. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_query_builder.py +0 -0
  773. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_repositories.py +0 -0
  774. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/databases/test_uow.py +0 -0
  775. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/drivers/web/playwright/test_async_browser_pool.py +0 -0
  776. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/drivers/web/test_async_ui.py +0 -0
  777. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/drivers/web/test_modern_ui.py +0 -0
  778. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/messengers/__init__.py +0 -0
  779. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/messengers/test_kafka_client.py +0 -0
  780. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/messengers/test_rabbitmq_client.py +0 -0
  781. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/messengers/test_rocketmq_client.py +0 -0
  782. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/storages/__init__.py +0 -0
  783. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/storages/test_local_file.py +0 -0
  784. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/storages/test_oss.py +0 -0
  785. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/capabilities/storages/test_s3.py +0 -0
  786. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/__init__.py +0 -0
  787. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_env_cmd.py +0 -0
  788. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_generate_cmd.py +0 -0
  789. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_init_cmd.py +0 -0
  790. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_interactive_cmd.py +0 -0
  791. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_main.py +0 -0
  792. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/cli/test_utils.py +0 -0
  793. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/conftest.py +0 -0
  794. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/protocols/test_client.py +0 -0
  795. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/protocols/test_event.py +0 -0
  796. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/protocols/test_plugin.py +0 -0
  797. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/protocols/test_repository.py +0 -0
  798. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/protocols/test_telemetry.py +0 -0
  799. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_context.py +0 -0
  800. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_decorators.py +0 -0
  801. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_event_types.py +0 -0
  802. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_events.py +0 -0
  803. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_middleware.py +0 -0
  804. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/core/test_types.py +0 -0
  805. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/__init__.py +0 -0
  806. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/config/test_loader.py +0 -0
  807. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/config/test_middleware_schema.py +0 -0
  808. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/context/test_carriers.py +0 -0
  809. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/events/__init__.py +0 -0
  810. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/events/test_bus.py +0 -0
  811. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/__init__.py +0 -0
  812. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_decorators.py +0 -0
  813. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_manager.py +0 -0
  814. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_observer.py +0 -0
  815. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_performance.py +0 -0
  816. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_registry.py +0 -0
  817. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/metrics/test_types.py +0 -0
  818. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/plugins/test_manager.py +0 -0
  819. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/resilience/__init__.py +0 -0
  820. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/resilience/test_circuit_breaker.py +0 -0
  821. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/sanitize/__init__.py +0 -0
  822. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/telemetry/__init__.py +0 -0
  823. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/telemetry/test_facade.py +0 -0
  824. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/telemetry/test_noop.py +0 -0
  825. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_bootstrap.py +0 -0
  826. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_helpers.py +0 -0
  827. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_logging.py +0 -0
  828. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_pipeline.py +0 -0
  829. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_runtime.py +0 -0
  830. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_settings.py +0 -0
  831. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/test_sources.py +0 -0
  832. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/__init__.py +0 -0
  833. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_context.py +0 -0
  834. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_decorators.py +0 -0
  835. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_exporters.py +0 -0
  836. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/infrastructure/tracing/test_manager.py +0 -0
  837. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/integration/__init__.py +0 -0
  838. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/integration/test_config_environment.py +0 -0
  839. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/integration/test_event_observability.py +0 -0
  840. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/integration/test_factory_assertions.py +0 -0
  841. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/integration/test_middleware_chain.py +0 -0
  842. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/migration/__init__.py +0 -0
  843. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/migration/test_v3_13_to_v3_14_examples.py +0 -0
  844. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/plugins/__init__.py +0 -0
  845. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/plugins/builtin/__init__.py +0 -0
  846. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/plugins/builtin/monitoring/__init__.py +0 -0
  847. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/plugins/builtin/monitoring/test_plugin.py +0 -0
  848. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/test_json_to_model_generator.py +0 -0
  849. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/assertions/__init__.py +0 -0
  850. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/assertions/test_json_schema.py +0 -0
  851. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/assertions/test_matchers.py +0 -0
  852. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/data/__init__.py +0 -0
  853. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/data/test_builders.py +0 -0
  854. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/data/test_data_generator.py +0 -0
  855. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/data/test_factories.py +0 -0
  856. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/debugging/__init__.py +0 -0
  857. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/decorators/__init__.py +0 -0
  858. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/decorators/test_actions_class.py +0 -0
  859. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/decorators/test_api_class.py +0 -0
  860. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/decorators/test_service_client.py +0 -0
  861. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/__init__.py +0 -0
  862. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_cleanup.py +0 -0
  863. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_fixtures_core.py +0 -0
  864. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_fixtures_debugging.py +0 -0
  865. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_fixtures_message_queue.py +0 -0
  866. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_fixtures_monitoring.py +0 -0
  867. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_http_recorder.py +0 -0
  868. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_monitoring_metrics.py +0 -0
  869. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/fixtures/test_ui_fixtures.py +0 -0
  870. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/mocking/__init__.py +0 -0
  871. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/mocking/test_database_mock.py +0 -0
  872. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/mocking/test_http_mock.py +0 -0
  873. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/mocking/test_redis_mock.py +0 -0
  874. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/mocking/test_time_mock.py +0 -0
  875. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/plugins/test_api_autodiscovery.py +0 -0
  876. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/plugins/test_debug_plugin.py +0 -0
  877. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/plugins/test_env_plugin.py +0 -0
  878. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/plugins/test_logging_plugin.py +0 -0
  879. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/plugins/test_markers.py +0 -0
  880. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/reporting/test_allure_observer.py +0 -0
  881. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/test_allure_helper.py +0 -0
  882. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/test_assertions.py +0 -0
  883. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/test_data_loaders.py +0 -0
  884. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/tests/testing/test_factories_presets.py +0 -0
  885. {df_test_framework-4.4.2 → df_test_framework-4.4.3}/verify_fixes.py +0 -0
@@ -5,6 +5,15 @@
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.3] - 2026-04-23
9
+
10
+ ### ♻️ 重构
11
+
12
+ - **脱敏收归事件源(EventPublisher)**:HTTP/gRPC/GraphQL 三个 EventPublisher 中间件统一在发布事件前完成脱敏,事件总线成为"干净数据总线"。ConsoleDebugObserver、AllureObserver(事件路径)、HttpRequestRecorder header 展示均移除冗余脱敏逻辑,直接消费已脱敏的事件数据
13
+ - **消除独立脱敏硬编码**:TracingInterceptor(HTTP)、GrpcTracingMiddleware、ObservabilityLogger 三处自持的 sensitive_keys/sensitive_headers 配置参数废除,统一委托给 `SanitizeService`,与全局 `SanitizeConfig` 保持一致
14
+ - **简化 SanitizeService API**:`sanitize_data(data, context)` 和 `sanitize_text(text, context)` 的 `context` 参数移除(per-context 开关无意义,脱敏应在源头一次完成);`is_context_enabled()` 方法移除;`SanitizeConfig` 移除 `console`/`allure` 子配置,仅保留有独立意义的 `logging` 子配置
15
+ - **HttpRequestRecorder failure section 保留安全兜底**:`_format_body` 作为最终展示边界,保留对 body 的脱敏处理,防止非事件路径注入的原始数据泄露
16
+
8
17
  ## [4.4.2] - 2026-04-20
9
18
 
10
19
  ### 🐛 修复
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: df-test-framework
3
- Version: 4.4.2
3
+ Version: 4.4.3
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
@@ -0,0 +1,176 @@
1
+ # 脱敏服务使用指南
2
+
3
+ > **最后更新**: 2026-04-23
4
+ > **适用版本**: v4.4.3+
5
+
6
+ ---
7
+
8
+ ## 为什么要脱敏
9
+
10
+ 框架的测试输出会流向多个通道:pytest 终端、CI 日志、Allure 报告、调试控制台。
11
+ 这些通道都容易被截图、归档、上传到测试平台,一旦裸打敏感数据就很难收回来。
12
+
13
+ ---
14
+
15
+ ## 架构:脱敏在事件源完成(v4.4.3)
16
+
17
+ v4.4.3 起,脱敏收归 **EventPublisher 层**:HTTP/gRPC/GraphQL 三个 EventPublisher 中间件在发布事件前统一脱敏,事件总线只承载干净数据。所有消费者(ConsoleDebugObserver、AllureObserver、追踪拦截器)直接消费已脱敏的事件,不再重复处理。
18
+
19
+ ```
20
+ 请求 → [中间件链] → EventPublisher(脱敏)→ EventBus → 各消费者
21
+
22
+ 唯一脱敏点
23
+ ```
24
+
25
+ **好处**:
26
+ - 脱敏规则只在 `SanitizeConfig` 定义一次,所有通道自动生效
27
+ - 业务项目补充字段后,终端、报告、日志、追踪全部同步覆盖
28
+ - 消费者逻辑简单,不需要了解"哪些字段是敏感的"
29
+
30
+ ---
31
+
32
+ ## 三条统一入口
33
+
34
+ ### `sanitize_header(name, value)`
35
+
36
+ 处理 HTTP/gRPC header 和 metadata 值。`PARTIAL` 策略下对 `Authorization: Bearer xxx` 这类带 scheme 前缀的值做特殊格式化,同时对超长非敏感值做截断。
37
+
38
+ ```python
39
+ service.sanitize_header("Authorization", "Bearer eyJhbGciOiJIUzI1NiJ9.payload.KS8yo")
40
+ # PARTIAL → 'Bearer eyJhbGci...KS8yo'
41
+ # FULL → '******'
42
+ # HASH → 'sha256:a1b2c3d4...'
43
+
44
+ service.sanitize_header("X-Api-Key", "sk-1234567890abcdef")
45
+ # PARTIAL → 'sk-1****cdef'
46
+
47
+ service.sanitize_header("User-Agent", "Mozilla/5.0 (Windows NT...)")
48
+ # 非敏感,超长时截断,不脱敏
49
+ ```
50
+
51
+ ### `sanitize_data(data)`
52
+
53
+ 处理结构化数据(dict / list),深度递归按字段名脱敏。适用于 JSON body、响应体、测试数据。
54
+
55
+ ```python
56
+ service.sanitize_data({
57
+ "euserId": 123,
58
+ "apiKey": "SUPER_SECRET",
59
+ "order": {"password": "pay_pwd_123"}
60
+ })
61
+ # → {"euserId": 123, "apiKey": "SUPE****RET", "order": {"password": "pay_****_12"}}
62
+ ```
63
+
64
+ 顶层为 list 时同样支持:
65
+
66
+ ```python
67
+ service.sanitize_data([
68
+ {"name": "alice", "token": "tok_abc"},
69
+ {"name": "bob", "token": "tok_xyz"},
70
+ ])
71
+ ```
72
+
73
+ ### `sanitize_text(text)`
74
+
75
+ 处理非结构化文本:form-urlencoded body、querystring、日志消息、错误描述。通过 `sensitive_patterns` 正则匹配替换。
76
+
77
+ ```python
78
+ service.sanitize_text("username=alice&password=secret123")
79
+ # → 'username=alice&password=******'
80
+
81
+ service.sanitize_text("Login failed: token=abc123xyz")
82
+ # → 'Login failed: token=******'
83
+ ```
84
+
85
+ ---
86
+
87
+ ## 脱敏策略
88
+
89
+ 通过 `default_strategy` 全局配置:
90
+
91
+ | 策略 | 效果 | 示例输出 |
92
+ |------|------|---------|
93
+ | `PARTIAL`(默认) | 保留首尾各 4 字符,中间 `****` | `myse****word` |
94
+ | `FULL` | 整体替换为 `mask_value` | `******` |
95
+ | `HASH` | SHA256 前 16 位 | `sha256:a1b2c3d4e5f6g7h8` |
96
+
97
+ > `sanitize_header` 在 `PARTIAL` 策略下对带 scheme 前缀的值额外格式化:
98
+ > `{scheme} {first8}...{last5}`;`FULL`/`HASH` 下严格遮蔽整个 token。
99
+
100
+ ---
101
+
102
+ ## 配置
103
+
104
+ ### 框架内置的默认敏感字段
105
+
106
+ ```
107
+ password, passwd, pwd
108
+ token, access_token, refresh_token
109
+ secret, api_key, apikey
110
+ authorization, auth, credential
111
+ x-token, x-api-key, x-sign, x-signature
112
+ ```
113
+
114
+ `sensitive_patterns` 默认覆盖 `password=xxx`、`token=xxx`、`api_key=xxx` 等 key-value 文本格式。
115
+
116
+ ### 业务项目补充字段
117
+
118
+ 在 `config/base.yaml` 追加项目特有字段,**不要覆盖框架默认值**:
119
+
120
+ ```yaml
121
+ # config/base.yaml
122
+ sanitize:
123
+ sensitive_keys:
124
+ # 框架默认字段(保留)
125
+ - password
126
+ - token
127
+ - api_key
128
+ - authorization
129
+ # 业务项目补充
130
+ - apiKey # camelCase 接口字段
131
+ - euserPayPwd # 支付密码
132
+ - payPassword
133
+ - ".*PayPwd$" # 正则:匹配所有支付密码字段
134
+ - ".*Secret$" # 正则:匹配所有 secret 字段
135
+ ```
136
+
137
+ > `sensitive_keys` 支持精确匹配和正则,不区分大小写。
138
+
139
+ ### 可选配置项
140
+
141
+ ```yaml
142
+ sanitize:
143
+ enabled: true # 全局开关
144
+ default_strategy: PARTIAL # PARTIAL / FULL / HASH
145
+ keep_prefix: 4 # PARTIAL:保留前缀字符数
146
+ keep_suffix: 4 # PARTIAL:保留后缀字符数
147
+ mask_char: "*" # PARTIAL:掩码字符
148
+ mask_value: "******" # FULL:完整替换值
149
+
150
+ logging:
151
+ enabled: true # structlog 日志管道独立开关
152
+ ```
153
+
154
+ `logging` 是唯一有意义的子配置:structlog processor 会拦截所有日志调用(不只是事件路径),独立开关可以在保留事件通道脱敏的同时关闭日志管道脱敏(反之亦然)。
155
+
156
+ ---
157
+
158
+ ## 本地调试
159
+
160
+ v4.4.3+ 脱敏在事件源(EventPublisher)统一完成,没有"只关终端、保留报告"的选项。如果需要在本地看完整数据:
161
+
162
+ ```yaml
163
+ # config/environments/local.yaml
164
+ sanitize:
165
+ enabled: false # 关闭所有脱敏(终端、报告、日志均显示原始值)
166
+ ```
167
+
168
+ **注意**:`enabled: false` 同时影响 Allure 报告和 CI 日志,不要提交到共享环境配置。
169
+
170
+ ---
171
+
172
+ ## 相关文档
173
+
174
+ - [配置系统指南](config_guide.md)
175
+ - [HTTP 客户端指南](http_client_guide.md)
176
+ - [service_client 接入指南](service_client_guide.md)
@@ -0,0 +1,100 @@
1
+ # v4.4.3 发布说明
2
+
3
+ **发布日期**: 2026-04-23
4
+ **版本类型**: PATCH(内部架构重构,无 API 增减)
5
+
6
+ ---
7
+
8
+ ## 概述
9
+
10
+ 本版本完成了脱敏架构的根本性重构:**脱敏收归事件源**。
11
+
12
+ 此前框架存在"多处分散脱敏"的问题——EventPublisher 发布原始数据,ConsoleDebugObserver、AllureObserver、TracingInterceptor、ObservabilityLogger 各自维护独立的脱敏逻辑和 sensitive_keys 配置,与全局 `SanitizeConfig` 割裂,导致:
13
+
14
+ - 用户在 `sanitize.sensitive_keys` 中添加的自定义字段,在 tracing/observability 路径下不生效
15
+ - 事件总线承载的是原始数据,所有消费者都需要重复脱敏
16
+ - 脱敏逻辑分散在 6+ 个文件,行为不一致
17
+
18
+ **v4.4.3 的核心原则**:事件是"显示就绪的记录",EventPublisher 是数据进入事件总线前的唯一脱敏点。
19
+
20
+ ---
21
+
22
+ ## 变更详情
23
+
24
+ ### EventPublisher 层(数据源)
25
+
26
+ | 文件 | 变更 |
27
+ |------|------|
28
+ | `http/middleware/event_publisher.py` | 发布前脱敏 headers、params、request body、response headers |
29
+ | `grpc/middleware/event_publisher.py` | 发布前脱敏 metadata |
30
+ | `graphql/middleware/event_publisher.py` | 发布前脱敏 variables |
31
+
32
+ ### 消费者层(移除冗余脱敏)
33
+
34
+ | 文件 | 变更 |
35
+ |------|------|
36
+ | `testing/debugging/console.py` | 删除 `_sanitize_service` 属性和 `_sanitize_value()` 方法 |
37
+ | `testing/reporting/allure/observer.py` | 事件路径移除脱敏;直接回调路径(原始 Request 对象)保留 `_sanitize_for_allure` |
38
+ | `testing/fixtures/http_recorder.py` | header 展示移除 `_sanitize_header`;`_format_body` 保留脱敏作为最终边界安全兜底 |
39
+
40
+ ### 基础设施层(统一委托)
41
+
42
+ | 文件 | 变更 |
43
+ |------|------|
44
+ | `infrastructure/tracing/interceptors/http.py` | 废除 `sensitive_headers` 参数,`_sanitize_header` 委托 SanitizeService |
45
+ | `infrastructure/tracing/interceptors/grpc.py` | 废除 `sensitive_keys` 参数,`_sanitize_value` 委托 SanitizeService |
46
+ | `infrastructure/logging/observability.py` | `_sanitize_value(value)` → `_sanitize_value(key, value)`,委托 SanitizeService |
47
+
48
+ ### SanitizeService API 简化
49
+
50
+ | 变更 | 原因 |
51
+ |------|------|
52
+ | `sanitize_data(data, context)` → `sanitize_data(data)` | per-context 开关无意义,脱敏应在源头一次完成 |
53
+ | `sanitize_text(text, context)` → `sanitize_text(text)` | 同上 |
54
+ | 移除 `is_context_enabled(context)` | 职责消除 |
55
+ | `SanitizeConfig` 移除 `console`/`allure` 子配置 | 两个通道的数据均来自已脱敏的事件,开关无实际意义 |
56
+ | 保留 `logging: SanitizeContextConfig` | structlog processor 拦截所有日志调用,不只是事件路径,独立开关有意义 |
57
+
58
+ ---
59
+
60
+ ## 迁移指南
61
+
62
+ ### 代码变更(用户侧)
63
+
64
+ 如果你在测试代码中直接调用了以下 API:
65
+
66
+ ```python
67
+ # ❌ 旧 API(已移除 context 参数)
68
+ service.sanitize_data(data, context="console")
69
+ service.sanitize_text(text, context="logging")
70
+
71
+ # ✅ 新 API
72
+ service.sanitize_data(data)
73
+ service.sanitize_text(text)
74
+ ```
75
+
76
+ ```python
77
+ # ❌ 旧:TracingInterceptor 自定义敏感头
78
+ TracingInterceptor(sensitive_headers=["x-custom-secret"])
79
+
80
+ # ✅ 新:在全局配置中声明
81
+ # settings.yaml: sanitize.sensitive_keys: ["x-custom-secret"]
82
+ ```
83
+
84
+ ### 配置变更
85
+
86
+ ```yaml
87
+ # ❌ 旧配置(已无效)
88
+ sanitize:
89
+ console:
90
+ enabled: true
91
+ allure:
92
+ enabled: false
93
+
94
+ # ✅ 新配置(console/allure 子项移除,只保留 logging)
95
+ sanitize:
96
+ enabled: true
97
+ sensitive_keys: ["api_key", "euserPayPwd"]
98
+ logging:
99
+ enabled: true
100
+ ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "df-test-framework"
3
- version = "4.4.2"
3
+ version = "4.4.3"
4
4
  description = "基于交互模式的现代化测试自动化框架,支持多种测试场景"
5
5
  authors = [{name = "DF QA Team", email = "qa@example.com"}]
6
6
  readme = "README_PYPI.md"
@@ -170,7 +170,7 @@ v3.18.1 特性:
170
170
  - 🔄 Unit of Work 模式支持(v3.7)
171
171
  """
172
172
 
173
- __version__ = "4.4.2"
173
+ __version__ = "4.4.3"
174
174
  __author__ = "DF QA Team"
175
175
 
176
176
  # ==============================================================================
@@ -110,6 +110,20 @@ class GraphQLEventPublisherMiddleware(GraphQLMiddleware):
110
110
  query = self._truncate_query(request.query) if self._include_query else None
111
111
  variables = request.variables_json if self._include_variables else None
112
112
 
113
+ # 脱敏 variables(用户显式启用时可能含敏感字段)
114
+ if variables:
115
+ import json as _json
116
+
117
+ from df_test_framework.infrastructure.sanitize import get_sanitize_service
118
+
119
+ _svc = get_sanitize_service()
120
+ try:
121
+ _parsed = _json.loads(variables)
122
+ if isinstance(_parsed, dict):
123
+ variables = _json.dumps(_svc.sanitize_data(_parsed), ensure_ascii=False)
124
+ except (ValueError, TypeError):
125
+ pass
126
+
113
127
  # 发布请求开始事件
114
128
  start_event, correlation_id = GraphQLRequestStartEvent.create(
115
129
  url=request.url,
@@ -139,11 +139,19 @@ class GrpcEventPublisherMiddleware(GrpcMiddleware):
139
139
  if self._log_request_data:
140
140
  request_data = self._serialize_data(request.message)
141
141
 
142
+ # 脱敏:metadata 可能含 Authorization 等敏感头,进 EventBus 前处理
143
+ from df_test_framework.infrastructure.sanitize import get_sanitize_service
144
+
145
+ _svc = get_sanitize_service()
146
+ sanitized_metadata = {
147
+ k: _svc.sanitize_header(k, str(v)) for k, v in (request.metadata_dict or {}).items()
148
+ }
149
+
142
150
  # 发布开始事件
143
151
  start_event, correlation_id = GrpcRequestStartEvent.create(
144
152
  service=self._service_name,
145
153
  method=request.method,
146
- metadata=request.metadata_dict,
154
+ metadata=sanitized_metadata,
147
155
  request_data=request_data,
148
156
  )
149
157
  await event_bus.publish(start_event)
@@ -97,6 +97,14 @@ class HttpEventPublisherMiddleware(BaseMiddleware[Request, Response]):
97
97
  params = self._extract_params(request)
98
98
  body = self._extract_body(request)
99
99
 
100
+ # 脱敏:在数据进入 EventBus 前完成,消费者直接展示
101
+ from df_test_framework.infrastructure.sanitize import get_sanitize_service
102
+
103
+ _svc = get_sanitize_service()
104
+ headers = {k: _svc.sanitize_header(k, v) for k, v in headers.items()}
105
+ params = _svc.sanitize_data(params) if params else {}
106
+ body = self._sanitize_body(_svc, body)
107
+
100
108
  # 发布请求开始事件(异步发布,因为我们在 async 上下文中)
101
109
  start_event, correlation_id = HttpRequestStartEvent.create(
102
110
  method=request.method,
@@ -119,15 +127,18 @@ class HttpEventPublisherMiddleware(BaseMiddleware[Request, Response]):
119
127
  response = await call_next(request)
120
128
  duration = time.time() - start_time
121
129
 
122
- # 发布请求结束事件
130
+ # 发布请求结束事件(响应头和 body 同样脱敏)
131
+ resp_headers = {
132
+ k: _svc.sanitize_header(k, v) for k, v in (response.headers or {}).items()
133
+ }
123
134
  end_event = HttpRequestEndEvent.create(
124
135
  correlation_id=correlation_id,
125
136
  method=request.method,
126
137
  url=full_url,
127
138
  status_code=response.status_code,
128
139
  duration=duration,
129
- headers=dict(response.headers) if response.headers else None,
130
- body=response.body,
140
+ headers=resp_headers or None,
141
+ body=self._sanitize_body(_svc, response.body),
131
142
  )
132
143
  # v3.46.1: 手动注入 scope
133
144
  if self._runtime.scope:
@@ -233,3 +244,17 @@ class HttpEventPublisherMiddleware(BaseMiddleware[Request, Response]):
233
244
  file_info.append(f"{name}: <file>")
234
245
  return f"<multipart: {', '.join(file_info)}>"
235
246
  return None
247
+
248
+ def _sanitize_body(self, service: Any, body: str | None) -> str | None:
249
+ """脱敏请求/响应 body:JSON 结构化脱敏,非 JSON 正则脱敏"""
250
+ if not body:
251
+ return body
252
+ import json
253
+
254
+ try:
255
+ parsed = json.loads(body)
256
+ if isinstance(parsed, (dict, list)):
257
+ return json.dumps(service.sanitize_data(parsed), ensure_ascii=False, default=str)
258
+ except (json.JSONDecodeError, ValueError):
259
+ pass
260
+ return service.sanitize_text(body)
@@ -696,10 +696,9 @@ logging:
696
696
  level: DEBUG # DEBUG 级别日志
697
697
  format: text # 彩色文本输出
698
698
 
699
- # 本地调试时关闭脱敏,查看完整数据
699
+ # 本地调试时关闭脱敏,查看完整数据(v4.4.3+ 脱敏在事件源统一处理,仅全局开关有效)
700
700
  sanitize:
701
- console:
702
- enabled: false
701
+ enabled: false
703
702
 
704
703
  # 可观测性配置
705
704
  observability:
@@ -334,8 +334,7 @@ debug: true
334
334
  logging:
335
335
  level: DEBUG
336
336
  sanitize:
337
- console:
338
- enabled: false # 本地终端看完整值,日志 / Allure 仍脱敏
337
+ enabled: false # 本地调试关闭脱敏,v4.4.3+ 脱敏在事件源统一处理
339
338
  observability:
340
339
  debug_output: true
341
340
  test:
@@ -1100,8 +1099,7 @@ web:
1100
1099
  logging:
1101
1100
  level: DEBUG
1102
1101
  sanitize:
1103
- console:
1104
- enabled: false # 本地终端看完整值,日志 / Allure 仍脱敏
1102
+ enabled: false # 本地调试关闭脱敏,v4.4.3+ 脱敏在事件源统一处理
1105
1103
  observability:
1106
1104
  debug_output: true
1107
1105
  test:
@@ -746,11 +746,11 @@ class SanitizeConfig(BaseModel):
746
746
  """统一脱敏配置
747
747
 
748
748
  v3.40.0 新增:将日志系统、ConsoleDebugObserver、AllureObserver 的脱敏逻辑统一。
749
+ v4.5.0 简化:脱敏统一在数据源(EventPublisher)处理,移除 console/allure 独立开关。
749
750
 
750
751
  特性:
751
752
  - 共享敏感字段定义(支持正则匹配)
752
753
  - 多种脱敏策略(完全隐藏、部分保留、哈希)
753
- - 各组件独立开关控制
754
754
  - 配置驱动(YAML/环境变量)
755
755
 
756
756
  Example:
@@ -765,9 +765,7 @@ class SanitizeConfig(BaseModel):
765
765
  SANITIZE__DEFAULT_STRATEGY=partial
766
766
  SANITIZE__KEEP_PREFIX=4
767
767
  SANITIZE__KEEP_SUFFIX=4
768
- SANITIZE__LOGGING__ENABLED=true
769
- SANITIZE__CONSOLE__ENABLED=false # 本地调试时关闭
770
- SANITIZE__ALLURE__ENABLED=true
768
+ SANITIZE__LOGGING__ENABLED=true # 日志管道独立开关
771
769
  """
772
770
 
773
771
  enabled: bool = Field(default=True, description="是否启用脱敏(全局开关)")
@@ -827,19 +825,11 @@ class SanitizeConfig(BaseModel):
827
825
  mask_char: str = Field(default="*", max_length=1, description="脱敏占位字符")
828
826
  mask_value: str = Field(default="******", description="完全脱敏时的替换值")
829
827
 
830
- # 各组件独立开关
828
+ # 日志管道独立开关(结构化日志是独立管道,可单独控制)
831
829
  logging: SanitizeContextConfig = Field(
832
830
  default_factory=SanitizeContextConfig,
833
831
  description="日志系统脱敏配置",
834
832
  )
835
- console: SanitizeContextConfig = Field(
836
- default_factory=SanitizeContextConfig,
837
- description="控制台调试输出脱敏配置",
838
- )
839
- allure: SanitizeContextConfig = Field(
840
- default_factory=SanitizeContextConfig,
841
- description="Allure 报告脱敏配置",
842
- )
843
833
 
844
834
 
845
835
  class SignatureConfig(BaseModel):
@@ -136,8 +136,8 @@ def _sanitize_sensitive_data(logger: Any, method_name: str, event_dict: EventDic
136
136
 
137
137
  service = get_sanitize_service()
138
138
 
139
- # 检查 logging 上下文是否启用脱敏
140
- if not service.is_context_enabled("logging"):
139
+ # 检查全局开关和日志管道独立开关
140
+ if not service.config.enabled or not service.config.logging.enabled:
141
141
  return event_dict
142
142
 
143
143
  # 脱敏字段值
@@ -148,7 +148,7 @@ def _sanitize_sensitive_data(logger: Any, method_name: str, event_dict: EventDic
148
148
 
149
149
  # 脱敏消息内容
150
150
  if "event" in event_dict and isinstance(event_dict["event"], str):
151
- event_dict["event"] = service.sanitize_text(event_dict["event"], context="logging")
151
+ event_dict["event"] = service.sanitize_text(event_dict["event"])
152
152
 
153
153
  return event_dict
154
154
 
@@ -157,7 +157,7 @@ class ObservabilityLogger:
157
157
 
158
158
  # 只输出关键 headers(认证、签名等)
159
159
  key_headers = {
160
- k: (self._sanitize_value(v) if sanitize else v)
160
+ k: (self._sanitize_value(k, v) if sanitize else v)
161
161
  for k, v in headers.items()
162
162
  if k.lower() in ("authorization", "x-sign", "x-token", "x-signature")
163
163
  }
@@ -504,18 +504,11 @@ class ObservabilityLogger:
504
504
 
505
505
  # 辅助方法
506
506
 
507
- def _sanitize_value(self, value: str) -> str:
508
- """脱敏敏感值
507
+ def _sanitize_value(self, key: str, value: str) -> str:
508
+ """脱敏敏感值(委托给 SanitizeService,与全局配置一致)"""
509
+ from df_test_framework.infrastructure.sanitize import get_sanitize_service
509
510
 
510
- Args:
511
- value: 原始值
512
-
513
- Returns:
514
- 脱敏后的值
515
- """
516
- if len(value) <= 10:
517
- return value[:3] + "..."
518
- return value[:10] + "..."
511
+ return get_sanitize_service().sanitize_header(key, value)
519
512
 
520
513
  def _describe_changes(self, changes: dict[str, Any]) -> str:
521
514
  """描述变更内容
@@ -2,13 +2,13 @@
2
2
 
3
3
  v3.40.0 新增:将日志系统、ConsoleDebugObserver、AllureObserver 的脱敏逻辑统一。
4
4
  v3.40.1 重构:移除独立单例,与 settings 生命周期绑定,配置变更自动生效。
5
+ v4.5.0 简化:脱敏在数据源(EventPublisher)处理,移除 context 参数和各组件独立开关。
5
6
 
6
7
  特性:
7
8
  - 共享敏感字段定义(支持正则匹配)
8
9
  - 多种脱敏策略(完全隐藏、部分保留、哈希)
9
10
  - 深度递归脱敏(支持嵌套 dict/list)
10
11
  - 消息内容正则脱敏
11
- - 各组件独立开关控制
12
12
  - 与 settings 生命周期绑定(clear_settings_cache 自动清除)
13
13
 
14
14
  使用方式:
@@ -16,7 +16,7 @@ v3.40.1 重构:移除独立单例,与 settings 生命周期绑定,配置
16
16
  >>> service = get_sanitize_service()
17
17
  >>> service.sanitize_value("password", "secret123")
18
18
  'secr****t123'
19
- >>> service.sanitize_data({"password": "secret", "name": "test"}, context="console")
19
+ >>> service.sanitize_data({"password": "secret", "name": "test"})
20
20
  {'password': 'secr****', 'name': 'test'}
21
21
  """
22
22
 
@@ -181,13 +181,11 @@ class SanitizeService:
181
181
  def sanitize_data(
182
182
  self,
183
183
  data: dict[str, Any] | list[Any] | None,
184
- context: str,
185
184
  ) -> dict[str, Any] | list[Any] | None:
186
185
  """脱敏结构化数据(dict / list,深度递归)
187
186
 
188
187
  Args:
189
188
  data: 要脱敏的字典或列表(顶层为 list 时也会递归到内部 dict 元素)
190
- context: 上下文(logging/console/allure),用于检查独立开关
191
189
 
192
190
  Returns:
193
191
  脱敏后的数据,结构与入参一致
@@ -198,10 +196,6 @@ class SanitizeService:
198
196
  if not self.config.enabled:
199
197
  return data
200
198
 
201
- ctx_config = getattr(self.config, context, None)
202
- if ctx_config is not None and not ctx_config.enabled:
203
- return data
204
-
205
199
  return self._sanitize_recursive(data)
206
200
 
207
201
  def _sanitize_recursive(self, data: Any) -> Any:
@@ -231,7 +225,7 @@ class SanitizeService:
231
225
 
232
226
  return data
233
227
 
234
- def sanitize_text(self, text: str, context: str) -> str:
228
+ def sanitize_text(self, text: str) -> str:
235
229
  """脱敏非结构化文本(正则匹配)
236
230
 
237
231
  适用场景:日志消息、form-urlencoded body、querystring、纯文本错误消息等
@@ -239,7 +233,6 @@ class SanitizeService:
239
233
 
240
234
  Args:
241
235
  text: 原始文本
242
- context: 上下文(logging/console/allure),用于检查独立开关
243
236
 
244
237
  Returns:
245
238
  脱敏后的文本
@@ -250,10 +243,6 @@ class SanitizeService:
250
243
  if not isinstance(text, str):
251
244
  return text
252
245
 
253
- ctx_config = getattr(self.config, context, None)
254
- if ctx_config is not None and not ctx_config.enabled:
255
- return text
256
-
257
246
  result = text
258
247
  for pattern in self._message_patterns:
259
248
  # 保留第一个分组(键名部分),替换第二个分组(值部分)
@@ -261,9 +250,7 @@ class SanitizeService:
261
250
 
262
251
  return result
263
252
 
264
- def sanitize_header(
265
- self, name: str, value: str, context: str = "console", max_length: int = 80
266
- ) -> str:
253
+ def sanitize_header(self, name: str, value: str, max_length: int = 80) -> str:
267
254
  """脱敏单个 HTTP header 值(HTTP 专属)。
268
255
 
269
256
  敏感字段按 SanitizeConfig.default_strategy 处理:
@@ -272,13 +259,9 @@ class SanitizeService:
272
259
  - FULL:走 sanitize_value → mask_value(如 ******)
273
260
  - HASH:走 sanitize_value → sha256:...
274
261
  非敏感长值超过 max_length:截断为 '{val[:max_length-3]}...'
275
- context 对应 SanitizeConfig 中的组件开关(console/allure/logging)。
276
262
  """
277
263
  if not self.config.enabled:
278
264
  return value
279
- ctx_config = getattr(self.config, context, None)
280
- if ctx_config is not None and not ctx_config.enabled:
281
- return value
282
265
  if self.is_sensitive(name):
283
266
  # 延迟导入避免循环依赖
284
267
  from df_test_framework.infrastructure.config import SanitizeStrategy
@@ -295,24 +278,6 @@ class SanitizeService:
295
278
  return value[: max_length - 3] + "..."
296
279
  return value
297
280
 
298
- def is_context_enabled(self, context: str) -> bool:
299
- """检查指定上下文是否启用脱敏
300
-
301
- Args:
302
- context: 上下文名称(logging/console/allure)
303
-
304
- Returns:
305
- 是否启用脱敏
306
- """
307
- if not self.config.enabled:
308
- return False
309
-
310
- ctx_config = getattr(self.config, context, None)
311
- if ctx_config is None:
312
- return True # 未配置时默认启用
313
-
314
- return ctx_config.enabled
315
-
316
281
 
317
282
  def get_sanitize_service() -> SanitizeService:
318
283
  """获取脱敏服务实例