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.
- {testql-1.2.1 → testql-1.2.2}/PKG-INFO +56 -6
- {testql-1.2.1 → testql-1.2.2}/README.md +55 -5
- {testql-1.2.1 → testql-1.2.2}/pyproject.toml +1 -1
- {testql-1.2.1 → testql-1.2.2}/testql/__init__.py +1 -1
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/PKG-INFO +56 -6
- {testql-1.2.1 → testql-1.2.2}/LICENSE +0 -0
- {testql-1.2.1 → testql-1.2.2}/setup.cfg +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/__main__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/_base_fallback.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/graphql_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/query_executor.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/schema_introspection.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/graphql/subscription_runner.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/entity_extractor.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/grammar.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/intent_recognizer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/lexicon/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/llm_fallback.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/nl/nl_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/compatibility.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/descriptor_loader.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/message_validator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/proto/proto_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/registry.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/ddl_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/dialect_resolver.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/fixtures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/query_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/sql/sql_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/adapters/testtoon_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/discover_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/context.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/formatters/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/formatters/text.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/doql.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo/parsers/toon.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/echo_helpers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/encoder_routes.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/endpoints_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/generate_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/generate_ir_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/inspect_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/misc_cmds.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/run_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/run_ir_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/self_test_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/collection.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/execution.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/listing.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite/reports.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/suite_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/content.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/templates/templates.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/commands/topology_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/config_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/django_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/express_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/fastapi_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/flask_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/graphql_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/models.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/openapi_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/test_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/unified.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/detectors/websocket_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/manifest.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/api_openapi.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/container_compose.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/container_dockerfile.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/package_node.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/filesystem/package_python.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/network/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/probes/network/http_endpoint.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/registry.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/discovery/source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/doql_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/echo_schemas.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/endpoint_detector.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/analyzers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/convenience.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/generators.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/coverage_optimizer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/llm/edge_case_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/multi.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/pipeline.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/graphql_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/nl_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/openapi_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/proto_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/sql_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/sources/ui_source.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/nl_target.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/pytest_target.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/targets/testtoon_target.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/generators/test_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_api_runner.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_assertions.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_converter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_encoder.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_flow.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_gui.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_shell.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_testtoon_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_unit.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/_websockets.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/core.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/dispatcher.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/api.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/assertions.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/encoder.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/flow.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/include.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/navigate.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/record.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/select.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/unknown.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/handlers/wait.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/models.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/parsers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/converter/renderer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/dispatcher.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter/interpreter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/interpreter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/assertions.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/captures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/fixtures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/metadata.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/plan.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir/steps.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/assertion_eval.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/context.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/engine.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/api.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/encoder.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/graphql.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/gui.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/nl.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/proto.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/shell.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/sql.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/executors/unit.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/ir_runner/interpolation.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/meta/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/meta/confidence_scorer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/meta/coverage_analyzer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/meta/mutator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/meta/self_test.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/openapi_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/report_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/reporters/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/reporters/console.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/reporters/json_reporter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/reporters/junit.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/results/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/results/analyzer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/results/artifacts.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/results/models.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/results/serializers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/runner.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/runners/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/sumd_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/sumd_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/toon_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/topology/__init__.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/topology/builder.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/topology/models.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql/topology/serializers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/SOURCES.txt +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/dependency_links.txt +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/entry_points.txt +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/requires.txt +0 -0
- {testql-1.2.1 → testql-1.2.2}/testql.egg-info/top_level.txt +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_adapters_base.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_api_handler.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_converter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_converter_handlers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_detectors.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_discovery.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_dispatcher.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_doql_parser_sumd_gen.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_echo.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_echo_doql_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_echo_schemas_helpers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_encoder_routes.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_generate_cmd.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_generate_ir_cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_generators.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_graphql_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_gui_execution.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_interpreter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_captures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_assertion_eval.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_captures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_engine.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_executors.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_ir_runner_interpolation.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_meta_confidence.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_meta_coverage.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_meta_mutator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_meta_self_test.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_misc_cmds.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_network_discovery.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_nl_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_nl_entity_extractor.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_nl_grammar.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_nl_intent_recognizer.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_nl_scenarios_e2e.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_openapi_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_pipeline.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_proto_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_proto_compatibility.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_proto_descriptor_loader.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_proto_graphql_scenarios_e2e.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_proto_message_validator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_report_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_reporters.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_results.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_run_ir_cli.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_runner.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_shell_execution.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sources.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_ddl_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_dialect_resolver.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_fixtures.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_query_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sql_scenarios_e2e.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_suite_cmd_helpers.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_suite_execution.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_suite_listing.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_sumd_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_targets.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_test_generator.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_testtoon_adapter.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_toon_parser.py +0 -0
- {testql-1.2.1 → testql-1.2.2}/tests/test_topology.py +0 -0
- {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.
|
|
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
|
-
    
|
|
44
|
+
  
|
|
45
45
|
|
|
46
|
-
- 🤖 **LLM usage:** $6.
|
|
47
|
-
- 👤 **Human dev:** ~$
|
|
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
|
-
    
|
|
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
|
-
    
|
|
7
|
+
  
|
|
8
8
|
|
|
9
|
-
- 🤖 **LLM usage:** $6.
|
|
10
|
-
- 👤 **Human dev:** ~$
|
|
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
|
-
    
|
|
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.
|
|
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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: testql
|
|
3
|
-
Version: 1.2.
|
|
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
|
-
    
|
|
44
|
+
  
|
|
45
45
|
|
|
46
|
-
- 🤖 **LLM usage:** $6.
|
|
47
|
-
- 👤 **Human dev:** ~$
|
|
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
|
-
    
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|