testql 1.2.1__tar.gz → 1.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. {testql-1.2.1 → testql-1.2.2}/PKG-INFO +56 -6
  2. {testql-1.2.1 → testql-1.2.2}/README.md +55 -5
  3. {testql-1.2.1 → testql-1.2.2}/pyproject.toml +1 -1
  4. {testql-1.2.1 → testql-1.2.2}/testql/__init__.py +1 -1
  5. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/PKG-INFO +56 -6
  6. {testql-1.2.1 → testql-1.2.2}/LICENSE +0 -0
  7. {testql-1.2.1 → testql-1.2.2}/setup.cfg +0 -0
  8. {testql-1.2.1 → testql-1.2.2}/testql/__main__.py +0 -0
  9. {testql-1.2.1 → testql-1.2.2}/testql/_base_fallback.py +0 -0
  10. {testql-1.2.1 → testql-1.2.2}/testql/adapters/__init__.py +0 -0
  11. {testql-1.2.1 → testql-1.2.2}/testql/adapters/base.py +0 -0
  12. {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/__init__.py +0 -0
  13. {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/graphql_adapter.py +0 -0
  14. {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/query_executor.py +0 -0
  15. {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/schema_introspection.py +0 -0
  16. {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/subscription_runner.py +0 -0
  17. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/__init__.py +0 -0
  18. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/entity_extractor.py +0 -0
  19. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/grammar.py +0 -0
  20. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/intent_recognizer.py +0 -0
  21. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/lexicon/__init__.py +0 -0
  22. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/llm_fallback.py +0 -0
  23. {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/nl_adapter.py +0 -0
  24. {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/__init__.py +0 -0
  25. {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/compatibility.py +0 -0
  26. {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/descriptor_loader.py +0 -0
  27. {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/message_validator.py +0 -0
  28. {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/proto_adapter.py +0 -0
  29. {testql-1.2.1 → testql-1.2.2}/testql/adapters/registry.py +0 -0
  30. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/__init__.py +0 -0
  31. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/ddl_parser.py +0 -0
  32. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/dialect_resolver.py +0 -0
  33. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/fixtures.py +0 -0
  34. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/query_parser.py +0 -0
  35. {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/sql_adapter.py +0 -0
  36. {testql-1.2.1 → testql-1.2.2}/testql/adapters/testtoon_adapter.py +0 -0
  37. {testql-1.2.1 → testql-1.2.2}/testql/base.py +0 -0
  38. {testql-1.2.1 → testql-1.2.2}/testql/cli.py +0 -0
  39. {testql-1.2.1 → testql-1.2.2}/testql/commands/__init__.py +0 -0
  40. {testql-1.2.1 → testql-1.2.2}/testql/commands/discover_cmd.py +0 -0
  41. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/__init__.py +0 -0
  42. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/cli.py +0 -0
  43. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/context.py +0 -0
  44. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/formatters/__init__.py +0 -0
  45. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/formatters/text.py +0 -0
  46. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/__init__.py +0 -0
  47. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/doql.py +0 -0
  48. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/toon.py +0 -0
  49. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo.py +0 -0
  50. {testql-1.2.1 → testql-1.2.2}/testql/commands/echo_helpers.py +0 -0
  51. {testql-1.2.1 → testql-1.2.2}/testql/commands/encoder_routes.py +0 -0
  52. {testql-1.2.1 → testql-1.2.2}/testql/commands/endpoints_cmd.py +0 -0
  53. {testql-1.2.1 → testql-1.2.2}/testql/commands/generate_cmd.py +0 -0
  54. {testql-1.2.1 → testql-1.2.2}/testql/commands/generate_ir_cmd.py +0 -0
  55. {testql-1.2.1 → testql-1.2.2}/testql/commands/inspect_cmd.py +0 -0
  56. {testql-1.2.1 → testql-1.2.2}/testql/commands/misc_cmds.py +0 -0
  57. {testql-1.2.1 → testql-1.2.2}/testql/commands/run_cmd.py +0 -0
  58. {testql-1.2.1 → testql-1.2.2}/testql/commands/run_ir_cmd.py +0 -0
  59. {testql-1.2.1 → testql-1.2.2}/testql/commands/self_test_cmd.py +0 -0
  60. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/__init__.py +0 -0
  61. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/cli.py +0 -0
  62. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/collection.py +0 -0
  63. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/execution.py +0 -0
  64. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/listing.py +0 -0
  65. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/reports.py +0 -0
  66. {testql-1.2.1 → testql-1.2.2}/testql/commands/suite_cmd.py +0 -0
  67. {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/__init__.py +0 -0
  68. {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/content.py +0 -0
  69. {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/templates.py +0 -0
  70. {testql-1.2.1 → testql-1.2.2}/testql/commands/topology_cmd.py +0 -0
  71. {testql-1.2.1 → testql-1.2.2}/testql/detectors/__init__.py +0 -0
  72. {testql-1.2.1 → testql-1.2.2}/testql/detectors/base.py +0 -0
  73. {testql-1.2.1 → testql-1.2.2}/testql/detectors/config_detector.py +0 -0
  74. {testql-1.2.1 → testql-1.2.2}/testql/detectors/django_detector.py +0 -0
  75. {testql-1.2.1 → testql-1.2.2}/testql/detectors/express_detector.py +0 -0
  76. {testql-1.2.1 → testql-1.2.2}/testql/detectors/fastapi_detector.py +0 -0
  77. {testql-1.2.1 → testql-1.2.2}/testql/detectors/flask_detector.py +0 -0
  78. {testql-1.2.1 → testql-1.2.2}/testql/detectors/graphql_detector.py +0 -0
  79. {testql-1.2.1 → testql-1.2.2}/testql/detectors/models.py +0 -0
  80. {testql-1.2.1 → testql-1.2.2}/testql/detectors/openapi_detector.py +0 -0
  81. {testql-1.2.1 → testql-1.2.2}/testql/detectors/test_detector.py +0 -0
  82. {testql-1.2.1 → testql-1.2.2}/testql/detectors/unified.py +0 -0
  83. {testql-1.2.1 → testql-1.2.2}/testql/detectors/websocket_detector.py +0 -0
  84. {testql-1.2.1 → testql-1.2.2}/testql/discovery/__init__.py +0 -0
  85. {testql-1.2.1 → testql-1.2.2}/testql/discovery/manifest.py +0 -0
  86. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/__init__.py +0 -0
  87. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/base.py +0 -0
  88. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/__init__.py +0 -0
  89. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/api_openapi.py +0 -0
  90. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/container_compose.py +0 -0
  91. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/container_dockerfile.py +0 -0
  92. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/package_node.py +0 -0
  93. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/package_python.py +0 -0
  94. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/network/__init__.py +0 -0
  95. {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/network/http_endpoint.py +0 -0
  96. {testql-1.2.1 → testql-1.2.2}/testql/discovery/registry.py +0 -0
  97. {testql-1.2.1 → testql-1.2.2}/testql/discovery/source.py +0 -0
  98. {testql-1.2.1 → testql-1.2.2}/testql/doql_parser.py +0 -0
  99. {testql-1.2.1 → testql-1.2.2}/testql/echo_schemas.py +0 -0
  100. {testql-1.2.1 → testql-1.2.2}/testql/endpoint_detector.py +0 -0
  101. {testql-1.2.1 → testql-1.2.2}/testql/generator.py +0 -0
  102. {testql-1.2.1 → testql-1.2.2}/testql/generators/__init__.py +0 -0
  103. {testql-1.2.1 → testql-1.2.2}/testql/generators/analyzers.py +0 -0
  104. {testql-1.2.1 → testql-1.2.2}/testql/generators/base.py +0 -0
  105. {testql-1.2.1 → testql-1.2.2}/testql/generators/convenience.py +0 -0
  106. {testql-1.2.1 → testql-1.2.2}/testql/generators/generators.py +0 -0
  107. {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/__init__.py +0 -0
  108. {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/coverage_optimizer.py +0 -0
  109. {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/edge_case_generator.py +0 -0
  110. {testql-1.2.1 → testql-1.2.2}/testql/generators/multi.py +0 -0
  111. {testql-1.2.1 → testql-1.2.2}/testql/generators/pipeline.py +0 -0
  112. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/__init__.py +0 -0
  113. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/base.py +0 -0
  114. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/graphql_source.py +0 -0
  115. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/nl_source.py +0 -0
  116. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/openapi_source.py +0 -0
  117. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/proto_source.py +0 -0
  118. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/sql_source.py +0 -0
  119. {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/ui_source.py +0 -0
  120. {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/__init__.py +0 -0
  121. {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/base.py +0 -0
  122. {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/nl_target.py +0 -0
  123. {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/pytest_target.py +0 -0
  124. {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/testtoon_target.py +0 -0
  125. {testql-1.2.1 → testql-1.2.2}/testql/generators/test_generator.py +0 -0
  126. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/__init__.py +0 -0
  127. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_api_runner.py +0 -0
  128. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_assertions.py +0 -0
  129. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_converter.py +0 -0
  130. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_encoder.py +0 -0
  131. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_flow.py +0 -0
  132. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_gui.py +0 -0
  133. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_parser.py +0 -0
  134. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_shell.py +0 -0
  135. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_testtoon_parser.py +0 -0
  136. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_unit.py +0 -0
  137. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_websockets.py +0 -0
  138. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/__init__.py +0 -0
  139. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/core.py +0 -0
  140. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/dispatcher.py +0 -0
  141. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/__init__.py +0 -0
  142. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/api.py +0 -0
  143. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/assertions.py +0 -0
  144. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/encoder.py +0 -0
  145. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/flow.py +0 -0
  146. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/include.py +0 -0
  147. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/navigate.py +0 -0
  148. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/record.py +0 -0
  149. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/select.py +0 -0
  150. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/unknown.py +0 -0
  151. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/wait.py +0 -0
  152. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/models.py +0 -0
  153. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/parsers.py +0 -0
  154. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/renderer.py +0 -0
  155. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/dispatcher.py +0 -0
  156. {testql-1.2.1 → testql-1.2.2}/testql/interpreter/interpreter.py +0 -0
  157. {testql-1.2.1 → testql-1.2.2}/testql/interpreter.py +0 -0
  158. {testql-1.2.1 → testql-1.2.2}/testql/ir/__init__.py +0 -0
  159. {testql-1.2.1 → testql-1.2.2}/testql/ir/assertions.py +0 -0
  160. {testql-1.2.1 → testql-1.2.2}/testql/ir/captures.py +0 -0
  161. {testql-1.2.1 → testql-1.2.2}/testql/ir/fixtures.py +0 -0
  162. {testql-1.2.1 → testql-1.2.2}/testql/ir/metadata.py +0 -0
  163. {testql-1.2.1 → testql-1.2.2}/testql/ir/plan.py +0 -0
  164. {testql-1.2.1 → testql-1.2.2}/testql/ir/steps.py +0 -0
  165. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/__init__.py +0 -0
  166. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/assertion_eval.py +0 -0
  167. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/context.py +0 -0
  168. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/engine.py +0 -0
  169. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/__init__.py +0 -0
  170. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/api.py +0 -0
  171. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/base.py +0 -0
  172. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/encoder.py +0 -0
  173. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/graphql.py +0 -0
  174. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/gui.py +0 -0
  175. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/nl.py +0 -0
  176. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/proto.py +0 -0
  177. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/shell.py +0 -0
  178. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/sql.py +0 -0
  179. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/unit.py +0 -0
  180. {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/interpolation.py +0 -0
  181. {testql-1.2.1 → testql-1.2.2}/testql/meta/__init__.py +0 -0
  182. {testql-1.2.1 → testql-1.2.2}/testql/meta/confidence_scorer.py +0 -0
  183. {testql-1.2.1 → testql-1.2.2}/testql/meta/coverage_analyzer.py +0 -0
  184. {testql-1.2.1 → testql-1.2.2}/testql/meta/mutator.py +0 -0
  185. {testql-1.2.1 → testql-1.2.2}/testql/meta/self_test.py +0 -0
  186. {testql-1.2.1 → testql-1.2.2}/testql/openapi_generator.py +0 -0
  187. {testql-1.2.1 → testql-1.2.2}/testql/report_generator.py +0 -0
  188. {testql-1.2.1 → testql-1.2.2}/testql/reporters/__init__.py +0 -0
  189. {testql-1.2.1 → testql-1.2.2}/testql/reporters/console.py +0 -0
  190. {testql-1.2.1 → testql-1.2.2}/testql/reporters/json_reporter.py +0 -0
  191. {testql-1.2.1 → testql-1.2.2}/testql/reporters/junit.py +0 -0
  192. {testql-1.2.1 → testql-1.2.2}/testql/results/__init__.py +0 -0
  193. {testql-1.2.1 → testql-1.2.2}/testql/results/analyzer.py +0 -0
  194. {testql-1.2.1 → testql-1.2.2}/testql/results/artifacts.py +0 -0
  195. {testql-1.2.1 → testql-1.2.2}/testql/results/models.py +0 -0
  196. {testql-1.2.1 → testql-1.2.2}/testql/results/serializers.py +0 -0
  197. {testql-1.2.1 → testql-1.2.2}/testql/runner.py +0 -0
  198. {testql-1.2.1 → testql-1.2.2}/testql/runners/__init__.py +0 -0
  199. {testql-1.2.1 → testql-1.2.2}/testql/sumd_generator.py +0 -0
  200. {testql-1.2.1 → testql-1.2.2}/testql/sumd_parser.py +0 -0
  201. {testql-1.2.1 → testql-1.2.2}/testql/toon_parser.py +0 -0
  202. {testql-1.2.1 → testql-1.2.2}/testql/topology/__init__.py +0 -0
  203. {testql-1.2.1 → testql-1.2.2}/testql/topology/builder.py +0 -0
  204. {testql-1.2.1 → testql-1.2.2}/testql/topology/models.py +0 -0
  205. {testql-1.2.1 → testql-1.2.2}/testql/topology/serializers.py +0 -0
  206. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/SOURCES.txt +0 -0
  207. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/dependency_links.txt +0 -0
  208. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/entry_points.txt +0 -0
  209. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/requires.txt +0 -0
  210. {testql-1.2.1 → testql-1.2.2}/testql.egg-info/top_level.txt +0 -0
  211. {testql-1.2.1 → testql-1.2.2}/tests/test_adapters_base.py +0 -0
  212. {testql-1.2.1 → testql-1.2.2}/tests/test_api_handler.py +0 -0
  213. {testql-1.2.1 → testql-1.2.2}/tests/test_cli.py +0 -0
  214. {testql-1.2.1 → testql-1.2.2}/tests/test_converter.py +0 -0
  215. {testql-1.2.1 → testql-1.2.2}/tests/test_converter_handlers.py +0 -0
  216. {testql-1.2.1 → testql-1.2.2}/tests/test_detectors.py +0 -0
  217. {testql-1.2.1 → testql-1.2.2}/tests/test_discovery.py +0 -0
  218. {testql-1.2.1 → testql-1.2.2}/tests/test_dispatcher.py +0 -0
  219. {testql-1.2.1 → testql-1.2.2}/tests/test_doql_parser_sumd_gen.py +0 -0
  220. {testql-1.2.1 → testql-1.2.2}/tests/test_echo.py +0 -0
  221. {testql-1.2.1 → testql-1.2.2}/tests/test_echo_doql_parser.py +0 -0
  222. {testql-1.2.1 → testql-1.2.2}/tests/test_echo_schemas_helpers.py +0 -0
  223. {testql-1.2.1 → testql-1.2.2}/tests/test_encoder_routes.py +0 -0
  224. {testql-1.2.1 → testql-1.2.2}/tests/test_generate_cmd.py +0 -0
  225. {testql-1.2.1 → testql-1.2.2}/tests/test_generate_ir_cli.py +0 -0
  226. {testql-1.2.1 → testql-1.2.2}/tests/test_generators.py +0 -0
  227. {testql-1.2.1 → testql-1.2.2}/tests/test_graphql_adapter.py +0 -0
  228. {testql-1.2.1 → testql-1.2.2}/tests/test_gui_execution.py +0 -0
  229. {testql-1.2.1 → testql-1.2.2}/tests/test_interpreter.py +0 -0
  230. {testql-1.2.1 → testql-1.2.2}/tests/test_ir.py +0 -0
  231. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_captures.py +0 -0
  232. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_assertion_eval.py +0 -0
  233. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_captures.py +0 -0
  234. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_engine.py +0 -0
  235. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_executors.py +0 -0
  236. {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_interpolation.py +0 -0
  237. {testql-1.2.1 → testql-1.2.2}/tests/test_meta_confidence.py +0 -0
  238. {testql-1.2.1 → testql-1.2.2}/tests/test_meta_coverage.py +0 -0
  239. {testql-1.2.1 → testql-1.2.2}/tests/test_meta_mutator.py +0 -0
  240. {testql-1.2.1 → testql-1.2.2}/tests/test_meta_self_test.py +0 -0
  241. {testql-1.2.1 → testql-1.2.2}/tests/test_misc_cmds.py +0 -0
  242. {testql-1.2.1 → testql-1.2.2}/tests/test_network_discovery.py +0 -0
  243. {testql-1.2.1 → testql-1.2.2}/tests/test_nl_adapter.py +0 -0
  244. {testql-1.2.1 → testql-1.2.2}/tests/test_nl_entity_extractor.py +0 -0
  245. {testql-1.2.1 → testql-1.2.2}/tests/test_nl_grammar.py +0 -0
  246. {testql-1.2.1 → testql-1.2.2}/tests/test_nl_intent_recognizer.py +0 -0
  247. {testql-1.2.1 → testql-1.2.2}/tests/test_nl_scenarios_e2e.py +0 -0
  248. {testql-1.2.1 → testql-1.2.2}/tests/test_openapi_generator.py +0 -0
  249. {testql-1.2.1 → testql-1.2.2}/tests/test_pipeline.py +0 -0
  250. {testql-1.2.1 → testql-1.2.2}/tests/test_proto_adapter.py +0 -0
  251. {testql-1.2.1 → testql-1.2.2}/tests/test_proto_compatibility.py +0 -0
  252. {testql-1.2.1 → testql-1.2.2}/tests/test_proto_descriptor_loader.py +0 -0
  253. {testql-1.2.1 → testql-1.2.2}/tests/test_proto_graphql_scenarios_e2e.py +0 -0
  254. {testql-1.2.1 → testql-1.2.2}/tests/test_proto_message_validator.py +0 -0
  255. {testql-1.2.1 → testql-1.2.2}/tests/test_report_generator.py +0 -0
  256. {testql-1.2.1 → testql-1.2.2}/tests/test_reporters.py +0 -0
  257. {testql-1.2.1 → testql-1.2.2}/tests/test_results.py +0 -0
  258. {testql-1.2.1 → testql-1.2.2}/tests/test_run_ir_cli.py +0 -0
  259. {testql-1.2.1 → testql-1.2.2}/tests/test_runner.py +0 -0
  260. {testql-1.2.1 → testql-1.2.2}/tests/test_shell_execution.py +0 -0
  261. {testql-1.2.1 → testql-1.2.2}/tests/test_sources.py +0 -0
  262. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_adapter.py +0 -0
  263. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_ddl_parser.py +0 -0
  264. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_dialect_resolver.py +0 -0
  265. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_fixtures.py +0 -0
  266. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_query_parser.py +0 -0
  267. {testql-1.2.1 → testql-1.2.2}/tests/test_sql_scenarios_e2e.py +0 -0
  268. {testql-1.2.1 → testql-1.2.2}/tests/test_suite_cmd_helpers.py +0 -0
  269. {testql-1.2.1 → testql-1.2.2}/tests/test_suite_execution.py +0 -0
  270. {testql-1.2.1 → testql-1.2.2}/tests/test_suite_listing.py +0 -0
  271. {testql-1.2.1 → testql-1.2.2}/tests/test_sumd_parser.py +0 -0
  272. {testql-1.2.1 → testql-1.2.2}/tests/test_targets.py +0 -0
  273. {testql-1.2.1 → testql-1.2.2}/tests/test_test_generator.py +0 -0
  274. {testql-1.2.1 → testql-1.2.2}/tests/test_testtoon_adapter.py +0 -0
  275. {testql-1.2.1 → testql-1.2.2}/tests/test_toon_parser.py +0 -0
  276. {testql-1.2.1 → testql-1.2.2}/tests/test_topology.py +0 -0
  277. {testql-1.2.1 → testql-1.2.2}/tests/test_unit_execution.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testql
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: TestQL — Multi-DSL Test Platform: TestTOON / NL / SQL / Proto / GraphQL adapters with Unified IR, generator engine, and meta-testing
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -40,11 +40,11 @@ Dynamic: license-file
40
40
 
41
41
  ## AI Cost Tracking
42
42
 
43
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
44
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.45-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.1h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
43
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
44
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.60-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.9h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
45
45
 
46
- - 🤖 **LLM usage:** $6.4500 (43 commits)
47
- - 👤 **Human dev:** ~$2712 (27.1h @ $100/h, 30min dedup)
46
+ - 🤖 **LLM usage:** $6.6000 (44 commits)
47
+ - 👤 **Human dev:** ~$2786 (27.9h @ $100/h, 30min dedup)
48
48
 
49
49
  Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
50
50
 
@@ -52,7 +52,7 @@ Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrou
52
52
 
53
53
  ## AI Cost Tracking
54
54
 
55
- ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
55
+ ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
56
56
 
57
57
  TestQL is a declarative DSL (Domain Specific Language) for testing GUI, REST API, and hardware encoder interfaces. It provides a simple, readable syntax for writing automated tests without programming overhead.
58
58
 
@@ -107,6 +107,56 @@ testql scenarios/tests/test-api.testql.toon.yaml --output json
107
107
  testql scenarios/tests/test-api.testql.toon.yaml --verbose
108
108
  ```
109
109
 
110
+
111
+ ## Artifact Discovery, Topology, and Web Inspection
112
+
113
+ TestQL can now inspect codebases, manifests, and opt-in live URLs, then write structured topology and result artifacts for humans, CI, and LLM workflows.
114
+
115
+ ```bash
116
+ # Discover local artifact types
117
+ python3 -m testql.cli discover ./testql --format json
118
+
119
+ # Build a topology graph from discovered artifacts
120
+ python3 -m testql.cli topology ./testql --format toon
121
+
122
+ # Inspect a live web page and write all data/metadata to .testql
123
+ python3 -m testql.cli inspect https://tom.sapletta.com/ \
124
+ --scan-network \
125
+ --out-dir .testql
126
+ ```
127
+
128
+ The `.testql/` artifact bundle contains:
129
+
130
+ ```text
131
+ metadata.json
132
+ topology.{json,yaml,toon.yaml}
133
+ result.{json,yaml,toon.yaml}
134
+ refactor-plan.{json,yaml,toon.yaml}
135
+ inspection.{json,yaml,toon.yaml}
136
+ summary.md
137
+ ```
138
+
139
+ Live URL inspection currently extracts:
140
+
141
+ - **HTTP metadata**: status code, final URL, content type.
142
+ - **Page schema**: title, links, assets, forms.
143
+ - **Topology graph**: page, link, asset, form, interface, evidence nodes.
144
+ - **Structured results**: web checks for status, title, links, assets, forms.
145
+ - **Reports**: TOON/YAML/JSON plus NLP summary.
146
+
147
+ Example:
148
+
149
+ ```bash
150
+ examples/web-inspection-dot-testql/run.sh https://tom.sapletta.com/
151
+ ```
152
+
153
+ Current limitations:
154
+
155
+ - Browser execution is not yet Playwright-backed.
156
+ - JavaScript-rendered DOM is not evaluated yet.
157
+ - Links/assets are extracted but not individually fetched and validated yet.
158
+ - Console errors, screenshots, performance, accessibility, REST/GraphQL/WebSocket network logs, and auth flows are planned next.
159
+
110
160
  ## API Endpoint Detection
111
161
 
112
162
  TestQL includes advanced endpoint detection for multiple frameworks:
@@ -3,11 +3,11 @@
3
3
 
4
4
  ## AI Cost Tracking
5
5
 
6
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
7
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.45-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.1h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
6
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
7
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.60-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.9h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
8
8
 
9
- - 🤖 **LLM usage:** $6.4500 (43 commits)
10
- - 👤 **Human dev:** ~$2712 (27.1h @ $100/h, 30min dedup)
9
+ - 🤖 **LLM usage:** $6.6000 (44 commits)
10
+ - 👤 **Human dev:** ~$2786 (27.9h @ $100/h, 30min dedup)
11
11
 
12
12
  Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
13
13
 
@@ -15,7 +15,7 @@ Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrou
15
15
 
16
16
  ## AI Cost Tracking
17
17
 
18
- ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
18
+ ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
19
19
 
20
20
  TestQL is a declarative DSL (Domain Specific Language) for testing GUI, REST API, and hardware encoder interfaces. It provides a simple, readable syntax for writing automated tests without programming overhead.
21
21
 
@@ -70,6 +70,56 @@ testql scenarios/tests/test-api.testql.toon.yaml --output json
70
70
  testql scenarios/tests/test-api.testql.toon.yaml --verbose
71
71
  ```
72
72
 
73
+
74
+ ## Artifact Discovery, Topology, and Web Inspection
75
+
76
+ TestQL can now inspect codebases, manifests, and opt-in live URLs, then write structured topology and result artifacts for humans, CI, and LLM workflows.
77
+
78
+ ```bash
79
+ # Discover local artifact types
80
+ python3 -m testql.cli discover ./testql --format json
81
+
82
+ # Build a topology graph from discovered artifacts
83
+ python3 -m testql.cli topology ./testql --format toon
84
+
85
+ # Inspect a live web page and write all data/metadata to .testql
86
+ python3 -m testql.cli inspect https://tom.sapletta.com/ \
87
+ --scan-network \
88
+ --out-dir .testql
89
+ ```
90
+
91
+ The `.testql/` artifact bundle contains:
92
+
93
+ ```text
94
+ metadata.json
95
+ topology.{json,yaml,toon.yaml}
96
+ result.{json,yaml,toon.yaml}
97
+ refactor-plan.{json,yaml,toon.yaml}
98
+ inspection.{json,yaml,toon.yaml}
99
+ summary.md
100
+ ```
101
+
102
+ Live URL inspection currently extracts:
103
+
104
+ - **HTTP metadata**: status code, final URL, content type.
105
+ - **Page schema**: title, links, assets, forms.
106
+ - **Topology graph**: page, link, asset, form, interface, evidence nodes.
107
+ - **Structured results**: web checks for status, title, links, assets, forms.
108
+ - **Reports**: TOON/YAML/JSON plus NLP summary.
109
+
110
+ Example:
111
+
112
+ ```bash
113
+ examples/web-inspection-dot-testql/run.sh https://tom.sapletta.com/
114
+ ```
115
+
116
+ Current limitations:
117
+
118
+ - Browser execution is not yet Playwright-backed.
119
+ - JavaScript-rendered DOM is not evaluated yet.
120
+ - Links/assets are extracted but not individually fetched and validated yet.
121
+ - Console errors, screenshots, performance, accessibility, REST/GraphQL/WebSocket network logs, and auth flows are planned next.
122
+
73
123
  ## API Endpoint Detection
74
124
 
75
125
  TestQL includes advanced endpoint detection for multiple frameworks:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "testql"
7
- version = "1.2.1"
7
+ version = "1.2.2"
8
8
  description = "TestQL — Multi-DSL Test Platform: TestTOON / NL / SQL / Proto / GraphQL adapters with Unified IR, generator engine, and meta-testing"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -6,4 +6,4 @@ external artifacts into IR; meta-testing (`testql.meta`) analyses the
6
6
  generated plans for coverage, confidence and mutation resilience.
7
7
  """
8
8
 
9
- __version__ = "1.2.1"
9
+ __version__ = "1.2.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testql
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: TestQL — Multi-DSL Test Platform: TestTOON / NL / SQL / Proto / GraphQL adapters with Unified IR, generator engine, and meta-testing
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -40,11 +40,11 @@ Dynamic: license-file
40
40
 
41
41
  ## AI Cost Tracking
42
42
 
43
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
44
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.45-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.1h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
43
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
44
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$6.60-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.9h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
45
45
 
46
- - 🤖 **LLM usage:** $6.4500 (43 commits)
47
- - 👤 **Human dev:** ~$2712 (27.1h @ $100/h, 30min dedup)
46
+ - 🤖 **LLM usage:** $6.6000 (44 commits)
47
+ - 👤 **Human dev:** ~$2786 (27.9h @ $100/h, 30min dedup)
48
48
 
49
49
  Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
50
50
 
@@ -52,7 +52,7 @@ Generated on 2026-04-25 using [openrouter/qwen/qwen3-coder-next](https://openrou
52
52
 
53
53
  ## AI Cost Tracking
54
54
 
55
- ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.1-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
55
+ ![PyPI](https://img.shields.io/badge/pypi-testql-blue) ![Version](https://img.shields.io/badge/version-1.2.2-blue) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
56
56
 
57
57
  TestQL is a declarative DSL (Domain Specific Language) for testing GUI, REST API, and hardware encoder interfaces. It provides a simple, readable syntax for writing automated tests without programming overhead.
58
58
 
@@ -107,6 +107,56 @@ testql scenarios/tests/test-api.testql.toon.yaml --output json
107
107
  testql scenarios/tests/test-api.testql.toon.yaml --verbose
108
108
  ```
109
109
 
110
+
111
+ ## Artifact Discovery, Topology, and Web Inspection
112
+
113
+ TestQL can now inspect codebases, manifests, and opt-in live URLs, then write structured topology and result artifacts for humans, CI, and LLM workflows.
114
+
115
+ ```bash
116
+ # Discover local artifact types
117
+ python3 -m testql.cli discover ./testql --format json
118
+
119
+ # Build a topology graph from discovered artifacts
120
+ python3 -m testql.cli topology ./testql --format toon
121
+
122
+ # Inspect a live web page and write all data/metadata to .testql
123
+ python3 -m testql.cli inspect https://tom.sapletta.com/ \
124
+ --scan-network \
125
+ --out-dir .testql
126
+ ```
127
+
128
+ The `.testql/` artifact bundle contains:
129
+
130
+ ```text
131
+ metadata.json
132
+ topology.{json,yaml,toon.yaml}
133
+ result.{json,yaml,toon.yaml}
134
+ refactor-plan.{json,yaml,toon.yaml}
135
+ inspection.{json,yaml,toon.yaml}
136
+ summary.md
137
+ ```
138
+
139
+ Live URL inspection currently extracts:
140
+
141
+ - **HTTP metadata**: status code, final URL, content type.
142
+ - **Page schema**: title, links, assets, forms.
143
+ - **Topology graph**: page, link, asset, form, interface, evidence nodes.
144
+ - **Structured results**: web checks for status, title, links, assets, forms.
145
+ - **Reports**: TOON/YAML/JSON plus NLP summary.
146
+
147
+ Example:
148
+
149
+ ```bash
150
+ examples/web-inspection-dot-testql/run.sh https://tom.sapletta.com/
151
+ ```
152
+
153
+ Current limitations:
154
+
155
+ - Browser execution is not yet Playwright-backed.
156
+ - JavaScript-rendered DOM is not evaluated yet.
157
+ - Links/assets are extracted but not individually fetched and validated yet.
158
+ - Console errors, screenshots, performance, accessibility, REST/GraphQL/WebSocket network logs, and auth flows are planned next.
159
+
110
160
  ## API Endpoint Detection
111
161
 
112
162
  TestQL includes advanced endpoint detection for multiple frameworks:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes