cli-test-framework 0.9.2__tar.gz → 0.9.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. {cli_test_framework-0.9.2/src/cli_test_framework.egg-info → cli_test_framework-0.9.3}/PKG-INFO +1 -1
  2. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/docs/user_manual.md +20 -2
  3. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/setup.py +1 -1
  4. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/config/import_expander.py +15 -2
  5. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3/src/cli_test_framework.egg-info}/PKG-INFO +1 -1
  6. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework.egg-info/SOURCES.txt +1 -0
  7. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_cli.cpython-312-pytest-9.0.3.pyc +0 -0
  8. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_config_io.cpython-312-pytest-9.0.3.pyc +0 -0
  9. cli_test_framework-0.9.3/tests/unit/__pycache__/test_import_expander.cpython-312-pytest-7.4.4.pyc +0 -0
  10. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_import_expander.cpython-312-pytest-9.0.3.pyc +0 -0
  11. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_config_loader.cpython-312-pytest-9.0.3.pyc +0 -0
  12. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312-pytest-9.0.3.pyc +0 -0
  13. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/MANIFEST.in +0 -0
  14. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/README.md +0 -0
  15. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/docs/design.md +0 -0
  16. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/docs/design_en.md +0 -0
  17. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/docs/tui_and_config_split_design.md +0 -0
  18. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/docs/user_manual_en.md +0 -0
  19. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/pyproject.toml +0 -0
  20. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/setup.cfg +0 -0
  21. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/__init__.py +0 -0
  22. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/cli.py +0 -0
  23. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/commands/__init__.py +0 -0
  24. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/commands/compare.py +0 -0
  25. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/config/__init__.py +0 -0
  26. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/config/config_io.py +0 -0
  27. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/__init__.py +0 -0
  28. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/assertions.py +0 -0
  29. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/base_runner.py +0 -0
  30. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/config_loader.py +0 -0
  31. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/execution.py +0 -0
  32. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/history_store.py +0 -0
  33. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/parallel_runner.py +0 -0
  34. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/process_worker.py +0 -0
  35. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/setup.py +0 -0
  36. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/test_case.py +0 -0
  37. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/core/types.py +0 -0
  38. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/__init__.py +0 -0
  39. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/base_comparator.py +0 -0
  40. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/binary_comparator.py +0 -0
  41. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/csv_comparator.py +0 -0
  42. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/factory.py +0 -0
  43. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/h5_comparator.py +0 -0
  44. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/json_comparator.py +0 -0
  45. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/result.py +0 -0
  46. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/text_comparator.py +0 -0
  47. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/file_comparator/xml_comparator.py +0 -0
  48. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/logging_config.py +0 -0
  49. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/__init__.py +0 -0
  50. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/config_runner.py +0 -0
  51. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/json_runner.py +0 -0
  52. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/parallel_config_runner.py +0 -0
  53. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/parallel_json_runner.py +0 -0
  54. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/parallel_yaml_runner.py +0 -0
  55. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/runners/yaml_runner.py +0 -0
  56. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/utils/__init__.py +0 -0
  57. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/utils/junit_xml_writer.py +0 -0
  58. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/utils/path_resolver.py +0 -0
  59. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework/utils/report_generator.py +0 -0
  60. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework.egg-info/dependency_links.txt +0 -0
  61. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework.egg-info/entry_points.txt +0 -0
  62. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework.egg-info/requires.txt +0 -0
  63. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/src/cli_test_framework.egg-info/top_level.txt +0 -0
  64. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/README.md +0 -0
  65. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__init__.py +0 -0
  66. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  67. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/__init__.cpython-39.pyc +0 -0
  68. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/conftest.cpython-312-pytest-7.4.4.pyc +0 -0
  69. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/conftest.cpython-312-pytest-9.0.3.pyc +0 -0
  70. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/conftest.cpython-39-pytest-8.3.4.pyc +0 -0
  71. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/run_all.cpython-312.pyc +0 -0
  72. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/run_all.cpython-39.pyc +0 -0
  73. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/test_parallel_runner.cpython-312-pytest-7.4.4.pyc +0 -0
  74. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/__pycache__/test_setup_module.cpython-312-pytest-7.4.4.pyc +0 -0
  75. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/conftest.py +0 -0
  76. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/demos/h5_filter_demo.py +0 -0
  77. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/demos/manual_report_example.py +0 -0
  78. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/demos/perf_parallel.py +0 -0
  79. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__init__.py +0 -0
  80. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__pycache__/__init__.cpython-312.pyc +0 -0
  81. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__pycache__/__init__.cpython-39.pyc +0 -0
  82. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__pycache__/test_user_flows.cpython-312-pytest-7.4.4.pyc +0 -0
  83. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__pycache__/test_user_flows.cpython-312-pytest-9.0.3.pyc +0 -0
  84. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/__pycache__/test_user_flows.cpython-39-pytest-8.3.4.pyc +0 -0
  85. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/e2e/test_user_flows.py +0 -0
  86. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/circular_config_a.json +0 -0
  87. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/circular_config_b.json +0 -0
  88. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/main_config.json +0 -0
  89. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/missing_fields.json +0 -0
  90. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/setup_main.json +0 -0
  91. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/setup_sub.json +0 -0
  92. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/sub_json_tests.yaml +0 -0
  93. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/sub_text_tests.json +0 -0
  94. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/test_cases.json +0 -0
  95. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/test_cases.yaml +0 -0
  96. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/test_cases1.json +0 -0
  97. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/test_with_setup.json +0 -0
  98. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/fixtures/test_with_setup.yaml +0 -0
  99. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_history_feature.cpython-312-pytest-7.4.4.pyc +0 -0
  100. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_history_feature.cpython-312-pytest-9.0.3.pyc +0 -0
  101. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_real_command_execution.cpython-312-pytest-7.4.4.pyc +0 -0
  102. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_real_command_execution.cpython-312-pytest-9.0.3.pyc +0 -0
  103. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_sequence.cpython-312-pytest-7.4.4.pyc +0 -0
  104. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/__pycache__/test_sequence.cpython-312-pytest-9.0.3.pyc +0 -0
  105. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_binary_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  106. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_binary_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  107. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_binary_compare.cpython-39-pytest-8.3.4.pyc +0 -0
  108. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_csv_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  109. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_csv_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  110. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_h5_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  111. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_h5_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  112. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_h5_compare.cpython-39-pytest-8.3.4.pyc +0 -0
  113. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_json_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  114. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_json_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  115. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_json_compare.cpython-39-pytest-8.3.4.pyc +0 -0
  116. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_text_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  117. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_text_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  118. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_text_compare.cpython-39-pytest-8.3.4.pyc +0 -0
  119. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_xml_compare.cpython-312-pytest-7.4.4.pyc +0 -0
  120. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/__pycache__/test_xml_compare.cpython-312-pytest-9.0.3.pyc +0 -0
  121. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_binary_compare.py +0 -0
  122. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_csv_compare.py +0 -0
  123. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_h5_compare.py +0 -0
  124. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_json_compare.py +0 -0
  125. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_text_compare.py +0 -0
  126. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/file_compare/test_xml_compare.py +0 -0
  127. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/parallel/__pycache__/test_parallel_runner.cpython-312-pytest-7.4.4.pyc +0 -0
  128. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/parallel/__pycache__/test_parallel_runner.cpython-312-pytest-9.0.3.pyc +0 -0
  129. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/parallel/__pycache__/test_parallel_runner.cpython-39-pytest-8.3.4.pyc +0 -0
  130. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/parallel/test_parallel_runner.py +0 -0
  131. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-312-pytest-7.4.4.pyc +0 -0
  132. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-312-pytest-9.0.3.pyc +0 -0
  133. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/path_handling/__pycache__/test_spaces_in_paths.cpython-39-pytest-8.3.4.pyc +0 -0
  134. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/path_handling/test_spaces_in_paths.py +0 -0
  135. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/test_history_feature.py +0 -0
  136. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/test_real_command_execution.py +0 -0
  137. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/integration/test_sequence.py +0 -0
  138. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/run_all.py +0 -0
  139. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/test_report.txt +0 -0
  140. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_cli.cpython-312-pytest-7.4.4.pyc +0 -0
  141. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-7.4.4.pyc +0 -0
  142. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-9.0.3.pyc +0 -0
  143. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_run_all.cpython-312-pytest-7.4.4.pyc +0 -0
  144. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/__pycache__/test_run_all.cpython-312-pytest-9.0.3.pyc +0 -0
  145. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/commands/__pycache__/test_compare_command.cpython-312-pytest-7.4.4.pyc +0 -0
  146. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/commands/__pycache__/test_compare_command.cpython-312-pytest-9.0.3.pyc +0 -0
  147. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/commands/test_compare_command.py +0 -0
  148. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_assertions.cpython-312-pytest-7.4.4.pyc +0 -0
  149. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_assertions.cpython-312-pytest-9.0.3.pyc +0 -0
  150. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_execution.cpython-312-pytest-9.0.3.pyc +0 -0
  151. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_history_store.cpython-312-pytest-7.4.4.pyc +0 -0
  152. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_history_store.cpython-312-pytest-9.0.3.pyc +0 -0
  153. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_process_worker.cpython-312-pytest-7.4.4.pyc +0 -0
  154. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_process_worker.cpython-312-pytest-9.0.3.pyc +0 -0
  155. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_setup.cpython-312-pytest-7.4.4.pyc +0 -0
  156. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_setup.cpython-312-pytest-9.0.3.pyc +0 -0
  157. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/__pycache__/test_setup.cpython-39-pytest-8.3.4.pyc +0 -0
  158. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_assertions.py +0 -0
  159. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_config_loader.py +0 -0
  160. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_execution.py +0 -0
  161. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_history_store.py +0 -0
  162. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_process_worker.py +0 -0
  163. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/core/test_setup.py +0 -0
  164. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312-pytest-7.4.4.pyc +0 -0
  165. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-312.pyc +0 -0
  166. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_json_yaml_runner.cpython-39-pytest-8.3.4.pyc +0 -0
  167. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_test_case_filter.cpython-312-pytest-7.4.4.pyc +0 -0
  168. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_test_case_filter.cpython-312-pytest-9.0.3.pyc +0 -0
  169. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/__pycache__/test_test_case_tag_filter.cpython-312-pytest-9.0.3.pyc +0 -0
  170. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/test_json_yaml_runner.py +0 -0
  171. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/test_test_case_filter.py +0 -0
  172. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/runners/test_test_case_tag_filter.py +0 -0
  173. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/test_cli.py +0 -0
  174. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/test_config_io.py +0 -0
  175. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/test_h5_comparator.py +0 -0
  176. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/test_import_expander.py +0 -0
  177. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/test_run_all.py +0 -0
  178. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/__pycache__/test_junit_xml_writer.cpython-312-pytest-7.4.4.pyc +0 -0
  179. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/__pycache__/test_junit_xml_writer.cpython-312-pytest-9.0.3.pyc +0 -0
  180. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/__pycache__/test_report_generator.cpython-312-pytest-7.4.4.pyc +0 -0
  181. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/__pycache__/test_report_generator.cpython-312-pytest-9.0.3.pyc +0 -0
  182. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/test_junit_xml_writer.py +0 -0
  183. {cli_test_framework-0.9.2 → cli_test_framework-0.9.3}/tests/unit/utils/test_report_generator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-test-framework
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: A powerful command line testing framework in Python with setup modules, parallel execution, and file comparison capabilities.
5
5
  Home-page: https://github.com/ozil111/cli-test-framework
6
6
  Author: Xiaotong Wang
@@ -166,9 +166,9 @@ test_cases:
166
166
  "args": ["hello"],
167
167
  "expected": { "return_code": 0 }
168
168
  },
169
- { "import": "cases/text_tests.json" },
169
+ { "import": "cases/text_tests.json", "tags": ["text"] },
170
170
  { "import": "cases/json_tests.yaml" },
171
- { "import": "cases/h5_tests.json" }
171
+ { "import": "cases/h5_tests.json", "tags": ["h5", "fast"] }
172
172
  ]
173
173
  }
174
174
  ```
@@ -200,6 +200,24 @@ test_cases:
200
200
  }
201
201
  ```
202
202
 
203
+ ### Import 级标签(Tags)
204
+
205
+ 当一个子文件中的所有用例都标记有相同的标签(如 `"text"`)时,无需在每个 case 里重复编写 `tags`。可以直接在 `import` 条目上添加 `tags`,框架会自动将标签注入到该文件导入的每一条用例:
206
+
207
+ ```json
208
+ { "import": "cases/text_tests.json", "tags": ["text", "fast"] }
209
+ ```
210
+
211
+ **合并规则**:
212
+
213
+ | 场景 | 结果 |
214
+ |---|---|
215
+ | import 有 tags,子用例无 tags | 子用例继承 import 的所有 tags |
216
+ | import 有 tags,子用例也有 tags | 合并去重,import 的 tags 在前,子用例自有的在后 |
217
+ | import 无 tags | 行为不变,向后兼容 |
218
+
219
+ > 嵌套 import(子文件内部继续 import 其他文件)也适用此规则——外层 import 的 tags 会注入到**所有**递推展开后的用例上。
220
+
203
221
  ### 工作原理
204
222
 
205
223
  1. **加载时展开**:Runner 在读取配置文件后、解析 `TestCase` 对象前,自动执行 import 展开。对 Runner 和执行引擎**完全透明**,无需修改测试用例或 Runner 代码。
@@ -8,7 +8,7 @@ with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f:
8
8
 
9
9
  setup(
10
10
  name="cli-test-framework",
11
- version="0.9.2",
11
+ version="0.9.3",
12
12
  author="Xiaotong Wang",
13
13
  author_email="xiaotongwang98@gmail.com",
14
14
  description="A powerful command line testing framework in Python with setup modules, parallel execution, and file comparison capabilities.",
@@ -9,12 +9,16 @@ Example::
9
9
  {
10
10
  "setup": { ... },
11
11
  "test_cases": [
12
- { "import": "cases/text_tests.json" },
12
+ { "import": "cases/text_tests.json", "tags": ["text", "fast"] },
13
13
  { "import": "cases/json_tests.yaml" },
14
14
  { "name": "inline_case", "command": "echo", ... }
15
15
  ]
16
16
  }
17
17
 
18
+ When ``"tags"`` is specified on an import entry, the tags are injected into
19
+ every test case from that imported file. Tags already present on individual
20
+ cases are merged (import-level tags come first, deduplicated).
21
+
18
22
  The expansion produces a flat ``test_cases`` list with all imported cases
19
23
  inlined. The Runner layer never sees the ``import`` keys.
20
24
  """
@@ -106,6 +110,7 @@ def expand_imports(
106
110
  for item in raw_cases:
107
111
  if "import" in item:
108
112
  import_rel = item["import"]
113
+ import_tags = item.get("tags", [])
109
114
  sub_path = (base_dir / import_rel).resolve()
110
115
 
111
116
  if not sub_path.exists():
@@ -125,7 +130,15 @@ def expand_imports(
125
130
  if sub_setup:
126
131
  setup = _deep_merge_setup(setup, sub_setup)
127
132
 
128
- expanded_cases.extend(sub_config.get("test_cases", []))
133
+ sub_cases = sub_config.get("test_cases", [])
134
+
135
+ # Inject import-level tags into each imported case
136
+ if import_tags:
137
+ for case in sub_cases:
138
+ existing = case.get("tags", [])
139
+ case["tags"] = list(dict.fromkeys(import_tags + existing))
140
+
141
+ expanded_cases.extend(sub_cases)
129
142
  else:
130
143
  expanded_cases.append(item)
131
144
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-test-framework
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: A powerful command line testing framework in Python with setup modules, parallel execution, and file comparison capabilities.
5
5
  Home-page: https://github.com/ozil111/cli-test-framework
6
6
  Author: Xiaotong Wang
@@ -139,6 +139,7 @@ tests/unit/__pycache__/test_cli.cpython-312-pytest-9.0.3.pyc
139
139
  tests/unit/__pycache__/test_config_io.cpython-312-pytest-9.0.3.pyc
140
140
  tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-7.4.4.pyc
141
141
  tests/unit/__pycache__/test_h5_comparator.cpython-312-pytest-9.0.3.pyc
142
+ tests/unit/__pycache__/test_import_expander.cpython-312-pytest-7.4.4.pyc
142
143
  tests/unit/__pycache__/test_import_expander.cpython-312-pytest-9.0.3.pyc
143
144
  tests/unit/__pycache__/test_run_all.cpython-312-pytest-7.4.4.pyc
144
145
  tests/unit/__pycache__/test_run_all.cpython-312-pytest-9.0.3.pyc