df-test-framework 4.7.0__tar.gz → 4.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/AGENTS.md +70 -14
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/CHANGELOG.md +19 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/CLAUDE.md +52 -14
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/PKG-INFO +85 -62
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/README.md +44 -73
- df_test_framework-4.7.2/README_PYPI.md +150 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/ESSENTIAL_DOCS.md +49 -5
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/FAQ.md +7 -3
- df_test_framework-4.7.2/docs/README.md +199 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/README.md +2 -3
- df_test_framework-4.7.2/docs/development/DOCUMENTATION_MAINTENANCE.md +176 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/allure_plugin.md +33 -17
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/bootstrap_guide.md +63 -3
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/fixture_chain_pattern.md +21 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/scaffold_cli_guide.md +31 -8
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/testing-development.md +9 -5
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/web-ui-testing.md +14 -13
- df_test_framework-4.7.2/docs/releases/README.md +89 -0
- df_test_framework-4.7.2/docs/releases/v4.7.1.md +38 -0
- df_test_framework-4.7.2/docs/releases/v4.7.2.md +97 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/troubleshooting/debugging-guide.md +15 -9
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/QUICK_REFERENCE.md +22 -3
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/QUICK_START.md +5 -3
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/USER_MANUAL.md +8 -6
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/allure_enhancement_extension.py +10 -10
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/pyproject.toml +1 -1
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/__init__.py +7 -197
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/init_cmd.py +2 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/async_ui_app_actions.py +2 -2
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/enhanced_gitignore.py +1 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/fixture_chain_example.py +8 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/full_conftest.py +1 -1
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/pyproject_toml.py +3 -4
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/readme.py +130 -16
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_app_actions.py +5 -5
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_page_object.py +2 -2
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/allure.py +44 -89
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_init_cmd.py +8 -0
- df_test_framework-4.7.2/tests/testing/fixtures/test_allure_fixture.py +155 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/uv.lock +234 -241
- df_test_framework-4.7.0/README_PYPI.md +0 -127
- df_test_framework-4.7.0/docs/README.md +0 -183
- df_test_framework-4.7.0/docs/development/DOCUMENTATION_MAINTENANCE.md +0 -470
- df_test_framework-4.7.0/docs/releases/README.md +0 -138
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.editorconfig +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.env.example +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.gitattributes +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/lint.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/release.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/scheduled.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/security.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.github/workflows/test.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.gitignore +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.gitleaks.toml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.gitleaksignore +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.pre-commit-config.yaml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/.python-version +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/CONTRIBUTING.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/CONTRIBUTOR_GUIDE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/DOC_REORGANIZATION_PLAN_v4.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/LEARNING_PATH.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/clients.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/context.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/events.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/exceptions.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/middleware.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/protocols.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core/types.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/core.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/databases.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/drivers.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/extensions.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/infrastructure.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/patterns.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/api-reference/testing.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/ARCHITECTURE_V4.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/CODE_STRUCTURE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/PLUGIN_SYSTEM_V3.37.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/TEST_EXECUTION_LIFECYCLE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/REFACTORING_PLAN_V3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/REFACTORING_PLAN_V3_REVISED.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/DI_STRATEGY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/PREPARE_DATA_DESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/TESTING_MODULE_OPTIMIZATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/UOW_CLEANUP_ARCHITECTURE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/UOW_REFACTORING_PROPOSAL.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/allure_integration_modes.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/capability_plan_vs_current.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/config-driven-design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/config-management-analysis.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/eventbus-integration-analysis.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/failure-diagnosis-v2-design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/future_allure_plugin_plans.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/http-vs-web-comparison.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/observability-debugging-unification.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/provider-pattern-deep-dive.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/tech-debt-cleanup-plan.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/ui-failure-diagnosis-implementation-v3.46.3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/design/ui-observability-design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/discussion_1_initial_issues.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/v3_complete_draft.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/v3_final_draft.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/FRAMEWORK_ARCHITECTURE_v3.6.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/OVERVIEW_V3.17.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/V3.14_ENTERPRISE_PLATFORM_DESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/V3.16_LAYER4_BOOTSTRAP_ARCHITECTURE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/V3.17_EVENT_SYSTEM_REDESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/V3_ARCHITECTURE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/V3_IMPLEMENTATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/overview.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/archive/versions/v2-architecture.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/extension-points.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/failure-diagnosis-hook-example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/multi-project-reuse.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/observability-architecture.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture/test-type-support.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/architecture//344/272/224/345/261/202/346/236/266/346/236/204/350/257/246/350/247/243.md" +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/ACTION_PLAN_v2.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/AUDIT_VERIFICATION_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/AUTH_PLACEMENT_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/CODE_REVIEW_f95e08cd.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/COMPREHENSIVE_FEATURE_AUDIT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/FRAMEWORK_OPTIMIZATION_ANALYSIS_2025.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/PHASE2_COMPARISON_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/PHASE2_COMPLETION_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/PHASE2_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis/V3_REFACTORING_COMPLETE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/ALLURE_HTTP_LOGGING_ISSUE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_CHECK_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_DESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/ALLURE_ROOT_CAUSE_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/CODE_ANALYSIS_AND_PROGRESS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/COMPREHENSIVE_FRAMEWORK_EVALUATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/analysis_2025/CONFIG_MODERNIZATION_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/ARCHITECTURE_AUDIT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/FUTURE_ENHANCEMENTS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/IMPLEMENTATION_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/MIDDLEWARE_V3.14_DESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/ROADMAP_V3.29_ENHANCEMENTS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/SIGNATURE_FRAMEWORK_CAPABILITIES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/TEMPLATE_DEBUG_FIXTURES_ISSUE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/observability-config-design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/ui-best-practices-2026.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/web-architecture-consistency-design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/design/web-event-driven-comparison.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/evaluations_2025/DUAL_AI_ANALYSIS_COMPARISON.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/evaluations_2025/FRAMEWORK_ASSESSMENT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/evaluations_2025/FRAMEWORK_BEST_PRACTICES_UPDATE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/evaluations_2025/FRAMEWORK_CAPABILITIES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/evaluations_2025/FRAMEWORK_IMPROVEMENT_PROPOSALS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/async_database_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/async_http_client.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/httpx_advanced_usage.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/logging_configuration.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/logging_pytest_integration.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/modern_logging_best_practices.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/guides/repository_uow_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/111.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/CONFIG_AND_INTERCEPTOR_INTEGRATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/DIRECTORY_STRUCTURE_REFACTORING.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE_VERIFICATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_CONFIG_BEST_PRACTICES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_DESIGN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_VS_ACTUAL.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_LOCATION_DECISION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_NAMING_STANDARDS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_PERFORMANCE_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/REFACTORING_IMPLEMENTATION_PLAN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/interceptor_refactoring/REFACTORING_PROGRESS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/issues/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/issues/summary.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/issues/v1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/migration/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/migration/v3.15-to-v3.16.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/CAPABILITY_LAYER_OPTIMIZATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/REFACTORING_PLAN_v2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/REFACTORING_TASKS_v2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/RFC_MULTIPART_FORM_DATA_SUPPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/RFC_MULTIPART_IMPLEMENTATION_CODE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/UV_SYNC_MIGRATION_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/UV_SYNC_QUICK_START.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/plans/v2-migration-plan-draft.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/CHANGELOG_AUDIT_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/CODE_QUALITY_FIXES_2025-11-09.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/CORE_DOCS_UPDATE_PLAN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOCUMENTATION_AUDIT_REPORT_2025-12-05.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOCUMENTATION_CLEANUP_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOCUMENTATION_INDEX.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOCUMENTATION_MAINTENANCE_COMPLETE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOCUMENTATION_UPDATE_CHECKLIST.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/DOC_UPDATE_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/IMPROVEMENTS_2025-01-09.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/PHASE3_COMPLETION_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/PYTHON_VERSION_UNIFICATION.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/REFACTORING_COMPLETION_CHECK.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/TEST_CODE_GENERATION_ANALYSIS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.3.0_DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.3.0_MIGRATION_CHECKLIST.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_ALLURE_INTEGRATION_PLAN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_DOCUMENTATION_COMPLETE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_OBSERVABILITY_FINAL_STATUS.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_PHASE2_ACCEPTANCE_REPORT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN_REVISED.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/VERIFIED_BEST_PRACTICES_INTEGRATION_COMPLETE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/reports_2025/async_http_client_design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/user-guide/PHASE3_FEATURES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/user-guide/extensions.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/user-guide/ui-testing.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/BaseAPI/346/234/200/344/275/263/345/256/236/350/267/265/346/214/207/345/215/227.md" +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/FRAMEWORK_DESIGN_PRINCIPLES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/UPGRADE_SUMMARY_v1.3.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/architecture.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/best-practices.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/config-integration-guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/optimization-report.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1/publishing.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/v1//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251/346/265/213/350/257/225/346/241/206/346/236/266.md" +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/versions/QUICK_START_V3.14.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/archive/versions/QUICK_START_V3.5.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/ci-templates/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/ci-templates/github-actions.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/ci-templates/gitlab-ci.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/development/FRAMEWORK_DEPENDENCY_MANAGEMENT.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/development/RELEASE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/development/VERSION_CONTROL_RULES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/development/local-development.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/DECIMAL_GUIDE.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/assertions_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/async_api_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/auth_session_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/config_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/database_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/decorators_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/distributed_tracing.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/event_bus_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/extensions.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/factory_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/fixtures_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/graphql_client.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/grpc_client.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/helpers_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/http_client_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/integration-guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/local_debug_quickstart.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/logging_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/message_queue.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/middleware_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/mocking.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/monitoring_plugin.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/openapi_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/plugins_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/prometheus_metrics.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/redis_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/resilience_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/sanitize_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/service_client_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/storage.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/telemetry_guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/test_data.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/test_data_cleanup.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/guides/test_data_pipeline_design.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/migration/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/migration/v3-to-v4.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.0.0-alpha.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.1.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.10.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.11.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.11.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.12.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.12.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.13.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.14.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.14.0_completion_report.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.14.0_implementation_complete.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.16.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.17.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.17.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.17.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.18.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.18.1-bugfix.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.18.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.19.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.2.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.20.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.21.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.22.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.22.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.23.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.24.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.25.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.26.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.27.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.28.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.28.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.29.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.3.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.30.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.31.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.32.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.33.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.34.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.34.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.4.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.5.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.6.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.35.7.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.36.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.36.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.37.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.10.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.4.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.5.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.7.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.8.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.38.9.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.39.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.39.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.4.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.40.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.41.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.41.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.42.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.43.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.44.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.45.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.46.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.46.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.46.3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.5.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.6.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.6.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.6.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.7.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.8.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v3.9.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.0.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.0.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.0.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.0.3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.0.4.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.1.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.1.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.1.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.2.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.2.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.2.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.3.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.3.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.4.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.4.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.4.2.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.4.3.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.4.4.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.5.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.6.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.6.1.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/releases/v4.7.0.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/skills/write-code.zip +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/skills/write-test.zip +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/troubleshooting/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/troubleshooting/common-errors.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/BEST_PRACTICES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/VERIFIED_BEST_PRACTICES.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/ci-cd.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/code-generation.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/configuration.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/cross-project-sharing.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/debugging.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/examples.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/multi-repo.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/nested-settings-guide.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/docs/user-guide/security-best-practices.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/01-basic/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/01-basic/database_operations.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/01-basic/http_client_usage.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/01-basic/redis_cache.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/01-basic/storage_usage.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/02-bootstrap/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/02-bootstrap/custom_providers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/02-bootstrap/custom_settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/02-bootstrap/minimal_bootstrap.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/02-bootstrap/with_extensions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/03-testing/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/03-testing/conftest.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/03-testing/test_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/03-testing/test_database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/03-testing/test_with_fixtures.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/04-patterns/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/04-patterns/builder_pattern.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/04-patterns/combined_patterns.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/04-patterns/repository_pattern.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/custom_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/data_factory_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/environment_validator_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/monitoring_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/mq_monitor_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/05-extensions/notification_extension.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/06-ui-testing/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/06-ui-testing/basic_ui_test.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/06-ui-testing/conftest.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/06-ui-testing/page_object_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/docker-compose-kafka.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/docker-compose-rabbitmq.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/docker-compose-rocketmq.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/kafka_basic.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/kafka_ssl.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/rabbitmq_basic.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/rabbitmq_topic.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/rocketmq-broker.conf +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-message-queue/rocketmq_basic.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-v35-features/01_configurable_interceptors.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-v35-features/02_profile_configuration.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-v35-features/03_runtime_overrides.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-v35-features/04_observability.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/07-v35-features/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/01_unit_of_work_basics.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/02_repository_v37.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/03_auto_rollback_testing.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/04_multi_repository_transactions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/05_project_uow.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/06_exception_handling_with_uow.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/08-v37-features/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/examples/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/scripts/fetch_swagger.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/scripts/security-scan.bat +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/scripts/security-scan.sh +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/bootstrap/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/bootstrap/bootstrap.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/bootstrap/providers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/bootstrap/runtime.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/middleware/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/middleware/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/middleware/event_publisher.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/middleware/logging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/middleware/retry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/models.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/graphql/query_builder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/event_publisher.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/logging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/metadata.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/retry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/middleware/timing.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/grpc/models.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/core/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/core/request.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/core/response.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/auth.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/event_publisher.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/logging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/retry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/signature.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/middleware/telemetry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_base_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/base_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/clients/http/rest/protocols.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/async_database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/query_builder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/redis/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/redis/async_redis.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/redis/redis_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/repositories/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/repositories/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/repositories/query_spec.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/databases/uow.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/app_actions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/async_app_actions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser_pool.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_page.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/browser.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/component.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/locator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/playwright/page.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/drivers/web/protocols.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/batch/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/batch/spark/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/olap/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/stream/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/engines/stream/flink/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/pubsub/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/kafka/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/kafka/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/kafka/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/blob/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/file/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/file/local/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/file/local/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/file/local/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/oss/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/oss/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/oss/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/s3/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/s3/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/capabilities/storages/object/s3/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/__main__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/cicd.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/env.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/generate_cmd.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/commands/interactive.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/generators/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/generators/json_to_model.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/generators/openapi_generator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/generators/openapi_parser.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/main.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/release.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/scheduled.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/test-full.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/test.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/.gitlab-ci.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/Jenkinsfile +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/docker/.dockerignore +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/docker/Dockerfile +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/cicd/docker/docker-compose.yml +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/actions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/api_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/builder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/env_files.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/graphql_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/redis_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/repository.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/settings_enhanced.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/test.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/test_complete.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/generators/test_graphql.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/async_example_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/base_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/conftest.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/constants.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/data_cleaners.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/default_http_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/docs_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/editorconfig.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/env.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/fixtures_init.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/full_settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/gitattributes.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/gitignore.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/models_requests_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/models_responses_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/script_fetch_swagger.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/script_run_tests.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/test_async_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/test_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_clients.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_conftest.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_fixtures_init.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/ui_test_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/uow.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/user_api_example.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/utils_converters.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/utils_validators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/templates/project/vscode_settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/cli/utils.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/context/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/context/execution.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/context/propagation.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/events/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/events/types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/exceptions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/middleware/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/middleware/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/middleware/chain.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/middleware/decorator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/middleware/protocol.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/models/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/models/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/event.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/repository.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/protocols/telemetry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/core/types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/middleware_schema.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/pipeline.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/schema.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/config/sources.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/context/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/context/carriers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/context/carriers/grpc.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/context/carriers/http.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/context/carriers/mq.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/events/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/events/bus.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/events/handlers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/helpers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/helpers/crypto.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/helpers/hash.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/helpers/network.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/helpers/signature.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/logging/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/logging/config.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/logging/interface.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/logging/logger.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/logging/observability.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/observer.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/performance.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/registry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/metrics/types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/plugins/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/plugins/hooks.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/plugins/manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/resilience/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/resilience/circuit_breaker.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/sanitize/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/sanitize/service.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/telemetry/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/telemetry/exporters/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/telemetry/facade.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/telemetry/noop.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/context.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/exporters.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/integrations/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/integrations/database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/integrations/sqlalchemy_instrumentation.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/interceptors/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/interceptors/grpc.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/interceptors/http.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/infrastructure/tracing/manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/monitoring/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/monitoring/plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/reporting/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/reporting/allure_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/plugins/builtin/reporting/oms_reporter_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/assertions/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/assertions/helper.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/assertions/json_schema.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/assertions/matchers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/assertions/response.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/builders/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/builders/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/factories/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/factories/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/factories/examples.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/generators/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/generators/data_generator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/loaders/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/loaders/base.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/loaders/csv_loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/loaders/json_loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/loaders/yaml_loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/_registry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/context.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/dataset.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/reporter.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/data/pipeline/resolver.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/debugging/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/debugging/console.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/decorators/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/decorators/actions_class.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/decorators/api_class.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/decorators/service_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/decorators/ui_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/auth.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/cleanup.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/core.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/debugging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/http_recorder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/message_queue.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/metrics.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/monitoring.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/fixtures/ui.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/mocking/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/mocking/database_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/mocking/http_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/mocking/redis_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/mocking/time_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/api_autodiscovery.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/data_pipeline.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/debug.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/env_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/logging_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/plugins/markers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/reporting/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/reporting/allure/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/reporting/allure/helper.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/src/df_test_framework/testing/reporting/allure/observer.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/README.md +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/bootstrap/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/bootstrap/test_bootstrap.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/bootstrap/test_providers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/bootstrap/test_runtime.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/graphql/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/graphql/test_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/graphql/test_middleware.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/graphql/test_models.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/graphql/test_query_builder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/grpc/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/grpc/test_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/grpc/test_middleware.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/grpc/test_models.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/auth/signature/test_strategies.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/core/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/core/test_multipart.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/core/test_request.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/core/test_response.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/middleware/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/middleware/test_factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/middleware/test_logging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_async_base_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_async_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_auth_control.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_base_api.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/clients/http/rest/test_http_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/redis/test_async_redis.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/redis/test_redis_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_async_database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_database.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_database_factory.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_query_builder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_repositories.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/databases/test_uow.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/drivers/web/playwright/test_async_browser_pool.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/drivers/web/test_async_ui.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/drivers/web/test_modern_ui.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/messengers/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/messengers/test_kafka_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/messengers/test_rabbitmq_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/messengers/test_rocketmq_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/storages/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/storages/test_local_file.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/storages/test_oss.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/capabilities/storages/test_s3.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_env_cmd.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_generate_cmd.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_interactive_cmd.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_main.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/cli/test_utils.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/conftest.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/protocols/test_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/protocols/test_event.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/protocols/test_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/protocols/test_repository.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/protocols/test_telemetry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_context.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_event_types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_events.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_middleware.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/core/test_types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/config/test_loader.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/config/test_middleware_schema.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/context/test_carriers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/events/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/events/test_bus.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_observer.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_performance.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_registry.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/metrics/test_types.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/plugins/test_manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/resilience/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/resilience/test_circuit_breaker.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/sanitize/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/sanitize/test_service.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/telemetry/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/telemetry/test_facade.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/telemetry/test_noop.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_bootstrap.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_helpers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_logging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_pipeline.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_runtime.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_settings.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/test_sources.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_context.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_decorators.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_exporters.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_integrations.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_interceptors.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/infrastructure/tracing/test_manager.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/integration/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/integration/test_config_environment.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/integration/test_event_observability.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/integration/test_factory_assertions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/integration/test_middleware_chain.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/migration/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/migration/test_v3_13_to_v3_14_examples.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/plugins/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/plugins/builtin/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/plugins/builtin/monitoring/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/plugins/builtin/monitoring/test_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/test_json_to_model_generator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/assertions/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/assertions/test_json_schema.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/assertions/test_matchers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/pipeline/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/pipeline/test_pipeline.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/pipeline/test_pipeline_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/test_builders.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/test_data_generator.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/data/test_factories.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/debugging/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/debugging/test_console_debug_observer.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/decorators/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/decorators/test_actions_class.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/decorators/test_api_class.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/decorators/test_service_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/decorators/test_ui_client.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_cleanup.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_fixtures_core.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_fixtures_debugging.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_fixtures_message_queue.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_fixtures_monitoring.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_http_recorder.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_monitoring_metrics.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/fixtures/test_ui_fixtures.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/mocking/__init__.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/mocking/test_database_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/mocking/test_http_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/mocking/test_redis_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/mocking/test_time_mock.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/plugins/test_api_autodiscovery.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/plugins/test_debug_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/plugins/test_env_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/plugins/test_logging_plugin.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/plugins/test_markers.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/reporting/test_allure_observer.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/test_allure_helper.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/test_assertions.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/test_data_loaders.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/tests/testing/test_factories_presets.py +0 -0
- {df_test_framework-4.7.0 → df_test_framework-4.7.2}/verify_fixes.py +0 -0
|
@@ -8,8 +8,8 @@ This file provides guidance to Codex (Codex.ai/code) when working with code in t
|
|
|
8
8
|
|
|
9
9
|
**DF Test Framework** - 现代化 Python 测试自动化框架
|
|
10
10
|
|
|
11
|
-
- **版本**: v4.
|
|
12
|
-
- **更新时间**: 2026-
|
|
11
|
+
- **版本**: v4.7.2
|
|
12
|
+
- **更新时间**: 2026-05-26
|
|
13
13
|
- **Python**: 3.12+
|
|
14
14
|
- **核心技术栈**: pytest + httpx + Playwright + Pydantic v2 + SQLAlchemy 2.0 + Pluggy
|
|
15
15
|
- **架构**: 五层架构 + 横切关注点(能力层驱动设计)
|
|
@@ -80,6 +80,17 @@ Layer 0 ─── core/ # 核心层:纯抽象(无依
|
|
|
80
80
|
| **目录** | `apis/` | `actions/` |
|
|
81
81
|
| **默认 scope** | `session` | `function` |
|
|
82
82
|
|
|
83
|
+
### 显式多客户端模型 (v4.2.0 / v4.5.0)
|
|
84
|
+
|
|
85
|
+
当测试项目需要同时对接多个独立服务(不同 base_url、不同认证方式)时使用:
|
|
86
|
+
|
|
87
|
+
| 装饰器 | 适用场景 | 基类要求 |
|
|
88
|
+
|--------|----------|---------|
|
|
89
|
+
| `@service_client()` | 独立 HTTP 服务客户端(如第三方接口、内部微服务) | 无要求,自动注入 `base_url` |
|
|
90
|
+
| `@ui_client()` | 独立前端(B 端后台、H5、WebView 等不同 base_url) | 无要求,自动生成独立 page/context fixtures |
|
|
91
|
+
|
|
92
|
+
与 `@api_class` 的区别:`@api_class` 面向共享同一 `http_client` 的 admin 后台;`@service_client` 面向完全独立的服务客户端。
|
|
93
|
+
|
|
83
94
|
### 脚手架项目类型
|
|
84
95
|
|
|
85
96
|
```bash
|
|
@@ -93,6 +104,10 @@ df-test init my-project --type full # 完整项目:apis/ + actions/ + pages/
|
|
|
93
104
|
- **中间件系统**: 洋葱模型,SignatureMiddleware、BearerTokenMiddleware、RetryMiddleware
|
|
94
105
|
- **EventBus**: 事件驱动,HTTP/UI 事件自动发布,Allure 自动记录
|
|
95
106
|
- **配置系统**: YAML 分层配置 + 环境变量,WebConfig/HTTPConfig/DatabaseConfig
|
|
107
|
+
- **SanitizeService**: 统一脱敏服务,HTTP/UI/DB 日志中敏感字段自动遮盖(v3.40.x)
|
|
108
|
+
- **HttpRequestRecorder**: 测试失败时自动将完整 HTTP 现场注入 Allure 报告(v4.4.1)
|
|
109
|
+
- **测试数据管线**: `CaseContext[T]` + `case_dataset` fixture,YAML 文件驱动参数化(v4.6.0)
|
|
110
|
+
- **RuntimeContext.metadata**: 跨 scope 携带平台业务上下文键值(tenant_id 等),通过 `with_metadata()` 派生(v4.7.0)
|
|
96
111
|
|
|
97
112
|
---
|
|
98
113
|
|
|
@@ -127,15 +142,47 @@ def test_login(self): ...
|
|
|
127
142
|
|
|
128
143
|
## 版本发布
|
|
129
144
|
|
|
145
|
+
### 版本号选择规则(语义化版本)
|
|
146
|
+
|
|
147
|
+
**完整规范**: `docs/development/VERSION_CONTROL_RULES.md`
|
|
148
|
+
|
|
149
|
+
**MAJOR / MINOR / PATCH 决策三问**(在改 `pyproject.toml` 前先回答):
|
|
150
|
+
|
|
151
|
+
1. 这是**独立的功能模块**吗?(不是现有功能的延续/增强)
|
|
152
|
+
2. 值得**单独写一篇发布文档**吗?
|
|
153
|
+
3. 用户会**专门为它升级**吗?
|
|
154
|
+
|
|
155
|
+
- 三个都是 YES → **MINOR +1**(如新增 GraphQL 客户端、新增分布式追踪)
|
|
156
|
+
- 否则 → **PATCH +1**(bug 修复、性能优化、内部统一、辅助方法、现有主题的延续补强)
|
|
157
|
+
- 不兼容变更 / 移除 API / 升级最低 Python 版本 → **MAJOR +1**
|
|
158
|
+
|
|
159
|
+
**核心原则**:MINOR 要克制,相关功能合并发布;PATCH 要积极,bug 立即修。
|
|
160
|
+
|
|
161
|
+
### 发布步骤
|
|
162
|
+
|
|
130
163
|
发布新版本时,严格按以下顺序执行:
|
|
131
164
|
|
|
132
165
|
### Step 1: 更新文件
|
|
133
166
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
167
|
+
**版本号(每次必改)**:
|
|
168
|
+
1. `pyproject.toml` — `version = "X.X.X"`
|
|
169
|
+
2. `src/df_test_framework/__init__.py` — `__version__ = "X.X.X"`
|
|
170
|
+
|
|
171
|
+
**版本标注(每次必改,共 6 处)**:
|
|
172
|
+
3. `README.md` — 顶部 `版本` + `更新时间`
|
|
173
|
+
4. `CLAUDE.md` — 顶部 `版本` + `更新时间`
|
|
174
|
+
5. `AGENTS.md` — 顶部 `版本` + `更新时间`
|
|
175
|
+
6. `docs/README.md` — 顶部 `版本` + `更新时间`
|
|
176
|
+
7. `docs/ESSENTIAL_DOCS.md` — 顶部 `框架版本` + `更新日期`
|
|
177
|
+
8. `docs/releases/README.md` — 当前版本行
|
|
178
|
+
|
|
179
|
+
**发布内容(每次必加)**:
|
|
180
|
+
9. `CHANGELOG.md` — 简洁摘要
|
|
181
|
+
10. `docs/releases/vX.X.X.md` — 详细发布说明
|
|
182
|
+
|
|
183
|
+
**按需更新**:
|
|
184
|
+
11. `docs/guides/xxx.md` — 有新功能或行为变更时才改,仅更新涉及的指南
|
|
185
|
+
12. `cli/templates/` — 脚手架模板有影响时才改
|
|
139
186
|
|
|
140
187
|
### Step 2: 代码质量检查(必须全部通过)
|
|
141
188
|
|
|
@@ -165,17 +212,26 @@ git push origin master
|
|
|
165
212
|
|
|
166
213
|
```
|
|
167
214
|
src/df_test_framework/
|
|
168
|
-
├── core/ # Layer 0: middleware/context/events/protocols
|
|
215
|
+
├── core/ # Layer 0: middleware/context/events/protocols(无任何依赖)
|
|
169
216
|
├── infrastructure/ # Layer 1: config/logging/telemetry/events/plugins
|
|
217
|
+
│ ├── sanitize/ # SanitizeService 统一脱敏
|
|
218
|
+
│ ├── tracing/ # OpenTelemetry 链路追踪(可选依赖)
|
|
219
|
+
│ └── metrics/ # Prometheus 指标(可选依赖)
|
|
170
220
|
├── capabilities/ # Layer 2: clients/drivers/databases/messengers/storages
|
|
171
|
-
│ ├── clients/ # HTTP
|
|
221
|
+
│ ├── clients/ # HTTP(httpx)+ GraphQL + gRPC
|
|
172
222
|
│ ├── drivers/ # Playwright (Web UI)
|
|
173
|
-
│ ├── databases/ # MySQL + Redis + Repository + UoW
|
|
174
|
-
│ ├── messengers/ #
|
|
175
|
-
│
|
|
223
|
+
│ ├── databases/ # MySQL + Redis + Repository + UoW,async/sync 双模式
|
|
224
|
+
│ ├── messengers/ # queue/kafka + queue/rabbitmq + queue/rocketmq
|
|
225
|
+
│ ├── storages/ # file/local + object/s3 + object/oss
|
|
226
|
+
│ └── engines/ # 目录骨架预留(batch/spark, stream/flink, olap),暂未实现
|
|
176
227
|
├── testing/ # Layer 3: fixtures/decorators/data/debugging
|
|
228
|
+
│ ├── fixtures/ # core/allure/ui/cleanup/http_recorder/metrics/monitoring
|
|
229
|
+
│ ├── decorators/ # @api_class/@actions_class/@service_client/@ui_client
|
|
230
|
+
│ ├── data/ # generators/loaders/builders/pipeline(CaseContext/case_dataset)
|
|
231
|
+
│ ├── assertions/ # response/matchers/json_schema 断言辅助
|
|
232
|
+
│ └── mocking/ # http_mock/database_mock/redis_mock/time_mock
|
|
177
233
|
├── cli/ # Layer 3: commands + templates
|
|
178
|
-
├── bootstrap/ # Layer 4: Bootstrap + Providers +
|
|
234
|
+
├── bootstrap/ # Layer 4: Bootstrap + Providers + RuntimeContext
|
|
179
235
|
└── plugins/ # 横切: MonitoringPlugin + AllurePlugin
|
|
180
236
|
|
|
181
237
|
cli/templates/
|
|
@@ -188,7 +244,7 @@ cli/templates/
|
|
|
188
244
|
## 重要提示
|
|
189
245
|
|
|
190
246
|
- `tests/test_messengers/` 需要外部服务(Kafka/RabbitMQ/RocketMQ),CI 中跳过
|
|
191
|
-
- `engines/`
|
|
247
|
+
- `capabilities/engines/` 仅有目录骨架(batch/spark, stream/flink, olap),暂未实现功能
|
|
192
248
|
- Windows 平台使用 `start` 而非 `open` 打开报告
|
|
193
249
|
|
|
194
250
|
---
|
|
@@ -5,6 +5,25 @@
|
|
|
5
5
|
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
|
|
6
6
|
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [4.7.2] - 2026-05-26
|
|
11
|
+
|
|
12
|
+
### ✨ 新增
|
|
13
|
+
|
|
14
|
+
- **脚手架 `flows/` 目录**:`df-test init` 默认生成 `src/{project}/flows/__init__.py`,作为项目侧 API/E2E 业务链路编排目录;该目录不参与框架自动注册,区别于 UI `actions/` 和前置造数 `fixtures/*_chain.py`。
|
|
15
|
+
|
|
16
|
+
### 📝 文档
|
|
17
|
+
|
|
18
|
+
- **脚手架结构说明同步**:更新生成项目 README、脚手架指南和 fixture chain 指南,明确 `flows/`、`models/cases/`、`tests/data/fixtures/`、`tests/data/files/` 的生成与职责边界。
|
|
19
|
+
- **pytest 默认参数说明**:脚手架 `pyproject.toml` 模板默认 `addopts` 不再包含 `-v`;文档保留手动命令示例中的 `-v`,并补充常用命令参数作用说明。
|
|
20
|
+
|
|
21
|
+
## [4.7.1] - 2026-05-22
|
|
22
|
+
|
|
23
|
+
### 🐛 修复
|
|
24
|
+
|
|
25
|
+
- **Allure 报告重复记录**(`testing/fixtures/allure.py`):`_auto_allure_observer` autouse fixture 在每次测试结束后未取消 EventBus 订阅,导致 handler 随测试数量线性累积,后续测试的每个 HTTP/DB 事件被 N 个遗留 observer 重复写入报告。现改为在 `finally` 块中逐一 unsubscribe,彻底消除重复。
|
|
26
|
+
|
|
8
27
|
## [4.7.0] - 2026-05-19
|
|
9
28
|
|
|
10
29
|
### ✨ 新增
|
|
@@ -8,8 +8,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
8
8
|
|
|
9
9
|
**DF Test Framework** - 现代化 Python 测试自动化框架
|
|
10
10
|
|
|
11
|
-
- **版本**: v4.7.
|
|
12
|
-
- **更新时间**: 2026-05-
|
|
11
|
+
- **版本**: v4.7.2
|
|
12
|
+
- **更新时间**: 2026-05-26
|
|
13
13
|
- **Python**: 3.12+
|
|
14
14
|
- **核心技术栈**: pytest + httpx + Playwright + Pydantic v2 + SQLAlchemy 2.0 + Pluggy
|
|
15
15
|
- **架构**: 五层架构 + 横切关注点(能力层驱动设计)
|
|
@@ -80,6 +80,17 @@ Layer 0 ─── core/ # 核心层:纯抽象(无依
|
|
|
80
80
|
| **目录** | `apis/` | `actions/` |
|
|
81
81
|
| **默认 scope** | `session` | `function` |
|
|
82
82
|
|
|
83
|
+
### 显式多客户端模型 (v4.2.0 / v4.5.0)
|
|
84
|
+
|
|
85
|
+
当测试项目需要同时对接多个独立服务(不同 base_url、不同认证方式)时使用:
|
|
86
|
+
|
|
87
|
+
| 装饰器 | 适用场景 | 基类要求 |
|
|
88
|
+
|--------|----------|---------|
|
|
89
|
+
| `@service_client()` | 独立 HTTP 服务客户端(如第三方接口、内部微服务) | 无要求,自动注入 `base_url` |
|
|
90
|
+
| `@ui_client()` | 独立前端(B 端后台、H5、WebView 等不同 base_url) | 无要求,自动生成独立 page/context fixtures |
|
|
91
|
+
|
|
92
|
+
与 `@api_class` 的区别:`@api_class` 面向共享同一 `http_client` 的 admin 后台;`@service_client` 面向完全独立的服务客户端。
|
|
93
|
+
|
|
83
94
|
### 脚手架项目类型
|
|
84
95
|
|
|
85
96
|
```bash
|
|
@@ -93,6 +104,10 @@ df-test init my-project --type full # 完整项目:apis/ + actions/ + pages/
|
|
|
93
104
|
- **中间件系统**: 洋葱模型,SignatureMiddleware、BearerTokenMiddleware、RetryMiddleware
|
|
94
105
|
- **EventBus**: 事件驱动,HTTP/UI 事件自动发布,Allure 自动记录
|
|
95
106
|
- **配置系统**: YAML 分层配置 + 环境变量,WebConfig/HTTPConfig/DatabaseConfig
|
|
107
|
+
- **SanitizeService**: 统一脱敏服务,HTTP/UI/DB 日志中敏感字段自动遮盖(v3.40.x)
|
|
108
|
+
- **HttpRequestRecorder**: 测试失败时自动将完整 HTTP 现场注入 Allure 报告(v4.4.1)
|
|
109
|
+
- **测试数据管线**: `CaseContext[T]` + `case_dataset` fixture,YAML 文件驱动参数化(v4.6.0)
|
|
110
|
+
- **RuntimeContext.metadata**: 跨 scope 携带平台业务上下文键值(tenant_id 等),通过 `with_metadata()` 派生(v4.7.0)
|
|
96
111
|
|
|
97
112
|
---
|
|
98
113
|
|
|
@@ -149,11 +164,25 @@ def test_login(self): ...
|
|
|
149
164
|
|
|
150
165
|
### Step 1: 更新文件
|
|
151
166
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
167
|
+
**版本号(每次必改)**:
|
|
168
|
+
1. `pyproject.toml` — `version = "X.X.X"`
|
|
169
|
+
2. `src/df_test_framework/__init__.py` — `__version__ = "X.X.X"`
|
|
170
|
+
|
|
171
|
+
**版本标注(每次必改,共 6 处)**:
|
|
172
|
+
3. `README.md` — 顶部 `版本` + `更新时间`
|
|
173
|
+
4. `CLAUDE.md` — 顶部 `版本` + `更新时间`
|
|
174
|
+
5. `AGENTS.md` — 顶部 `版本` + `更新时间`
|
|
175
|
+
6. `docs/README.md` — 顶部 `版本` + `更新时间`
|
|
176
|
+
7. `docs/ESSENTIAL_DOCS.md` — 顶部 `框架版本` + `更新日期`
|
|
177
|
+
8. `docs/releases/README.md` — 当前版本行
|
|
178
|
+
|
|
179
|
+
**发布内容(每次必加)**:
|
|
180
|
+
9. `CHANGELOG.md` — 简洁摘要
|
|
181
|
+
10. `docs/releases/vX.X.X.md` — 详细发布说明
|
|
182
|
+
|
|
183
|
+
**按需更新**:
|
|
184
|
+
11. `docs/guides/xxx.md` — 有新功能或行为变更时才改,仅更新涉及的指南
|
|
185
|
+
12. `cli/templates/` — 脚手架模板有影响时才改
|
|
157
186
|
|
|
158
187
|
### Step 2: 代码质量检查(必须全部通过)
|
|
159
188
|
|
|
@@ -183,17 +212,26 @@ git push origin master
|
|
|
183
212
|
|
|
184
213
|
```
|
|
185
214
|
src/df_test_framework/
|
|
186
|
-
├── core/ # Layer 0: middleware/context/events/protocols
|
|
215
|
+
├── core/ # Layer 0: middleware/context/events/protocols(无任何依赖)
|
|
187
216
|
├── infrastructure/ # Layer 1: config/logging/telemetry/events/plugins
|
|
217
|
+
│ ├── sanitize/ # SanitizeService 统一脱敏
|
|
218
|
+
│ ├── tracing/ # OpenTelemetry 链路追踪(可选依赖)
|
|
219
|
+
│ └── metrics/ # Prometheus 指标(可选依赖)
|
|
188
220
|
├── capabilities/ # Layer 2: clients/drivers/databases/messengers/storages
|
|
189
|
-
│ ├── clients/ # HTTP
|
|
221
|
+
│ ├── clients/ # HTTP(httpx)+ GraphQL + gRPC
|
|
190
222
|
│ ├── drivers/ # Playwright (Web UI)
|
|
191
|
-
│ ├── databases/ # MySQL + Redis + Repository + UoW
|
|
192
|
-
│ ├── messengers/ #
|
|
193
|
-
│
|
|
223
|
+
│ ├── databases/ # MySQL + Redis + Repository + UoW,async/sync 双模式
|
|
224
|
+
│ ├── messengers/ # queue/kafka + queue/rabbitmq + queue/rocketmq
|
|
225
|
+
│ ├── storages/ # file/local + object/s3 + object/oss
|
|
226
|
+
│ └── engines/ # 目录骨架预留(batch/spark, stream/flink, olap),暂未实现
|
|
194
227
|
├── testing/ # Layer 3: fixtures/decorators/data/debugging
|
|
228
|
+
│ ├── fixtures/ # core/allure/ui/cleanup/http_recorder/metrics/monitoring
|
|
229
|
+
│ ├── decorators/ # @api_class/@actions_class/@service_client/@ui_client
|
|
230
|
+
│ ├── data/ # generators/loaders/builders/pipeline(CaseContext/case_dataset)
|
|
231
|
+
│ ├── assertions/ # response/matchers/json_schema 断言辅助
|
|
232
|
+
│ └── mocking/ # http_mock/database_mock/redis_mock/time_mock
|
|
195
233
|
├── cli/ # Layer 3: commands + templates
|
|
196
|
-
├── bootstrap/ # Layer 4: Bootstrap + Providers +
|
|
234
|
+
├── bootstrap/ # Layer 4: Bootstrap + Providers + RuntimeContext
|
|
197
235
|
└── plugins/ # 横切: MonitoringPlugin + AllurePlugin
|
|
198
236
|
|
|
199
237
|
cli/templates/
|
|
@@ -206,7 +244,7 @@ cli/templates/
|
|
|
206
244
|
## 重要提示
|
|
207
245
|
|
|
208
246
|
- `tests/test_messengers/` 需要外部服务(Kafka/RabbitMQ/RocketMQ),CI 中跳过
|
|
209
|
-
- `engines/`
|
|
247
|
+
- `capabilities/engines/` 仅有目录骨架(batch/spark, stream/flink, olap),暂未实现功能
|
|
210
248
|
- Windows 平台使用 `start` 而非 `open` 打开报告
|
|
211
249
|
|
|
212
250
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: df-test-framework
|
|
3
|
-
Version: 4.7.
|
|
3
|
+
Version: 4.7.2
|
|
4
4
|
Summary: 基于交互模式的现代化测试自动化框架,支持多种测试场景
|
|
5
5
|
Project-URL: Homepage, https://github.com/yourorg/df-test-framework
|
|
6
6
|
Project-URL: Repository, https://github.com/yourorg/df-test-framework
|
|
@@ -111,88 +111,84 @@ Description-Content-Type: text/markdown
|
|
|
111
111
|
|
|
112
112
|
# DF Test Framework
|
|
113
113
|
|
|
114
|
-
>
|
|
114
|
+
> 企业级 Python 测试自动化框架,支持 HTTP/UI/数据库/消息队列多场景测试
|
|
115
115
|
|
|
116
116
|
[](https://pypi.org/project/df-test-framework/)
|
|
117
117
|
[](https://www.python.org/)
|
|
118
|
-
[](https://github.com/yourorg/test-framework/blob/master/LICENSE)
|
|
118
|
+
[](https://github.com/yourorg/df-test-framework/blob/master/LICENSE)
|
|
119
119
|
|
|
120
120
|
---
|
|
121
121
|
|
|
122
122
|
## 核心特性
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- **
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
- **
|
|
136
|
-
- **数据库访问** - SQLAlchemy 2.0,Repository + UnitOfWork 模式
|
|
137
|
-
- **消息队列** - Kafka/RabbitMQ/RocketMQ 统一接口
|
|
138
|
-
- **存储客户端** - LocalFile/S3/阿里云 OSS
|
|
139
|
-
- **可观测性** - OpenTelemetry 追踪 + Prometheus 监控
|
|
140
|
-
- **测试工具** - Fixtures、数据构建器、Mock 工具、Allure 集成
|
|
124
|
+
- **多协议客户端** — HTTP/GraphQL/gRPC,同步/异步双模式,中间件拦截器链(重试、签名、Bearer Token)
|
|
125
|
+
- **异步高性能** — `AsyncHttpClient` 并发性能提升 10-30 倍,`AsyncDatabase`/`AsyncRedis` 完整异步支持
|
|
126
|
+
- **UI 自动化** — Playwright,同步/异步,浏览器会话复用,失败自动截图与诊断
|
|
127
|
+
- **数据库访问** — SQLAlchemy 2.0,多方言(MySQL/PostgreSQL/SQLite/MSSQL),Repository + Unit of Work 模式
|
|
128
|
+
- **测试数据管线** — `CaseContext[T]` + YAML 驱动参数化,支持 skip/xfail/seed/tags,CLI 精准过滤复现
|
|
129
|
+
- **多客户端模型** — `@service_client` / `@ui_client`,多服务/多前端场景下独立管理各自的连接与配置
|
|
130
|
+
- **CLI 脚手架** — `df-test init` 一键生成 api/ui/full 项目,内置 Allure + 自动回滚等即用能力
|
|
131
|
+
- **可观测性** — OpenTelemetry 链路追踪 + Prometheus 监控 + Allure 报告自动集成
|
|
132
|
+
- **消息队列** — Kafka/RabbitMQ/RocketMQ 统一接口
|
|
133
|
+
- **存储客户端** — 本地文件 / AWS S3 / 阿里云 OSS
|
|
134
|
+
- **脱敏服务** — HTTP/UI/DB 日志中敏感字段自动遮盖,集中配置
|
|
135
|
+
- **Mock 工具** — HTTP/数据库/Redis/时间 Mock,开箱即用
|
|
141
136
|
|
|
142
137
|
---
|
|
143
138
|
|
|
144
139
|
## 安装
|
|
145
140
|
|
|
146
141
|
```bash
|
|
147
|
-
# 使用 uv
|
|
142
|
+
# 使用 uv(推荐)
|
|
148
143
|
uv add df-test-framework
|
|
149
144
|
|
|
150
145
|
# 使用 pip
|
|
151
146
|
pip install df-test-framework
|
|
152
|
-
|
|
153
|
-
# 可选依赖
|
|
154
|
-
uv add "df-test-framework[ui]" # UI 测试(Playwright)
|
|
155
|
-
uv add "df-test-framework[mq]" # 消息队列
|
|
156
|
-
uv add "df-test-framework[observability]" # 可观测性
|
|
157
|
-
uv add "df-test-framework[storage]" # 存储客户端
|
|
158
|
-
uv add "df-test-framework[all]" # 所有功能
|
|
159
147
|
```
|
|
160
148
|
|
|
149
|
+
**可选依赖**(按需安装,核心功能无需额外依赖):
|
|
150
|
+
|
|
151
|
+
| 依赖组 | 功能 | 安装命令 |
|
|
152
|
+
|--------|------|---------|
|
|
153
|
+
| `ui` | Playwright UI 测试 | `uv add "df-test-framework[ui]"` |
|
|
154
|
+
| `database-async` | 异步数据库驱动(MySQL/PG/SQLite) | `uv add "df-test-framework[database-async]"` |
|
|
155
|
+
| `database-mssql` | MSSQL 驱动 | `uv add "df-test-framework[database-mssql]"` |
|
|
156
|
+
| `mq` | 消息队列(Kafka + RabbitMQ + RocketMQ) | `uv add "df-test-framework[mq]"` |
|
|
157
|
+
| `observability` | OpenTelemetry + Prometheus | `uv add "df-test-framework[observability]"` |
|
|
158
|
+
| `storage` | 对象存储(S3 + 阿里云 OSS) | `uv add "df-test-framework[storage]"` |
|
|
159
|
+
| `crypto` | AES/DES 加解密 | `uv add "df-test-framework[crypto]"` |
|
|
160
|
+
| `all` | 所有可选功能 | `uv add "df-test-framework[all]"` |
|
|
161
|
+
|
|
161
162
|
---
|
|
162
163
|
|
|
163
164
|
## 快速开始
|
|
164
165
|
|
|
165
|
-
###
|
|
166
|
+
### 脚手架建项目(推荐)
|
|
166
167
|
|
|
167
168
|
```bash
|
|
168
|
-
df-test init my-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
df-test init my-project # API 测试项目
|
|
170
|
+
df-test init my-project --type ui # UI 测试项目
|
|
171
|
+
df-test init my-project --type full # API + UI 混合
|
|
172
|
+
|
|
173
|
+
cd my-project && pytest -v
|
|
172
174
|
```
|
|
173
175
|
|
|
174
|
-
###
|
|
176
|
+
### API 测试
|
|
175
177
|
|
|
176
178
|
```python
|
|
177
|
-
from df_test_framework import
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
class
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
.
|
|
186
|
-
.
|
|
187
|
-
.run()
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
http = runtime.http_client()
|
|
191
|
-
response = http.get("/users/1")
|
|
192
|
-
assert response.status_code == 200
|
|
179
|
+
from df_test_framework import api_class, BaseAPI
|
|
180
|
+
|
|
181
|
+
@api_class()
|
|
182
|
+
class UserAPI(BaseAPI):
|
|
183
|
+
def get_user(self, user_id: int):
|
|
184
|
+
return self.get(f"/users/{user_id}")
|
|
185
|
+
|
|
186
|
+
def test_get_user(user_api: UserAPI): # fixture 由 @api_class 自动注册
|
|
187
|
+
response = user_api.get_user(1)
|
|
188
|
+
assert response.status_code == 200
|
|
193
189
|
```
|
|
194
190
|
|
|
195
|
-
###
|
|
191
|
+
### 异步并发测试
|
|
196
192
|
|
|
197
193
|
```python
|
|
198
194
|
import asyncio
|
|
@@ -202,9 +198,36 @@ async def test_concurrent():
|
|
|
202
198
|
async with AsyncHttpClient("https://api.example.com") as client:
|
|
203
199
|
tasks = [client.get(f"/users/{i}") for i in range(100)]
|
|
204
200
|
responses = await asyncio.gather(*tasks)
|
|
205
|
-
assert
|
|
201
|
+
assert all(r.status_code == 200 for r in responses)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### YAML 驱动参数化
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
# tests/data/login.yaml
|
|
208
|
+
tests:
|
|
209
|
+
valid_user:
|
|
210
|
+
title: "正常登录"
|
|
211
|
+
marks: [smoke]
|
|
212
|
+
data:
|
|
213
|
+
username: admin
|
|
214
|
+
password: secret
|
|
215
|
+
locked_user:
|
|
216
|
+
title: "锁定账号登录失败"
|
|
217
|
+
xfail: "已知 Bug #123"
|
|
218
|
+
data:
|
|
219
|
+
username: locked
|
|
220
|
+
password: secret
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
```python
|
|
224
|
+
import pytest
|
|
225
|
+
from df_test_framework.testing.data.pipeline import case_dataset, CaseContext
|
|
206
226
|
|
|
207
|
-
|
|
227
|
+
@pytest.mark.parametrize("ctx", case_dataset("tests/data/login.yaml"))
|
|
228
|
+
def test_login(ctx: CaseContext, login_api):
|
|
229
|
+
response = login_api.login(ctx.data["username"], ctx.data["password"])
|
|
230
|
+
assert response.status_code == 200
|
|
208
231
|
```
|
|
209
232
|
|
|
210
233
|
---
|
|
@@ -212,24 +235,24 @@ asyncio.run(test_concurrent())
|
|
|
212
235
|
## 架构
|
|
213
236
|
|
|
214
237
|
```
|
|
215
|
-
Layer 4 ─── bootstrap/ # 引导层:Bootstrap、Providers、
|
|
216
|
-
Layer 3 ─── testing/ + cli/ # 门面层:Fixtures、CLI
|
|
238
|
+
Layer 4 ─── bootstrap/ # 引导层:Bootstrap、Providers、RuntimeContext
|
|
239
|
+
Layer 3 ─── testing/ + cli/ # 门面层:pytest Fixtures、CLI 脚手架
|
|
217
240
|
Layer 2 ─── capabilities/ # 能力层:HTTP/UI/DB/MQ/Storage
|
|
218
241
|
Layer 1 ─── infrastructure/ # 基础设施:config/logging/events/plugins
|
|
219
|
-
Layer 0 ─── core/ #
|
|
220
|
-
横切
|
|
242
|
+
Layer 0 ─── core/ # 核心层:纯抽象(无第三方依赖)
|
|
243
|
+
横切 ───── plugins/ # 插件:MonitoringPlugin、AllurePlugin
|
|
221
244
|
```
|
|
222
245
|
|
|
223
246
|
---
|
|
224
247
|
|
|
225
248
|
## 文档
|
|
226
249
|
|
|
227
|
-
|
|
250
|
+
完整文档见项目 GitHub 仓库:
|
|
228
251
|
|
|
229
|
-
- [
|
|
230
|
-
- [
|
|
231
|
-
- [
|
|
232
|
-
- [
|
|
252
|
+
- [快速开始](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/QUICK_START.md)
|
|
253
|
+
- [用户手册](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/USER_MANUAL.md)
|
|
254
|
+
- [发布说明](https://github.com/yourorg/df-test-framework/blob/master/docs/releases/)
|
|
255
|
+
- [更新日志](https://github.com/yourorg/df-test-framework/blob/master/CHANGELOG.md)
|
|
233
256
|
|
|
234
257
|
---
|
|
235
258
|
|