df-test-framework 4.10.0__tar.gz → 4.10.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.10.2/.github/workflows/README.md +33 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/release.yml +67 -35
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/test.yml +16 -6
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/AGENTS.md +7 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/CHANGELOG.md +32 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/CLAUDE.md +6 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/PKG-INFO +6 -13
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/README.md +11 -10
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/README_PYPI.md +5 -8
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/ESSENTIAL_DOCS.md +2 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/FAQ.md +4 -4
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/README.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/README.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/TEST_EXECUTION_LIFECYCLE.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/national-crypto-design.md +8 -3
- df_test_framework-4.10.2/docs/development/RELEASE.md +91 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/local-development.md +1 -1
- df_test_framework-4.10.2/docs/guides/config_guide.md +173 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/database_guide.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/helpers_guide.md +4 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/integration-guide.md +4 -4
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/local_debug_quickstart.md +39 -39
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/message_queue.md +2 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/project-structure-standard.md +3 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/sanitize_guide.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/scaffold_cli_guide.md +28 -5
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/web-ui-testing.md +8 -8
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/README.md +4 -2
- df_test_framework-4.10.2/docs/releases/v4.10.1.md +49 -0
- df_test_framework-4.10.2/docs/releases/v4.10.2.md +57 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/QUICK_REFERENCE.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/configuration.md +13 -10
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/cross-project-sharing.md +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/debugging.md +7 -7
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/examples.md +4 -4
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/nested-settings-guide.md +2 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/security-best-practices.md +2 -2
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/pyproject.toml +2 -8
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/scripts/bump_version.py +1 -1
- df_test_framework-4.10.2/scripts/check_release.py +60 -0
- df_test_framework-4.10.2/scripts/smoke_config_release.py +81 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/__init__.py +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/bootstrap/bootstrap.py +7 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/baseline_cmd.py +3 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/cleanup_cmd.py +5 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/doctor_cmd.py +16 -8
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/env.py +26 -68
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/init_cmd.py +15 -27
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/main.py +17 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/__init__.py +5 -2
- df_test_framework-4.10.2/src/df_test_framework/cli/scaffold/templates/README.md.j2 +273 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/config/base.yaml.j2 +0 -1
- df_test_framework-4.10.0/src/df_test_framework/cli/scaffold/templates/config/env.local.example.j2 → df_test_framework-4.10.2/src/df_test_framework/cli/scaffold/templates/config/env.test.example.j2 +1 -1
- df_test_framework-4.10.2/src/df_test_framework/cli/scaffold/templates/config/test.local.yaml.example.j2 +8 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/config/test.yaml.j2 +3 -3
- df_test_framework-4.10.2/src/df_test_framework/cli/scaffold/templates/gitignore.j2 +30 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/pyproject.toml.j2 +18 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/settings.py.j2 +1 -1
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/cicd/.github/workflows/release.yml +15 -24
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/.github/workflows/scheduled.yml +48 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/.github/workflows/test-full.yml +53 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/.github/workflows/test.yml +50 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/.gitlab-ci.yml +43 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/Jenkinsfile +39 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/docker/Dockerfile +24 -0
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/docker/.dockerignore → df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/docker/Dockerfile.dockerignore +8 -0
- df_test_framework-4.10.2/src/df_test_framework/cli/templates/cicd/docker/docker-compose.yml +16 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/env_files.py +27 -27
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/settings_enhanced.py +3 -3
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/discovery.py +3 -1
- df_test_framework-4.10.2/src/df_test_framework/infrastructure/config/environment.py +21 -0
- df_test_framework-4.10.2/src/df_test_framework/infrastructure/config/loader.py +206 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/schema.py +37 -19
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/settings.py +30 -20
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/env_plugin.py +13 -9
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_env_cmd.py +15 -12
- df_test_framework-4.10.2/tests/cli/test_init_cmd.py +468 -0
- df_test_framework-4.10.2/tests/infrastructure/config/test_environment_layers.py +212 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/config/test_loader.py +5 -5
- df_test_framework-4.10.2/tests/test_release_validation.py +82 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/plugins/test_env_plugin.py +8 -9
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/uv.lock +1 -1
- df_test_framework-4.10.0/.github/workflows/README.md +0 -205
- df_test_framework-4.10.0/docs/development/RELEASE.md +0 -356
- df_test_framework-4.10.0/docs/guides/config_guide.md +0 -644
- df_test_framework-4.10.0/src/df_test_framework/cli/scaffold/templates/README.md.j2 +0 -43
- df_test_framework-4.10.0/src/df_test_framework/cli/scaffold/templates/config/local.yaml.example.j2 +0 -9
- df_test_framework-4.10.0/src/df_test_framework/cli/scaffold/templates/gitignore.j2 +0 -17
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/.github/workflows/scheduled.yml +0 -85
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/.github/workflows/test-full.yml +0 -130
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/.github/workflows/test.yml +0 -77
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/.gitlab-ci.yml +0 -198
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/Jenkinsfile +0 -312
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/docker/Dockerfile +0 -78
- df_test_framework-4.10.0/src/df_test_framework/cli/templates/cicd/docker/docker-compose.yml +0 -121
- df_test_framework-4.10.0/src/df_test_framework/infrastructure/config/loader.py +0 -371
- df_test_framework-4.10.0/tests/cli/test_init_cmd.py +0 -231
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.editorconfig +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.env.example +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.gitattributes +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/docs.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/lint.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/scheduled.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.github/workflows/security.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.gitignore +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.gitleaks.toml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.gitleaksignore +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.pre-commit-config.yaml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/.python-version +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/CONTRIBUTING.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/CONTRIBUTOR_GUIDE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/LEARNING_PATH.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/context.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/events.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/exceptions.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/middleware.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/protocols.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/core/types.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/api-reference/extensions.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/CODE_STRUCTURE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/DESIGN_STANDARDS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/ARCHITECTURE_V4.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/PLUGIN_SYSTEM_V3.37.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/REFACTORING_PLAN_V3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/REFACTORING_PLAN_V3_REVISED.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/DI_STRATEGY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/PREPARE_DATA_DESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/TESTING_MODULE_OPTIMIZATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/UOW_CLEANUP_ARCHITECTURE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/UOW_REFACTORING_PROPOSAL.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/allure_integration_modes.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/capability_plan_vs_current.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/config-driven-design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/config-management-analysis.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/eventbus-integration-analysis.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/failure-diagnosis-v2-design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/future_allure_plugin_plans.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/http-vs-web-comparison.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/observability-debugging-unification.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/provider-pattern-deep-dive.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/tech-debt-cleanup-plan.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/ui-failure-diagnosis-implementation-v3.46.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/design/ui-observability-design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/discussion_1_initial_issues.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/observability-modernization.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/v3_complete_draft.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/v3_final_draft.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/FRAMEWORK_ARCHITECTURE_v3.6.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/OVERVIEW_V3.17.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/V3.14_ENTERPRISE_PLATFORM_DESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/V3.16_LAYER4_BOOTSTRAP_ARCHITECTURE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/V3.17_EVENT_SYSTEM_REDESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/V3_ARCHITECTURE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/V3_IMPLEMENTATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/overview.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/archive/versions/v2-architecture.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/extension-points.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/failure-diagnosis-hook-example.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/framework-positioning-notes.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/multi-project-reuse.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/observability-architecture.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/test-type-support.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/ui-design-principles.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.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.10.0 → df_test_framework-4.10.2}/docs/archive/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/ACTION_PLAN_v2.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/AUDIT_VERIFICATION_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/AUTH_PLACEMENT_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/CODE_REVIEW_f95e08cd.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/COMPREHENSIVE_FEATURE_AUDIT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/FRAMEWORK_OPTIMIZATION_ANALYSIS_2025.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/PHASE2_COMPARISON_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/PHASE2_COMPLETION_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/PHASE2_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis/V3_REFACTORING_COMPLETE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/ALLURE_HTTP_LOGGING_ISSUE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_CHECK_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_DESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/ALLURE_INTEGRATION_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/ALLURE_ROOT_CAUSE_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/CODE_ANALYSIS_AND_PROGRESS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/COMPREHENSIVE_FRAMEWORK_EVALUATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/analysis_2025/CONFIG_MODERNIZATION_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/clients.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/core.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/databases.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/drivers.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/infrastructure.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/patterns.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/api-reference/testing.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/ARCHITECTURE_AUDIT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/FUTURE_ENHANCEMENTS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/IMPLEMENTATION_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/MIDDLEWARE_V3.14_DESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/ROADMAP_V3.29_ENHANCEMENTS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/SIGNATURE_FRAMEWORK_CAPABILITIES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/TEMPLATE_DEBUG_FIXTURES_ISSUE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/observability-config-design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/ui-best-practices-2026.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/web-architecture-consistency-design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/design/web-event-driven-comparison.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/evaluations_2025/DUAL_AI_ANALYSIS_COMPARISON.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/evaluations_2025/FRAMEWORK_ASSESSMENT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/evaluations_2025/FRAMEWORK_BEST_PRACTICES_UPDATE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/evaluations_2025/FRAMEWORK_CAPABILITIES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/evaluations_2025/FRAMEWORK_IMPROVEMENT_PROPOSALS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/async_database_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/async_http_client.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/httpx_advanced_usage.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/logging_configuration.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/logging_pytest_integration.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/modern_logging_best_practices.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/repository_uow_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/guides/testing-development.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/111.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/CONFIG_AND_INTERCEPTOR_INTEGRATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/DIRECTORY_STRUCTURE_REFACTORING.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_ARCHITECTURE_VERIFICATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_CONFIG_BEST_PRACTICES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_DESIGN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_IDEAL_VS_ACTUAL.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_LOCATION_DECISION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_NAMING_STANDARDS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/INTERCEPTOR_PERFORMANCE_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/REFACTORING_IMPLEMENTATION_PLAN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/interceptor_refactoring/REFACTORING_PROGRESS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/issues/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/issues/summary.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/issues/v1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/migration/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/migration/v3.15-to-v3.16.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/migration-v3-to-v4/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/migration-v3-to-v4/v3-to-v4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/CAPABILITY_LAYER_OPTIMIZATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/DOC_REORGANIZATION_PLAN_v4.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/REFACTORING_PLAN_v2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/REFACTORING_TASKS_v2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/RFC_MULTIPART_FORM_DATA_SUPPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/RFC_MULTIPART_IMPLEMENTATION_CODE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/UV_SYNC_MIGRATION_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/UV_SYNC_QUICK_START.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/plans/v2-migration-plan-draft.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/CHANGELOG_AUDIT_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/CODE_QUALITY_FIXES_2025-11-09.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/CORE_DOCS_UPDATE_PLAN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOCUMENTATION_AUDIT_REPORT_2025-12-05.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOCUMENTATION_CLEANUP_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOCUMENTATION_INDEX.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOCUMENTATION_MAINTENANCE_COMPLETE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOCUMENTATION_UPDATE_CHECKLIST.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/DOC_UPDATE_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/IMPROVEMENTS_2025-01-09.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/PHASE3_COMPLETION_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/PYTHON_VERSION_UNIFICATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/REFACTORING_COMPLETION_CHECK.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/TEST_CODE_GENERATION_ANALYSIS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.3.0_DOCUMENTATION_UPDATE_SUMMARY.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.3.0_MIGRATION_CHECKLIST.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_ALLURE_INTEGRATION_PLAN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_DOCUMENTATION_COMPLETE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_OBSERVABILITY_FINAL_STATUS.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_PHASE2_ACCEPTANCE_REPORT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/V3.5_REFACTOR_PLAN_REVISED.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/VERIFIED_BEST_PRACTICES_INTEGRATION_COMPLETE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/reports_2025/async_http_client_design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/skills/write-code.zip +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/skills/write-test.zip +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/user-guide/PHASE3_FEATURES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/user-guide/VERIFIED_BEST_PRACTICES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/user-guide/extensions.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/user-guide/ui-testing.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.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.10.0 → df_test_framework-4.10.2}/docs/archive/v1/FRAMEWORK_DESIGN_PRINCIPLES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/UPGRADE_SUMMARY_v1.3.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/architecture.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/best-practices.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/config-integration-guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/optimization-report.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/v1/publishing.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.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.10.0 → df_test_framework-4.10.2}/docs/archive/versions/QUICK_START_V3.14.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/archive/versions/QUICK_START_V3.5.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/ci-templates/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/ci-templates/github-actions.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/ci-templates/gitlab-ci.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/BACKLOG.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/CAPABILITY_EXTRACTION_RULES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/DOCUMENTATION_MAINTENANCE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/FRAMEWORK_DEPENDENCY_MANAGEMENT.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/UNASYNC_EVALUATION.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/development/VERSION_CONTROL_RULES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/DECIMAL_GUIDE.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/allure_plugin.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/assertions_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/async_api_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/auth_session_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/baseline_pool.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/beyond-framework.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/bootstrap_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/decorators_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/distributed_tracing.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/event_bus_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/extensions.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/factory_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/fixture_chain_pattern.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/fixtures_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/graphql_client.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/grpc_client.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/http_client_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/logging_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/middleware_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/mocking.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/monitoring_plugin.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/naming_standard.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/national-crypto.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/openapi_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/plugin_hooks_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/plugins_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/prometheus_metrics.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/redis_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/resilience_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/service_client_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/storage.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/telemetry_guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/test_data.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/test_data_cleanup.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/guides/test_data_pipeline_design.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.0.0-alpha.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.1.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.10.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.11.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.11.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.12.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.12.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.13.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.14.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.14.0_completion_report.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.14.0_implementation_complete.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.16.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.17.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.17.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.17.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.18.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.18.1-bugfix.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.18.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.19.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.2.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.20.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.21.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.22.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.22.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.23.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.24.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.25.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.26.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.27.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.28.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.28.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.29.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.3.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.30.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.31.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.32.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.33.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.34.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.34.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.5.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.6.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.35.7.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.36.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.36.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.37.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.10.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.5.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.7.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.8.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.38.9.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.39.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.39.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.4.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.40.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.41.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.41.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.42.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.43.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.44.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.45.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.46.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.46.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.46.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.5.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.6.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.6.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.6.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.7.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.8.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v3.9.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.0.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.0.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.0.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.0.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.0.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.1.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.1.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.1.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.10.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.2.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.2.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.2.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.3.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.3.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.4.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.4.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.4.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.4.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.4.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.5.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.6.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.6.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.7.5.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.8.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.8.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.0.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.1.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.10.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.11.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.12.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.13.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.14.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.15.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.16.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.17.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.18.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.19.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.2.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.20.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.21.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.22.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.23.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.3.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.4.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.5.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.6.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.7.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.8.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/releases/v4.9.9.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/troubleshooting/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/troubleshooting/common-errors.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/troubleshooting/debugging-guide.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/BEST_PRACTICES.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/QUICK_START.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/USER_MANUAL.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/ci-cd.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/code-generation.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/user-guide/multi-repo.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/01-basic/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/01-basic/database_operations.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/01-basic/http_client_usage.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/01-basic/redis_cache.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/01-basic/storage_usage.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/02-bootstrap/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/02-bootstrap/custom_providers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/02-bootstrap/custom_settings.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/02-bootstrap/minimal_bootstrap.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/02-bootstrap/with_extensions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/03-testing/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/03-testing/conftest.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/03-testing/test_api.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/03-testing/test_database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/03-testing/test_with_fixtures.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/04-patterns/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/04-patterns/builder_pattern.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/04-patterns/combined_patterns.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/04-patterns/repository_pattern.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/allure_enhancement_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/custom_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/data_factory_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/environment_validator_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/monitoring_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/mq_monitor_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/05-extensions/notification_extension.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/06-ui-testing/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/06-ui-testing/basic_ui_test.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/06-ui-testing/conftest.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/06-ui-testing/page_object_example.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/docker-compose-kafka.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/docker-compose-rabbitmq.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/docker-compose-rocketmq.yml +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/kafka_basic.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/kafka_ssl.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/rabbitmq_basic.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/rabbitmq_topic.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/rocketmq-broker.conf +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-message-queue/rocketmq_basic.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-v35-features/01_configurable_interceptors.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-v35-features/02_profile_configuration.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-v35-features/03_runtime_overrides.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-v35-features/04_observability.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/07-v35-features/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/01_unit_of_work_basics.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/02_repository_v37.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/03_auto_rollback_testing.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/04_multi_repository_transactions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/05_project_uow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/06_exception_handling_with_uow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/08-v37-features/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/examples/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/scripts/fetch_swagger.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/scripts/security-scan.bat +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/scripts/security-scan.sh +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/bootstrap/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/bootstrap/providers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/bootstrap/runtime.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/middleware/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/middleware/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/middleware/event_publisher.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/middleware/logging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/middleware/retry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/models.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/graphql/query_builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/event_publisher.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/logging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/metadata.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/retry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/middleware/timing.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/grpc/models.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/core/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/core/request.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/core/response.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/auth.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/event_publisher.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/logging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/retry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/signature.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/middleware/telemetry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_base_api.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/async_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/base_api.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/httpx/contract.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/clients/http/rest/protocols.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/async_database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/query_builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/redis/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/redis/async_redis.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/redis/redis_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/repositories/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/repositories/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/repositories/query_spec.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/sql_builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/databases/uow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/_event_utils.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/app_actions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/async_app_actions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_browser_pool.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/async_page.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/browser.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/component.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/locator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/playwright/page.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/protocols.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/drivers/web/toolkit.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/batch/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/batch/spark/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/olap/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/stream/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/engines/stream/flink/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/pubsub/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/kafka/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/kafka/async_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/kafka/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/kafka/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/async_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rabbitmq/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/messengers/queue/rocketmq/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/blob/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/file/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/file/local/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/file/local/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/file/local/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/oss/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/oss/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/oss/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/s3/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/s3/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/capabilities/storages/object/s3/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/__main__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/codegen_utils.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/cicd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/generate_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/commands/interactive.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/generators/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/generators/case_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/generators/json_to_model.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/generators/openapi_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/generators/openapi_parser.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/editorconfig.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/gitattributes.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/actions_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/apis_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/cases_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/clients_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/config_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/constants_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/example_actions.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/example_api.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/example_case.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/example_page.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/fixtures_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/http_clients.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/models_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/naming.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/pages_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/pkg_init.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/src/ui_clients.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/tests/conftest.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/tests/example_cases.yaml.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/tests/test_example_api.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/tests/test_example_ui.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/scaffold/templates/tests/test_naming.py.j2 +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/actions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/api_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/flow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/graphql_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/page.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/redis_example.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/repository.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/test.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/test_complete.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/cli/templates/generators/test_graphql.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/context/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/context/execution.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/context/propagation.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/cache.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/graphql.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/grpc.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/http.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/messaging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/storage.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/test_lifecycle.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/events/ui.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/exceptions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/middleware/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/middleware/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/middleware/chain.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/middleware/decorator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/middleware/protocol.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/models/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/models/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/event.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/repository.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/protocols/telemetry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/core/types.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/middleware_schema.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/pipeline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/config/sources.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/context/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/context/carriers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/context/carriers/grpc.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/context/carriers/http.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/context/carriers/mq.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/_common.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/aes.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/sm2.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/sm3.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/crypto/sm4.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/events/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/events/bus.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/events/handlers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/crypto.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/hash.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/national_crypto.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/network.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/helpers/signature.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/logging/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/logging/config.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/logging/interface.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/logging/logger.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/logging/observability.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/performance.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/registry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/metrics/types.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/plugins/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/plugins/hooks.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/plugins/manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/resilience/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/resilience/circuit_breaker.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/sanitize/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/sanitize/service.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/telemetry/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/telemetry/exporters/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/telemetry/facade.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/telemetry/noop.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/context.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/exporters.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/integrations/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/integrations/database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/integrations/sqlalchemy_instrumentation.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/interceptors/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/interceptors/grpc.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/interceptors/http.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/infrastructure/tracing/manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/plugins/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/plugins/builtin/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/plugins/builtin/monitoring/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/plugins/builtin/monitoring/plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/envelope.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/helper.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/json_schema.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/matchers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/response.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/assertions/waiting.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/baseline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/builders/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/builders/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/factories/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/factories/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/factories/examples.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/generators/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/generators/data_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/loaders/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/loaders/base.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/loaders/csv_loader.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/loaders/json_loader.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/loaders/yaml_loader.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/naming/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/naming/guards.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/naming/keys.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/naming/registry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/naming/standard.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/_registry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/context.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/dataset.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/loader.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/reporter.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/data/pipeline/resolver.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/debugging/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/debugging/console.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/decorators/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/decorators/actions_class.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/decorators/api_class.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/decorators/service_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/decorators/ui_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/execution/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/execution/concurrency.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/execution/gates.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/allure.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/auth.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/cleanup.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/core.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/debugging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/http_recorder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/message_queue.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/metrics.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/monitoring.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/fixtures/ui.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/database_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/http_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/page_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/redis_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/mocking/time_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/accessors.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/api_autodiscovery.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/data_pipeline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/debug.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/logging_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/plugins/markers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/reporting/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/reporting/allure/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/reporting/allure/helper.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/src/df_test_framework/testing/reporting/allure/observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/README.md +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/test_bootstrap.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/test_df_providers_chain.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/test_plugin_middlewares.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/test_providers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/bootstrap/test_runtime.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/graphql/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/graphql/test_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/graphql/test_middleware.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/graphql/test_models.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/graphql/test_query_builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/grpc/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/grpc/test_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/grpc/test_middleware.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/grpc/test_models.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/auth/signature/test_strategies.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/core/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/core/test_multipart.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/core/test_request.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/core/test_response.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/middleware/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/middleware/test_event_publisher.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/middleware/test_factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/middleware/test_logging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/middleware/test_otel_tracing.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_async_base_api.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_async_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_auth_control.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_base_api.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_contract.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/clients/http/rest/test_http_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/redis/test_async_redis.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/redis/test_redis_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_async_database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_database.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_database_factory.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_dialect_compilation.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_query_builder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_repositories.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/databases/test_uow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/drivers/web/playwright/test_async_browser_pool.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/drivers/web/test_async_ui.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/drivers/web/test_modern_ui.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/drivers/web/test_toolkit.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/messengers/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/messengers/test_kafka_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/messengers/test_mq_contract.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/messengers/test_rabbitmq_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/messengers/test_rocketmq_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/storages/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/storages/test_local_file.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/storages/test_oss.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/storages/test_s3.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/capabilities/test_dual_track_parity.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/apis/__init__.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/apis/ding_dan_guan_li_api.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/__init__.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/base.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/requests/__init__.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/requests/ding_dan_guan_li.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/responses/__init__.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/src/demo_proj/models/responses/ding_dan_guan_li.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/golden/openapi/tests/api/test_ding_dan_guan_li_api.py.txt +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_baseline_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_case_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_cleanup_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_doctor_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_gen_page_flow.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_generate_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_interactive_cmd.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_main.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_openapi_golden.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/cli/test_utils.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/conftest.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/golden/event_schema.json +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/protocols/test_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/protocols/test_event.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/protocols/test_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/protocols/test_repository.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/protocols/test_telemetry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_context.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_event_publisher_coverage.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_event_schema_contract.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_event_types.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_events.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_layer_dependencies.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_middleware.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/core/test_types.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/config/test_discovery.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/config/test_middleware_schema.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/context/test_carriers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/events/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/events/test_bus.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_performance.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_registry.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/metrics/test_types.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/plugins/test_manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/resilience/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/resilience/test_circuit_breaker.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/sanitize/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/sanitize/test_service.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/telemetry/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/telemetry/test_facade.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/telemetry/test_noop.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_bootstrap.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_crypto.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_crypto_aes.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_crypto_imports.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_crypto_interop.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_helpers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_logging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_national_crypto_helpers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_observability_observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_pipeline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_runtime.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_settings.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/test_sources.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_context.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_decorators.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_exporters.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_integrations.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_interceptors.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/infrastructure/tracing/test_manager.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/integration/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/integration/test_config_environment.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/integration/test_event_observability.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/integration/test_factory_assertions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/integration/test_middleware_chain.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/migration/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/migration/test_v3_13_to_v3_14_examples.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/plugins/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/plugins/builtin/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/plugins/builtin/monitoring/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/plugins/builtin/monitoring/test_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/test_docs_imports.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/test_docs_links.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/test_json_to_model_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/test_lazy_imports.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/test_version_consistency.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/assertions/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/assertions/test_json_schema.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/assertions/test_matchers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/assertions/test_waiting.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/pipeline/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/pipeline/test_pipeline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/pipeline/test_pipeline_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_baseline.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_builders.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_data_generator.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_factories.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_naming.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_naming_guards.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_naming_keys.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/data/test_naming_standard.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/debugging/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/debugging/test_console_debug_observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/decorators/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/decorators/test_actions_class.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/decorators/test_api_class.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/decorators/test_service_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/decorators/test_ui_client.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_allure_fixture.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_cleanup.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_cleanup_scopes_integration.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_fixtures_core.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_fixtures_debugging.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_fixtures_message_queue.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_fixtures_monitoring.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_http_recorder.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_lifecycle_hooks.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_monitoring_metrics.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_plugin_lifecycle_integration.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_ui_fixtures.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/fixtures/test_ui_tracing.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/mocking/__init__.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/mocking/test_database_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/mocking/test_http_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/mocking/test_redis_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/mocking/test_time_mock.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/plugins/test_api_autodiscovery.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/plugins/test_debug_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/plugins/test_logging_plugin.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/plugins/test_markers.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/reporting/test_allure_observer.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_allure_helper.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_assertions.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_data_loaders.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_factories_presets.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_gates_concurrency.py +0 -0
- {df_test_framework-4.10.0 → df_test_framework-4.10.2}/tests/testing/test_page_mock_auth_state.py +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# GitHub Actions 工作流
|
|
2
|
+
|
|
3
|
+
发布操作、恢复与验收见 [发布流程](../../docs/development/RELEASE.md)。
|
|
4
|
+
本页描述框架仓库 CI,不是测试项目脚手架生成的流水线。
|
|
5
|
+
|
|
6
|
+
| 文件 | 触发与职责 |
|
|
7
|
+
|---|---|
|
|
8
|
+
| test.yml | 代码 push:Ubuntu/3.12;PR、手动、周一 UTC 00:30:六矩阵;发布调用强制全矩阵,随后验收 CLI |
|
|
9
|
+
| lint.yml | 代码 push/PR 的 Ruff 检查 |
|
|
10
|
+
| docs.yml | 文档 push/PR 或手动,检查死链、导入路径与版本 |
|
|
11
|
+
| release.yml | 标签:验证→完整测试→构建/安装→PyPI→Release;手动输入版本只验证/构建 |
|
|
12
|
+
| security.yml | 周日 UTC 00:00 或手动安全扫描 |
|
|
13
|
+
| scheduled.yml | 历史名称保留,当前仅手动,无每日定时 |
|
|
14
|
+
|
|
15
|
+
## 发布门禁
|
|
16
|
+
|
|
17
|
+
- 版本/标签必须匹配包版本,发布材料必须存在。
|
|
18
|
+
- 矩阵通过 UV_PYTHON 覆盖 .python-version,并断言实际解释器。
|
|
19
|
+
- gm/crypto 显式安装;国密互通用 DF_GM_REQUIRED=1,缺依赖不得跳过。
|
|
20
|
+
- 独立 wheel 环境从仓库外验收,PyPI 与 Release 使用同一份产物。
|
|
21
|
+
- 发布队列不取消正在发布的任务;复用测试与发布使用不同并发组,避免互相取消,
|
|
22
|
+
见 [GitHub 复用限制](https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations)。
|
|
23
|
+
|
|
24
|
+
## 配置与排障
|
|
25
|
+
|
|
26
|
+
release Environment 保存项目范围 PYPI_API_TOKEN,并允许版本标签。
|
|
27
|
+
可选 DINGTALK_WEBHOOK 用于标签发布结果通知,不输出 Secret 排障。
|
|
28
|
+
区分版本错误、依赖缺失、解释器不符、包清单遗漏和重复版本,不以跳过测试、
|
|
29
|
+
移动已发布标签或 skip-existing 解决。
|
|
30
|
+
|
|
31
|
+
跨系统 CI 与真实服务验收范围不同,mock/离线通过不代表业务环境可用。
|
|
32
|
+
|
|
33
|
+
更新日期:2026-09-22。
|
|
@@ -7,16 +7,20 @@ on:
|
|
|
7
7
|
workflow_dispatch: # 允许手动触发
|
|
8
8
|
inputs:
|
|
9
9
|
version:
|
|
10
|
-
description: '
|
|
10
|
+
description: '仅验证和构建的版本号(不发布,例如 4.10.1)'
|
|
11
11
|
required: true
|
|
12
12
|
type: string
|
|
13
13
|
|
|
14
14
|
permissions:
|
|
15
15
|
contents: write # 允许创建 Release 和上传资源
|
|
16
16
|
|
|
17
|
+
concurrency:
|
|
18
|
+
group: release-${{ github.ref }}
|
|
19
|
+
cancel-in-progress: false
|
|
20
|
+
|
|
17
21
|
jobs:
|
|
18
|
-
|
|
19
|
-
name:
|
|
22
|
+
validate:
|
|
23
|
+
name: 校验发布版本与文档
|
|
20
24
|
runs-on: ubuntu-latest
|
|
21
25
|
timeout-minutes: 20
|
|
22
26
|
|
|
@@ -29,24 +33,17 @@ jobs:
|
|
|
29
33
|
with:
|
|
30
34
|
python-version: '3.12'
|
|
31
35
|
|
|
32
|
-
- name:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
run: |
|
|
37
|
-
uv sync
|
|
38
|
-
|
|
39
|
-
- name: 代码质量检查
|
|
40
|
-
run: |
|
|
41
|
-
uv run ruff check src/
|
|
42
|
-
uv run ruff format src/ --check
|
|
36
|
+
- name: 版本与发布材料必须匹配
|
|
37
|
+
env:
|
|
38
|
+
RELEASE_VERSION: ${{ github.event_name == 'push' && github.ref_name || inputs.version }}
|
|
39
|
+
run: python scripts/check_release.py "$RELEASE_VERSION"
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
test:
|
|
42
|
+
name: 发布前完整测试
|
|
43
|
+
needs: validate
|
|
44
|
+
uses: ./.github/workflows/test.yml
|
|
45
|
+
with:
|
|
46
|
+
full_matrix: true
|
|
50
47
|
|
|
51
48
|
build:
|
|
52
49
|
name: 构建分发包
|
|
@@ -68,6 +65,17 @@ jobs:
|
|
|
68
65
|
python -m pip install --upgrade pip
|
|
69
66
|
pip install build twine
|
|
70
67
|
|
|
68
|
+
- name: 安装uv
|
|
69
|
+
uses: astral-sh/setup-uv@v3
|
|
70
|
+
|
|
71
|
+
- name: 安装锁定的检查工具
|
|
72
|
+
run: uv sync --locked
|
|
73
|
+
|
|
74
|
+
- name: 代码质量检查(不自动修改发布源码)
|
|
75
|
+
run: |
|
|
76
|
+
uv run --no-sync ruff check src/ tests/ scripts/check_release.py
|
|
77
|
+
uv run --no-sync ruff format src/ tests/ scripts/check_release.py --check
|
|
78
|
+
|
|
71
79
|
- name: 构建分发包
|
|
72
80
|
run: |
|
|
73
81
|
python -m build
|
|
@@ -76,6 +84,37 @@ jobs:
|
|
|
76
84
|
run: |
|
|
77
85
|
twine check dist/*
|
|
78
86
|
|
|
87
|
+
- name: 独立环境验收 wheel 与可选密码入口
|
|
88
|
+
run: |
|
|
89
|
+
WHEEL=$(realpath dist/*.whl)
|
|
90
|
+
EXPECTED=$(python -c 'import tomllib; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"])')
|
|
91
|
+
python -m venv "$RUNNER_TEMP/release-smoke"
|
|
92
|
+
"$RUNNER_TEMP/release-smoke/bin/python" -m pip install "$WHEEL[gm,crypto]"
|
|
93
|
+
cd "$RUNNER_TEMP"
|
|
94
|
+
"$RUNNER_TEMP/release-smoke/bin/df-test" --help
|
|
95
|
+
"$RUNNER_TEMP/release-smoke/bin/python" -I - "$EXPECTED" <<'PY'
|
|
96
|
+
import secrets
|
|
97
|
+
import sys
|
|
98
|
+
from importlib.metadata import version
|
|
99
|
+
from df_test_framework import SM2PrivateKey, SM2_DEFAULT_USER_ID
|
|
100
|
+
from df_test_framework.infrastructure.helpers import (
|
|
101
|
+
SM2Cipher, SM2Signer, SM4Cipher, aes_encrypt, aes_decrypt,
|
|
102
|
+
)
|
|
103
|
+
assert version("df-test-framework") == sys.argv[1]
|
|
104
|
+
private = SM2PrivateKey.generate()
|
|
105
|
+
signer = SM2Signer(key=private, user_id=SM2_DEFAULT_USER_ID, signature_format="der")
|
|
106
|
+
signer.verify_text(signer.sign_text("验收"), "验收")
|
|
107
|
+
cipher = SM2Cipher(key=private, ciphertext_format="c1c3c2")
|
|
108
|
+
assert cipher.decrypt_text(cipher.encrypt_text("验收")) == "验收"
|
|
109
|
+
sm4 = SM4Cipher(key=secrets.token_bytes(16), mode="GCM")
|
|
110
|
+
nonce = secrets.token_bytes(12)
|
|
111
|
+
assert sm4.decrypt_text(sm4.encrypt_text("验收", nonce=nonce), nonce=nonce) == "验收"
|
|
112
|
+
key = secrets.token_bytes(16)
|
|
113
|
+
aes = aes_encrypt("验收", key=key, mode="ECB")
|
|
114
|
+
assert aes_decrypt(aes, key=key, mode="ECB") == "验收"
|
|
115
|
+
PY
|
|
116
|
+
"$RUNNER_TEMP/release-smoke/bin/python" -I "$GITHUB_WORKSPACE/scripts/smoke_config_release.py" "$EXPECTED"
|
|
117
|
+
|
|
79
118
|
- name: 上传构建产物
|
|
80
119
|
uses: actions/upload-artifact@v4
|
|
81
120
|
with:
|
|
@@ -111,7 +150,6 @@ jobs:
|
|
|
111
150
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
112
151
|
with:
|
|
113
152
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
114
|
-
skip-existing: true
|
|
115
153
|
|
|
116
154
|
- name: 发布总结
|
|
117
155
|
run: |
|
|
@@ -128,7 +166,7 @@ jobs:
|
|
|
128
166
|
name: 创建GitHub Release
|
|
129
167
|
runs-on: ubuntu-latest
|
|
130
168
|
timeout-minutes: 20
|
|
131
|
-
needs: build
|
|
169
|
+
needs: [build, publish-pypi]
|
|
132
170
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
133
171
|
|
|
134
172
|
steps:
|
|
@@ -143,24 +181,18 @@ jobs:
|
|
|
143
181
|
name: dist-packages
|
|
144
182
|
path: dist/
|
|
145
183
|
|
|
184
|
+
- name: 设置Python 3.12
|
|
185
|
+
uses: actions/setup-python@v5
|
|
186
|
+
with:
|
|
187
|
+
python-version: '3.12'
|
|
188
|
+
|
|
146
189
|
- name: 生成变更日志
|
|
147
190
|
id: changelog
|
|
148
191
|
run: |
|
|
149
192
|
VERSION=${GITHUB_REF#refs/tags/v}
|
|
150
193
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
151
194
|
|
|
152
|
-
|
|
153
|
-
if [ -f CHANGELOG.md ]; then
|
|
154
|
-
# 提取## [VERSION]到下一个## [之间的内容
|
|
155
|
-
CHANGES=$(sed -n "/## \[${VERSION}\]/,/## \[/p" CHANGELOG.md | sed '$ d' | tail -n +2)
|
|
156
|
-
if [ -n "$CHANGES" ]; then
|
|
157
|
-
echo "$CHANGES" > release_notes.md
|
|
158
|
-
else
|
|
159
|
-
echo "查看完整变更日志: [CHANGELOG.md](CHANGELOG.md)" > release_notes.md
|
|
160
|
-
fi
|
|
161
|
-
else
|
|
162
|
-
echo "查看完整变更历史: [Commits](https://github.com/${{ github.repository }}/commits/v${VERSION})" > release_notes.md
|
|
163
|
-
fi
|
|
195
|
+
python scripts/check_release.py "$VERSION" --notes release_notes.md
|
|
164
196
|
|
|
165
197
|
- name: 创建GitHub Release
|
|
166
198
|
uses: softprops/action-gh-release@v2
|
|
@@ -185,7 +217,7 @@ jobs:
|
|
|
185
217
|
runs-on: ubuntu-latest
|
|
186
218
|
timeout-minutes: 20
|
|
187
219
|
needs: [publish-pypi, create-release]
|
|
188
|
-
if: always()
|
|
220
|
+
if: always() && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
189
221
|
|
|
190
222
|
steps:
|
|
191
223
|
- name: 发送钉钉通知
|
|
@@ -12,17 +12,24 @@ on:
|
|
|
12
12
|
- pyproject.toml
|
|
13
13
|
- uv.lock
|
|
14
14
|
- .github/workflows/test.yml
|
|
15
|
+
- .github/workflows/release.yml
|
|
16
|
+
- scripts/check_release.py
|
|
15
17
|
pull_request:
|
|
16
18
|
branches: [ main, master, develop ]
|
|
17
19
|
paths: *code_paths
|
|
18
20
|
workflow_dispatch: # 允许手动触发(跑全矩阵)
|
|
21
|
+
workflow_call: # 发布工作流复用,强制全矩阵
|
|
22
|
+
inputs:
|
|
23
|
+
full_matrix:
|
|
24
|
+
type: boolean
|
|
25
|
+
default: true
|
|
19
26
|
schedule:
|
|
20
27
|
# 每周一 UTC 00:30 全矩阵兜底(直接在 master 开发、无 PR 流的现实下,
|
|
21
28
|
# 这是跨 OS/跨版本差异——如 macOS greenlet 类问题——的唯一稳定执行点)
|
|
22
29
|
- cron: '30 0 * * 1'
|
|
23
30
|
|
|
24
31
|
concurrency:
|
|
25
|
-
group:
|
|
32
|
+
group: tests-${{ github.workflow }}-${{ github.ref }}
|
|
26
33
|
cancel-in-progress: true
|
|
27
34
|
|
|
28
35
|
jobs:
|
|
@@ -38,8 +45,8 @@ jobs:
|
|
|
38
45
|
fail-fast: false
|
|
39
46
|
# push=核心单矩阵(ubuntu+3.12);PR/手动/每周定时=全矩阵
|
|
40
47
|
matrix:
|
|
41
|
-
os: ${{ github.event_name == 'push' && fromJSON('["ubuntu-latest"]') || fromJSON('["ubuntu-latest", "windows-latest", "macos-latest"]') }}
|
|
42
|
-
python-version: ${{ github.event_name == 'push' && fromJSON('["3.12"]') || fromJSON('["3.12", "3.13"]') }}
|
|
48
|
+
os: ${{ github.event_name == 'push' && !inputs.full_matrix && fromJSON('["ubuntu-latest"]') || fromJSON('["ubuntu-latest", "windows-latest", "macos-latest"]') }}
|
|
49
|
+
python-version: ${{ github.event_name == 'push' && !inputs.full_matrix && fromJSON('["3.12"]') || fromJSON('["3.12", "3.13"]') }}
|
|
43
50
|
|
|
44
51
|
steps:
|
|
45
52
|
- name: 检出代码
|
|
@@ -56,7 +63,7 @@ jobs:
|
|
|
56
63
|
- name: 同步依赖(使用 uv sync)
|
|
57
64
|
run: |
|
|
58
65
|
# 安装核心依赖 + dev 依赖 + 可观测性 + 存储 + 代码生成 + 国密依赖
|
|
59
|
-
uv sync --extra observability --extra storage --extra codegen --extra gm
|
|
66
|
+
uv sync --locked --extra observability --extra storage --extra codegen --extra gm --extra crypto
|
|
60
67
|
|
|
61
68
|
- name: 校验实际 Python 版本与矩阵一致
|
|
62
69
|
run: uv run --no-sync python -c "import os, sys; expected = tuple(map(int, os.environ['UV_PYTHON'].split('.'))); print(sys.version); assert sys.version_info[:2] == expected, (sys.version_info[:2], expected)"
|
|
@@ -153,7 +160,7 @@ jobs:
|
|
|
153
160
|
uv run df-test init api-test-project --type api
|
|
154
161
|
test -f api-test-project/pyproject.toml
|
|
155
162
|
test -f api-test-project/config/base.yaml
|
|
156
|
-
test -f api-test-project/config/secrets/.env.
|
|
163
|
+
test -f api-test-project/config/secrets/.env.test.example
|
|
157
164
|
# v4.9.5: 最小骨架 + 类型真裁剪
|
|
158
165
|
test -f api-test-project/src/api_test_project/apis/example_api.py
|
|
159
166
|
test -f api-test-project/src/api_test_project/clients/http_clients.py
|
|
@@ -164,11 +171,14 @@ jobs:
|
|
|
164
171
|
test ! -d api-test-project/src/api_test_project/actions
|
|
165
172
|
test ! -d api-test-project/src/api_test_project/pages
|
|
166
173
|
|
|
174
|
+
- name: 校验三种骨架的默认参数、依赖、CI 模板与离线入口
|
|
175
|
+
run: uv run --no-sync pytest tests/cli/test_init_cmd.py -q
|
|
176
|
+
|
|
167
177
|
- name: 测试完整项目初始化(UI)
|
|
168
178
|
run: |
|
|
169
179
|
uv run df-test init ui-test-project --type ui
|
|
170
180
|
test -f ui-test-project/pyproject.toml
|
|
171
|
-
test -f ui-test-project/config/secrets/.env.
|
|
181
|
+
test -f ui-test-project/config/secrets/.env.test.example
|
|
172
182
|
# v4.9.5: 最小骨架 + 类型真裁剪
|
|
173
183
|
test -f ui-test-project/src/ui_test_project/actions/example_actions.py
|
|
174
184
|
test -f ui-test-project/src/ui_test_project/pages/example_page.py
|
|
@@ -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.10.
|
|
12
|
-
- **更新时间**: 2026-
|
|
11
|
+
- **版本**: v4.10.2
|
|
12
|
+
- **更新时间**: 2026-10-10
|
|
13
13
|
- **Python**: 3.12+
|
|
14
14
|
- **核心技术栈**: pytest + httpx + Playwright + Pydantic v2 + SQLAlchemy 2.0 + Pluggy
|
|
15
15
|
- **架构**: 五层架构 + 横切关注点(能力层驱动设计)
|
|
@@ -120,6 +120,7 @@ df-test init my-project --type full # 完整项目:API + UI 两侧齐备
|
|
|
120
120
|
- **DB 事务参与**: CRUD 全系支持 `session=` 参数参与 `transaction()`;SQL 标识符全面校验(表名/列名/条件键/order_by)防注入;`savepoint(session)` 真实部分回滚(v4.9.19~21)
|
|
121
121
|
- **MQ async 化**: `AsyncKafkaClient`/`AsyncRabbitMQClient`(专属单线程 executor 委托);Kafka 命名对齐 confluent 官方(`produce` 系 + `value` 参数);双侧 `connect()`/`stop()`/`fetch()`(v4.9.21)
|
|
122
122
|
- **机检体系**: 双轨对账、core 层依赖 AST 检查、文档死链/import 路径/版本一致性、事件 dataclass、golden 快照——规范尽量机检化(DESIGN_STANDARDS R0.1)
|
|
123
|
+
- **密码原语**: `infrastructure/crypto` 统一承载 AES(`crypto` extra)与 SM2/SM3/SM4(`gm` extra);helpers 提供文本/编码便捷层;设计与使用分别见 `docs/architecture/national-crypto-design.md`、`docs/guides/national-crypto.md`(v4.10.0)。
|
|
123
124
|
|
|
124
125
|
---
|
|
125
126
|
|
|
@@ -154,6 +155,10 @@ def test_login(self): ...
|
|
|
154
155
|
|
|
155
156
|
## 版本发布
|
|
156
157
|
|
|
158
|
+
完整执行与恢复流程见 `docs/development/RELEASE.md`。下面的提交步骤不是发布完成:
|
|
159
|
+
发布还需推送确认的版本标签,通过完整矩阵、构建/独立安装后上传 PyPI;
|
|
160
|
+
已发布版本不覆盖,手动运行 release workflow 仅验证和构建。
|
|
161
|
+
|
|
157
162
|
### 版本号选择规则(语义化版本)
|
|
158
163
|
|
|
159
164
|
**完整规范**: `docs/development/VERSION_CONTROL_RULES.md`
|
|
@@ -7,7 +7,38 @@
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## [4.10.2] - 2026-10-10
|
|
11
|
+
|
|
12
|
+
### 配置按环境隔离(破坏性配置迁移,维护者指定 PATCH)
|
|
13
|
+
|
|
14
|
+
- secrets 改用共享 `.env` 和环境专属 `.env.{env}`;本机 YAML 改为
|
|
15
|
+
`{env}.local.yaml`,通过 pytest/CLI `--local` 或 API `local=True` 显式启用。
|
|
16
|
+
- 环境名支持受字符约束的自定义名称,显式环境身份不受文件或进程变量再次覆盖;
|
|
17
|
+
缓存按实际环境与覆盖开关区分,pytest 不再改写进程 ENV。
|
|
18
|
+
- `_extends` 对所有 YAML 层按声明文件目录解析;写坏的 YAML、循环、缺失引用报错,
|
|
19
|
+
普通可选文件缺省仍可只用 base 或默认值运行。
|
|
20
|
+
- 自定义环境可声明 `production: true`,统一生产守卫;prod/production 不可解除保护。
|
|
21
|
+
- 迁移原 test 调试文件为 `test.local.yaml`、`.env.test`,命令改为
|
|
22
|
+
`--env=test --local`;无历史文件告警或 doctor 失败规则。模板、指南和来源诊断同步。
|
|
23
|
+
|
|
24
|
+
## [4.10.1] - 2026-09-29
|
|
25
|
+
|
|
26
|
+
### 发布配套
|
|
27
|
+
|
|
28
|
+
- 补齐脚手架 pytest 默认 Allure 目录、严格 marker 检查、INFO 日志和忽略规则;
|
|
29
|
+
UI/full 自动声明 ui extra,依赖限制在当前主版本内,CI 不再隐式切换本地源码依赖。
|
|
30
|
+
- CI/CD 模板收敛到锁文件安装、按需浏览器准备、测试与产物归档;定时回归保留
|
|
31
|
+
example 排除,移除未接线的数据库矩阵、默认通知和报告公开发布。
|
|
32
|
+
- 修正配置优先级说明;生成 README、CLI 帮助及后续包元数据不再展示内部仓库地址。
|
|
33
|
+
|
|
34
|
+
- 脚手架 README 改为项目使用指南:补齐环境准备、离线首次运行、示例接入、报告与诊断;
|
|
35
|
+
API/UI 按类型裁剪,CI/CD 说明跟随生成选项,密码能力收敛为扩展入口。
|
|
36
|
+
|
|
37
|
+
- 补齐国密发布状态、安装入口与脚手架按需使用说明,密码扩展不进入默认项目依赖。
|
|
38
|
+
- CI/CD 模板对齐 Python 3.12/3.13、报告插件和 pyproject/uv.lock;Docker 修正项目路径,
|
|
39
|
+
GitHub 测试项目发包改为显式开启,避免将默认 package=false 骨架直接送去构建。
|
|
40
|
+
- 发布流程增加版本核验、复用完整测试矩阵、独立 wheel 安装验收,
|
|
41
|
+
GitHub Release 等待 PyPI 成功后创建,重复版本不再静默跳过。
|
|
11
42
|
|
|
12
43
|
## [4.10.0] - 2026-09-22
|
|
13
44
|
|
|
@@ -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.10.
|
|
12
|
-
- **更新时间**: 2026-
|
|
11
|
+
- **版本**: v4.10.2
|
|
12
|
+
- **更新时间**: 2026-10-10
|
|
13
13
|
- **Python**: 3.12+
|
|
14
14
|
- **核心技术栈**: pytest + httpx + Playwright + Pydantic v2 + SQLAlchemy 2.0 + Pluggy
|
|
15
15
|
- **架构**: 五层架构 + 横切关注点(能力层驱动设计)
|
|
@@ -169,6 +169,10 @@ def test_login(self): ...
|
|
|
169
169
|
|
|
170
170
|
## 版本发布
|
|
171
171
|
|
|
172
|
+
完整执行与恢复流程见 `docs/development/RELEASE.md`。下面的提交步骤不是发布完成:
|
|
173
|
+
发布还需推送确认的版本标签,通过完整矩阵、构建/独立安装后上传 PyPI;
|
|
174
|
+
已发布版本不覆盖,手动运行 release workflow 仅验证和构建。
|
|
175
|
+
|
|
172
176
|
### 版本号选择规则(语义化版本)
|
|
173
177
|
|
|
174
178
|
**完整规范**: `docs/development/VERSION_CONTROL_RULES.md`
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: df-test-framework
|
|
3
|
-
Version: 4.10.
|
|
3
|
+
Version: 4.10.2
|
|
4
4
|
Summary: 基于交互模式的现代化测试自动化框架,支持多种测试场景
|
|
5
|
-
Project-URL: Homepage, https://github.com/yourorg/df-test-framework
|
|
6
|
-
Project-URL: Repository, https://github.com/yourorg/df-test-framework
|
|
7
|
-
Project-URL: Documentation, https://github.com/yourorg/df-test-framework#readme
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/yourorg/df-test-framework/issues
|
|
9
5
|
Author-email: DF QA Team <qa@example.com>
|
|
10
6
|
License: MIT
|
|
11
7
|
Keywords: api,automation,framework,pytest,testing,ui
|
|
@@ -124,7 +120,7 @@ Description-Content-Type: text/markdown
|
|
|
124
120
|
|
|
125
121
|
[](https://pypi.org/project/df-test-framework/)
|
|
126
122
|
[](https://www.python.org/)
|
|
127
|
-
|
|
123
|
+

|
|
128
124
|
|
|
129
125
|
---
|
|
130
126
|
|
|
@@ -169,7 +165,8 @@ pip install df-test-framework
|
|
|
169
165
|
| `mq` | 消息队列(Kafka + RabbitMQ + RocketMQ) | `uv add "df-test-framework[mq]"` |
|
|
170
166
|
| `observability` | OpenTelemetry + Prometheus | `uv add "df-test-framework[observability]"` |
|
|
171
167
|
| `storage` | 对象存储(S3 + 阿里云 OSS) | `uv add "df-test-framework[storage]"` |
|
|
172
|
-
| `crypto` | AES
|
|
168
|
+
| `crypto` | AES 加解密 | `uv add "df-test-framework[crypto]"` |
|
|
169
|
+
| `gm` | SM2 签名/验签与加解密、SM3/HMAC-SM3、SM4 | `uv add "df-test-framework[gm]"` |
|
|
173
170
|
| `all` | 所有可选功能 | `uv add "df-test-framework[all]"` |
|
|
174
171
|
|
|
175
172
|
---
|
|
@@ -267,12 +264,8 @@ Layer 0 ─── core/ # 核心层:纯抽象(无第三方依
|
|
|
267
264
|
|
|
268
265
|
## 文档
|
|
269
266
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
- [快速开始](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/QUICK_START.md)
|
|
273
|
-
- [用户手册](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/USER_MANUAL.md)
|
|
274
|
-
- [发布说明](https://github.com/yourorg/df-test-framework/blob/master/docs/releases/)
|
|
275
|
-
- [更新日志](https://github.com/yourorg/df-test-framework/blob/master/CHANGELOG.md)
|
|
267
|
+
通过 `df-test --help` 查看命令入口,初始化项目后参考生成的 README。
|
|
268
|
+
完整使用指南、国密说明及版本发布文档由维护团队提供,暂不公开源码仓库地址。
|
|
276
269
|
|
|
277
270
|
---
|
|
278
271
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# DF Test Framework
|
|
2
2
|
|
|
3
|
-
> **版本**: v4.10.
|
|
4
|
-
> **更新时间**: 2026-
|
|
3
|
+
> **版本**: v4.10.2
|
|
4
|
+
> **更新时间**: 2026-10-10
|
|
5
5
|
> 简单、强大、可扩展的现代化 Python 测试自动化框架
|
|
6
6
|
|
|
7
7
|
[](https://pypi.org/project/df-test-framework/)
|
|
@@ -116,7 +116,8 @@ uv add "df-test-framework[ui,observability,storage]"
|
|
|
116
116
|
| `prometheus` | Prometheus 监控 | `uv add "df-test-framework[prometheus]"` |
|
|
117
117
|
| `observability` | 可观测性全套 | `uv add "df-test-framework[observability]"` |
|
|
118
118
|
| `storage` | S3 + OSS 存储 | `uv add "df-test-framework[storage]"` |
|
|
119
|
-
| `crypto` | AES
|
|
119
|
+
| `crypto` | AES 加解密 | `uv add "df-test-framework[crypto]"` |
|
|
120
|
+
| `gm` | SM2 签名/验签与加解密、SM3/HMAC-SM3、SM4 | `uv add "df-test-framework[gm]"` |
|
|
120
121
|
| `all` | 所有可选功能 | `uv add "df-test-framework[all]"` |
|
|
121
122
|
|
|
122
123
|
**💡 提示**:
|
|
@@ -127,21 +128,21 @@ uv add "df-test-framework[ui,observability,storage]"
|
|
|
127
128
|
### 从 Git 仓库安装
|
|
128
129
|
|
|
129
130
|
```bash
|
|
130
|
-
#
|
|
131
|
-
uv pip install "df-test-framework @ git+https://github.com/
|
|
131
|
+
# 基础安装(仓库当前代码,不等于 PyPI 稳定版)
|
|
132
|
+
uv pip install "df-test-framework @ git+https://github.com/Tanyu-y/test-framework.git"
|
|
132
133
|
|
|
133
134
|
# 安装特定可选依赖
|
|
134
|
-
uv pip install "df-test-framework[observability,storage] @ git+https://github.com/
|
|
135
|
+
uv pip install "df-test-framework[observability,storage] @ git+https://github.com/Tanyu-y/test-framework.git"
|
|
135
136
|
|
|
136
|
-
#
|
|
137
|
-
uv pip install "df-test-framework @ git+https://github.com/
|
|
137
|
+
# 安装指定标签(将 X.Y.Z 替换为所需的已发布版本)
|
|
138
|
+
uv pip install "df-test-framework @ git+https://github.com/Tanyu-y/test-framework.git@vX.Y.Z"
|
|
138
139
|
```
|
|
139
140
|
|
|
140
141
|
### 本地开发
|
|
141
142
|
|
|
142
143
|
```bash
|
|
143
|
-
git clone https://github.com/
|
|
144
|
-
cd
|
|
144
|
+
git clone https://github.com/Tanyu-y/test-framework.git
|
|
145
|
+
cd test-framework
|
|
145
146
|
|
|
146
147
|
# 方式1: 使用 uv sync(推荐)
|
|
147
148
|
uv sync --all-extras # 安装所有依赖(开发 + 可选)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://pypi.org/project/df-test-framework/)
|
|
6
6
|
[](https://www.python.org/)
|
|
7
|
-
|
|
7
|
+

|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -49,7 +49,8 @@ pip install df-test-framework
|
|
|
49
49
|
| `mq` | 消息队列(Kafka + RabbitMQ + RocketMQ) | `uv add "df-test-framework[mq]"` |
|
|
50
50
|
| `observability` | OpenTelemetry + Prometheus | `uv add "df-test-framework[observability]"` |
|
|
51
51
|
| `storage` | 对象存储(S3 + 阿里云 OSS) | `uv add "df-test-framework[storage]"` |
|
|
52
|
-
| `crypto` | AES
|
|
52
|
+
| `crypto` | AES 加解密 | `uv add "df-test-framework[crypto]"` |
|
|
53
|
+
| `gm` | SM2 签名/验签与加解密、SM3/HMAC-SM3、SM4 | `uv add "df-test-framework[gm]"` |
|
|
53
54
|
| `all` | 所有可选功能 | `uv add "df-test-framework[all]"` |
|
|
54
55
|
|
|
55
56
|
---
|
|
@@ -147,12 +148,8 @@ Layer 0 ─── core/ # 核心层:纯抽象(无第三方依
|
|
|
147
148
|
|
|
148
149
|
## 文档
|
|
149
150
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- [快速开始](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/QUICK_START.md)
|
|
153
|
-
- [用户手册](https://github.com/yourorg/df-test-framework/blob/master/docs/user-guide/USER_MANUAL.md)
|
|
154
|
-
- [发布说明](https://github.com/yourorg/df-test-framework/blob/master/docs/releases/)
|
|
155
|
-
- [更新日志](https://github.com/yourorg/df-test-framework/blob/master/CHANGELOG.md)
|
|
151
|
+
通过 `df-test --help` 查看命令入口,初始化项目后参考生成的 README。
|
|
152
|
+
完整使用指南、国密说明及版本发布文档由维护团队提供,暂不公开源码仓库地址。
|
|
156
153
|
|
|
157
154
|
---
|
|
158
155
|
|
|
@@ -179,19 +179,19 @@ my-project/
|
|
|
179
179
|
├── config/
|
|
180
180
|
│ ├── base.yaml # 基础配置(所有环境共享)
|
|
181
181
|
│ ├── environments/
|
|
182
|
-
│ │ ├── local.yaml
|
|
182
|
+
│ │ ├── test.local.yaml # --local 显式启用的本机覆盖
|
|
183
183
|
│ │ ├── dev.yaml # 开发环境
|
|
184
184
|
│ │ ├── test.yaml # 测试环境
|
|
185
185
|
│ │ ├── staging.yaml # 预发布环境
|
|
186
186
|
│ │ └── prod.yaml # 生产环境
|
|
187
187
|
│ └── secrets/ # 敏感配置(已 .gitignore)
|
|
188
|
-
│ └── .env.
|
|
188
|
+
│ └── .env.test # test 环境敏感配置
|
|
189
189
|
└── tests/
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
**配置优先级**(从高到低):
|
|
193
193
|
1. 环境变量(最高优先级)
|
|
194
|
-
2. `config/secrets/.env.
|
|
194
|
+
2. `config/secrets/.env.test`
|
|
195
195
|
3. `config/environments/{env}.yaml`
|
|
196
196
|
4. `config/base.yaml`
|
|
197
197
|
5. `.env` + `.env.{env}`(回退模式)
|
|
@@ -245,7 +245,7 @@ export DB__DATABASE="test_db"
|
|
|
245
245
|
|
|
246
246
|
**敏感信息**(密码):
|
|
247
247
|
```bash
|
|
248
|
-
# config/secrets/.env.
|
|
248
|
+
# config/secrets/.env.test
|
|
249
249
|
DB_PASSWORD=your_secret_password
|
|
250
250
|
```
|
|
251
251
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
| 文档 | 定位 |
|
|
22
22
|
|---|---|
|
|
23
23
|
| [ui-design-principles](./ui-design-principles.md) | UI 层设计原则(改 UI 层必读) |
|
|
24
|
-
| [national-crypto-design](./national-crypto-design.md) | 国密字节核心、便捷层、实现与评审记录(
|
|
24
|
+
| [national-crypto-design](./national-crypto-design.md) | 国密字节核心、便捷层、实现与评审记录(v4.10.0) |
|
|
25
25
|
| [CODE_STRUCTURE](./CODE_STRUCTURE.md) | 代码地图(按目录找文件;架构概念以五层架构详解为准) |
|
|
26
26
|
| [extension-points](./extension-points.md) | 扩展点(⚠️ 部分过时,以 api-reference/extensions 为准) |
|
|
27
27
|
| [TEST_EXECUTION_LIFECYCLE](./TEST_EXECUTION_LIFECYCLE.md) | 测试执行生命周期(⚠️ EventBus 装配段落已被七层模型取代) |
|
{df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/TEST_EXECUTION_LIFECYCLE.md
RENAMED
|
@@ -60,7 +60,7 @@ Hook 执行顺序由 `@pytest.hookimpl(tryfirst/trylast)` 控制:env_plugin
|
|
|
60
60
|
|
|
61
61
|
```
|
|
62
62
|
1. 环境变量(OBSERVABILITY__DEBUG_OUTPUT=true,双下划线嵌套)
|
|
63
|
-
2. Secrets 文件(config/secrets/.env.
|
|
63
|
+
2. Secrets 文件(config/secrets/.env.test)
|
|
64
64
|
3. 环境 YAML(config/environments/{env}.yaml,支持 _extends 继承链)
|
|
65
65
|
4. 基础 YAML(config/base.yaml)
|
|
66
66
|
5. .env 文件(回退模式)
|
{df_test_framework-4.10.0 → df_test_framework-4.10.2}/docs/architecture/national-crypto-design.md
RENAMED
|
@@ -191,6 +191,10 @@ Windows 使用 Git 附带 OpenSSL;macOS 显式使用 Homebrew OpenSSL,不假
|
|
|
191
191
|
|
|
192
192
|
本机验证使用 Windows、Python 3.12、gmalg 1.1.1、cryptography 50.0.0、asn1crypto 1.5.1,
|
|
193
193
|
独立 OpenSSL 3.5.7。本地通过不等于三平台 CI 已跑绿;跨平台结论需读取推送后的 CI。
|
|
194
|
+
发布验收补记:v4.10.0 的 Windows/Linux/macOS × Python 3.12/3.13
|
|
195
|
+
[完整矩阵已通过](https://github.com/Tanyu-y/test-framework/actions/runs/35734893910),
|
|
196
|
+
[发布工作流已完成](https://github.com/Tanyu-y/test-framework/actions/runs/35735390500)。
|
|
197
|
+
最终本机回归为 3215 passed / 44 skipped(排除 Storage),并完成独立环境的 PyPI 安装冒烟。
|
|
194
198
|
没有执行真实充值/退款等接口,也没有用本批单测宣称生产系统端到端验收。
|
|
195
199
|
|
|
196
200
|
2026-09-22 本机验收快照(不是未来版本的固定用例数):
|
|
@@ -222,15 +226,16 @@ SM2Cipher,逐请求使用 SM4Cipher;支付信封工具也委托便捷层。
|
|
|
222
226
|
既有 V2 SM4-ECB/PKCS7、SM2 C1C3C2、Base64 和 SM3 签名源均未改变。
|
|
223
227
|
项目离线测试直接使用字节核心验证报文,不只靠同一便捷对象自加自解。
|
|
224
228
|
|
|
225
|
-
|
|
229
|
+
v4.10.0 已发布至 PyPI;Master 已移除指向 `../test-framework` 的 uv editable source,
|
|
230
|
+
重新锁定并实际安装 PyPI 4.10.0,13 个离线国密测试通过,doctor 健康。
|
|
226
231
|
版本决定(2026-09-22):按 MINOR 发布为 v4.10.0。移除公开 API 按规则应为 MAJOR,
|
|
227
232
|
维护者以「消费项目全部内部维护、已同步迁移、不需要兼容层」为由豁免,仅限本次。
|
|
228
|
-
Master
|
|
233
|
+
Master 依赖范围为 `>=4.10.0,<5`;本次验收不包含真实支付端到端调用。
|
|
229
234
|
techconnect 升级后可消掉 TEST_PLAN「四点五」并落地开放退款与建行受理服务用例。
|
|
230
235
|
|
|
231
236
|
## 9. 独立评审清单
|
|
232
237
|
|
|
233
|
-
-
|
|
238
|
+
- 检查目标提交范围与两个仓库的未提交差异、未跟踪文件;不要只看当前工作区判断已提交实现。
|
|
234
239
|
- 重点检查 ASN.1/OID/点验证、C3 和 GCM 认证、消息与预摘要区分、UID 与签名格式。
|
|
235
240
|
- 确认格式支持范围与文档一致;尤其是空 UID、宽松 PEM 的拒绝边界、PKCS#8 子集、未加密私钥导出。
|
|
236
241
|
- 检查便捷层有无隐式降级、忽略参数、nonce/IV 复用诱导,以及异常/日志泄密。
|