Catch API bugs before your users do
This report presents the forensic synthetic code analysis of schemathesis/schemathesis, a Python project with 3,510 GitHub stars. SynthScan v2.0 examined 244,938 lines of code across 1230 source files, recording 4196 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 16.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4196 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/corpus/metrics.py | 21 | def collect_dependency_metrics(raw_schema: JsonSchemaObject) -> DependencyMetrics: | CODE |
| LOW | tools/corpus/io.py | 207 | def iter_corpus_entries_from_refs( | CODE |
| LOW | tools/corpus/conformance.py | 27 | def evaluate_body_conformance( | CODE |
| LOW | test/conftest.py | 76 | def _isolate_schemathesis_state(tmp_path, monkeypatch): | CODE |
| LOW | test/conftest.py | 249 | def schema_with_recursive_references(): | CODE |
| LOW | test/utils.py | 36 | def has_hypothesis_failure_header(text: str, test_name: str = "") -> bool: | CODE |
| LOW | test/utils.py | 284 | def assert_after_execution_status(self, status: Status) -> None: | CODE |
| LOW | test/filters/test_matching.py | 249 | def test_forbid_value_and_auth(): | CODE |
| LOW | test/filters/test_cli.py | 65 | def test_filters_with_cli_options(ctx, cli, args, expected, cassette_path): | CODE |
| LOW | test/filters/test_cli.py | 149 | def test_cli_and_config_intersection(ctx, cli, cli_args, config, expected, cassette_path): | CODE |
| LOW | test/reporting/test_crashes.py | 85 | def test_build_crashes_skips_scenario_with_missing_interaction(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 97 | def test_build_crashes_captures_request_body_link(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 136 | def test_build_crashes_includes_related_sibling_case(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 168 | def test_remove_by_operation_matches_exact_operation(tmp_path, case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 183 | def test_remove_by_operation_skips_malformed_file(tmp_path): | CODE |
| LOW | test/reporting/test_crashes.py | 196 | def test_remove_by_operation_skips_non_object_file(tmp_path): | CODE |
| LOW | test/reporting/test_crashes.py | 209 | def test_remove_files_ignores_already_dropped_file(tmp_path): | CODE |
| LOW | test/reporting/test_crashes.py | 221 | def test_rerun_refreshes_stored_case_id(tmp_path): | CODE |
| LOW | test/reporting/test_crashes.py | 235 | def test_same_run_keeps_first_case_id(tmp_path): | CODE |
| LOW | test/reporting/test_crashes.py | 246 | def test_build_crashes_skips_timing_only_failure(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 258 | def test_build_crashes_tolerates_unknown_response_charset(case_factory): | CODE |
| LOW⚡ | test/reporting/test_crashes.py | 269 | def test_crash_step_roundtrips_dict_that_looks_like_bytes_sentinel(): | CODE |
| LOW⚡ | test/reporting/test_crashes.py | 279 | def test_crash_step_roundtrips_real_bytes_body(): | CODE |
| LOW⚡ | test/reporting/test_crashes.py | 287 | def test_crash_step_roundtrips_bytes_in_param_containers(): | CODE |
| LOW | test/reporting/test_crashes.py | 298 | def test_request_headers_are_sanitized(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 327 | def test_list_root_request_body_is_sanitized(case_factory): | CODE |
| LOW | test/reporting/test_crashes.py | 349 | def test_load_manifest_rejects_unknown_format_version(tmp_path): | CODE |
| LOW | test/reporting/test_writers.py | 13 | def test_ndjson_writer_context_manager(): | CODE |
| LOW | test/reporting/test_writers.py | 22 | def test_ndjson_writer_context_manager_closes_file(): | CODE |
| LOW | test/reporting/test_writers.py | 33 | def test_junitxml_writer_context_manager(): | CODE |
| LOW | test/reporting/test_writers.py | 50 | def test_writer_context_manager_no_error_without_open(writer_cls, kwargs): | CODE |
| LOW | test/code_samples/test_curl.py | 113 | def test_as_curl_command_sanitizes_string_query_params(curl): | CODE |
| LOW | test/code_samples/test_curl.py | 137 | def test_cli_output_includes_insecure(ctx, cli, curl): | CODE |
| LOW | test/code_samples/test_curl.py | 147 | def test_pytest_subtests_output(ctx, testdir): | CODE |
| LOW | test/code_samples/test_curl.py | 168 | def test_curl_command_validity(curl, loose_schema): | STRING |
| LOW | test/code_samples/test_curl.py | 228 | def test_shell_aware_escaping(curl, monkeypatch, shell_type, case_kwargs, expected_command): | STRING |
| LOW | test/code_samples/test_curl.py | 239 | def test_multipart_with_array_of_bytes_body(curl): | STRING |
| LOW⚡ | test/tooling/corpus/test_metrics.py | 6 | def test_add_dependency_metrics_empty_returns_zero(): | CODE |
| LOW⚡ | test/tooling/corpus/test_metrics.py | 10 | def test_add_dependency_metrics_sums_field_by_field(): | CODE |
| LOW⚡ | test/tooling/corpus/test_metrics.py | 19 | def test_collect_dependency_metrics_counts_resources_inputs_outputs(ctx): | CODE |
| LOW | test/tooling/corpus/test_locator.py | 10 | def test_parse_corpus_path_splits_corpus_and_member(): | CODE |
| LOW | test/tooling/corpus/test_locator.py | 14 | def test_parse_corpus_path_keeps_nested_member_path_intact(): | CODE |
| LOW⚡ | test/tooling/corpus/test_locator.py | 25 | def test_parse_corpus_path_rejects_invalid(spec): | CODE |
| LOW⚡ | test/tooling/corpus/test_locator.py | 30 | def test_load_schema_dict_from_corpus(): | CODE |
| LOW⚡ | test/tooling/corpus/test_locator.py | 38 | def test_load_schema_dict_from_json_file(tmp_path): | CODE |
| LOW⚡ | test/tooling/corpus/test_locator.py | 47 | def test_load_schema_dict_from_yaml_file(tmp_path): | CODE |
| LOW | test/tooling/corpus/test_io.py | 15 | def test_iter_corpus_file_reads_json_members(tmp_path, make_tarball): | CODE |
| LOW | test/tooling/corpus/test_io.py | 21 | def test_iter_all_corpus_files_reads_every_tarball(tmp_path, make_tarball): | CODE |
| LOW | test/tooling/corpus/test_io.py | 39 | def test_get_schema_version_detects_supported_versions(raw_schema, expected): | CODE |
| LOW | test/tooling/corpus/test_io.py | 43 | def test_iter_corpus_streaming_filters_by_name_before_decoding(tmp_path, make_tarball): | CODE |
| LOW | test/tooling/corpus/test_io.py | 56 | def test_iter_corpus_streaming_respects_limit(tmp_path, make_tarball): | CODE |
| LOW | test/tooling/corpus/test_io.py | 66 | def test_iter_corpus_entries_from_refs_reads_requested_members(tmp_path, make_tarball): | CODE |
| LOW | test/tooling/corpus/test_io.py | 82 | def test_corpus_entry_api_strips_json_suffix(): | CODE |
| LOW | test/tooling/corpus/test_conformance.py | 32 | def test_evaluate_body_conformance(body, schema, is_negative_body, expected): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 42 | def test_analyze_per_operation_keys(analyzer_ndjson): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 49 | def test_analyze_per_operation_buckets_match_run(analyzer_ndjson): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 56 | def test_analyze_wasted_by_location_tracks_positive_drift(analyzer_ndjson): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 64 | def test_analyze_negative_rejected_present(analyzer_ndjson): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 71 | def test_analyze_server_error_recorded(analyzer_ndjson): | CODE |
| LOW⚡ | test/tooling/analyze/test_aggregation.py | 77 | def test_analyze_run_duration_positive(analyzer_ndjson): | CODE |
| 2922 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | changelog.py | 3 | CODE | |
| LOW | tools/corpus/metrics.py | 1 | CODE | |
| LOW | tools/corpus/io.py | 1 | CODE | |
| LOW | tools/corpus/locator.py | 1 | CODE | |
| LOW | tools/corpus/conformance.py | 1 | CODE | |
| LOW | test/conftest.py | 1 | CODE | |
| LOW | test/conftest.py | 22 | CODE | |
| LOW | test/utils.py | 1 | CODE | |
| LOW | test/reporting/test_crashes.py | 1 | CODE | |
| LOW | test/reporting/test_writers.py | 1 | CODE | |
| LOW | test/code_samples/conftest.py | 1 | CODE | |
| LOW | test/tooling/corpus/conftest.py | 1 | CODE | |
| LOW | test/tooling/corpus/test_metrics.py | 1 | CODE | |
| LOW | test/tooling/corpus/test_locator.py | 1 | CODE | |
| LOW | test/tooling/corpus/test_io.py | 1 | CODE | |
| LOW | test/tooling/corpus/test_conformance.py | 1 | CODE | |
| LOW | test/tooling/analyze/conftest.py | 1 | CODE | |
| LOW | test/transport/conftest.py | 1 | CODE | |
| LOW | test/core/test_text.py | 1 | CODE | |
| LOW | test/core/test_rate_limit_auto.py | 1 | CODE | |
| LOW | test/core/cache/test_writer.py | 1 | CODE | |
| LOW | test/core/cache/test_io.py | 1 | CODE | |
| LOW | test/core/jsonschema/test_resolver_adapter.py | 1 | CODE | |
| LOW | test/core/error_feedback/test_field_inference.py | 1 | CODE | |
| LOW | test/core/error_feedback/test_store.py | 1 | CODE | |
| LOW | test/core/error_feedback/test_collector.py | 1 | CODE | |
| LOW | test/python/test_server_exception.py | 1 | CODE | |
| LOW | test/auth/test_dynamic_auth.py | 1 | CODE | |
| LOW | test/auth/test_wfc.py | 1 | CODE | |
| LOW | test/auth/test_provider.py | 1 | CODE | |
| LOW | test/specs/openapi/test_resources.py | 1 | CODE | |
| LOW | test/specs/openapi/test_error_feedback.py | 1 | CODE | |
| LOW | test/specs/openapi/test_semantic_pool.py | 1 | CODE | |
| LOW | test/specs/openapi/test_body_overrides.py | 1 | CODE | |
| LOW | test/specs/openapi/test_swagger_v2.py | 1 | CODE | |
| LOW | test/specs/openapi/test_dictionary_generation.py | 1 | CODE | |
| LOW | test/specs/openapi/test_examples.py | 1 | CODE | |
| LOW | test/specs/openapi/test_auth_jwt.py | 1 | CODE | |
| LOW | …specs/openapi/negative/test_binary_format_mutations.py | 1 | CODE | |
| LOW | test/specs/openapi/negative/test_deep_distribution.py | 1 | CODE | |
| LOW | test/specs/openapi/stateful/conftest.py | 1 | CODE | |
| LOW | test/specs/openapi/stateful/test_pool_overlay.py | 1 | CODE | |
| LOW | test/specs/openapi/stateful/test_health_recovery.py | 1 | CODE | |
| LOW | …/specs/openapi/stateful/inference/test_request_pool.py | 1 | CODE | |
| LOW | …/specs/openapi/stateful/inference/test_dependencies.py | 1 | CODE | |
| LOW | test/specs/openapi/stateful/inference/test_models.py | 1 | CODE | |
| LOW | test/specs/openapi/adapter/test_servers.py | 1 | CODE | |
| LOW | test/specs/graphql/test_inference.py | 1 | CODE | |
| LOW | test/specs/graphql/test_resource_pool.py | 1 | CODE | |
| LOW | test/specs/graphql/test_stateful_health_recovery.py | 1 | CODE | |
| LOW | test/specs/graphql/test_pool_integration.py | 1 | CODE | |
| LOW | test/specs/graphql/test_stateful.py | 1 | CODE | |
| LOW | test/specs/graphql/test_helpers.py | 1 | CODE | |
| LOW | test/specs/graphql/test_ordering.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_matcher.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_bundles.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_handles.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_state_machine.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_discovery.py | 1 | CODE | |
| LOW | test/specs/graphql/stateful/test_extract.py | 1 | CODE | |
| 591 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/corpus/io.py | 95 | CODE | |
| LOW | tools/corpus/io.py | 181 | CODE | |
| LOW | tools/corpus/io.py | 268 | CODE | |
| LOW | test/config/test_doc_examples.py | 114 | CODE | |
| LOW | test/specs/openapi/test_swagger_v2.py | 112 | CODE | |
| LOW | test/specs/openapi/test_hypothesis.py | 280 | CODE | |
| LOW | test/specs/openapi/test_media_types.py | 218 | CODE | |
| LOW | test/specs/openapi/test_media_types.py | 253 | CODE | |
| LOW | …/specs/openapi/stateful/inference/test_dependencies.py | 5888 | CODE | |
| LOW | …/specs/openapi/stateful/inference/test_dependencies.py | 5947 | CODE | |
| LOW | …st/specs/openapi/parameters/test_multipart_encoding.py | 474 | CODE | |
| LOW | …st/specs/openapi/parameters/test_multipart_encoding.py | 493 | CODE | |
| LOW | test/cli/test_ndjson.py | 226 | CODE | |
| LOW | test/cli/test_ndjson.py | 426 | CODE | |
| LOW | test/cli/test_error_feedback.py | 271 | CODE | |
| LOW | test/cli/test_error_feedback.py | 282 | CODE | |
| LOW | test/cli/test_cassettes.py | 104 | CODE | |
| LOW | test/cli/test_cassettes.py | 217 | CODE | |
| LOW | test/engine/test_operation_ordering.py | 287 | CODE | |
| LOW | scripts/profile.py | 251 | CODE | |
| LOW | scripts/analyze/metrics.py | 611 | CODE | |
| LOW | scripts/analyze/metrics.py | 678 | CODE | |
| LOW | scripts/analyze/metrics.py | 751 | CODE | |
| LOW | scripts/analyze/metrics.py | 876 | CODE | |
| LOW | scripts/analyze/metrics.py | 929 | CODE | |
| LOW | benches/bundler.py | 206 | CODE | |
| LOW | test-corpus/test_schemastore.py | 229 | CODE | |
| LOW | test-corpus/test_schemastore.py | 276 | CODE | |
| LOW | test-corpus/test_schemastore.py | 232 | CODE | |
| LOW | test-corpus/test_schemastore.py | 256 | CODE | |
| LOW | src/schemathesis/hooks.py | 379 | CODE | |
| LOW | src/schemathesis/reporting/vcr.py | 225 | CODE | |
| LOW | src/schemathesis/reporting/vcr.py | 48 | CODE | |
| LOW | src/schemathesis/reporting/crashes/__init__.py | 271 | CODE | |
| LOW | src/schemathesis/transport/__init__.py | 87 | CODE | |
| LOW | src/schemathesis/transport/requests.py | 323 | CODE | |
| LOW | src/schemathesis/transport/prepare.py | 44 | CODE | |
| LOW | src/schemathesis/transport/prepare.py | 149 | CODE | |
| LOW | src/schemathesis/transport/serialization.py | 17 | CODE | |
| LOW | src/schemathesis/core/transforms.py | 108 | CODE | |
| LOW | src/schemathesis/core/transport.py | 67 | CODE | |
| LOW | src/schemathesis/core/shell.py | 165 | CODE | |
| LOW | src/schemathesis/core/shell.py | 193 | CODE | |
| LOW | src/schemathesis/core/loaders.py | 85 | CODE | |
| LOW | src/schemathesis/core/deserialization.py | 265 | CODE | |
| LOW | src/schemathesis/core/errors.py | 613 | CODE | |
| LOW | src/schemathesis/core/errors.py | 273 | CODE | |
| LOW | src/schemathesis/core/output/sanitization.py | 20 | CODE | |
| LOW | src/schemathesis/core/jsonschema/bundler.py | 200 | CODE | |
| LOW | src/schemathesis/core/jsonschema/bundler.py | 223 | CODE | |
| LOW | src/schemathesis/core/jsonschema/bundler.py | 63 | CODE | |
| LOW | src/schemathesis/core/jsonschema/bundler.py | 86 | CODE | |
| LOW | src/schemathesis/core/jsonschema/resolver.py | 186 | CODE | |
| LOW | src/schemathesis/core/jsonschema/resolver.py | 250 | CODE | |
| LOW | src/schemathesis/core/error_feedback/store.py | 148 | CODE | |
| LOW | src/schemathesis/core/error_feedback/store.py | 221 | CODE | |
| LOW | src/schemathesis/core/error_feedback/field_inference.py | 44 | CODE | |
| LOW | src/schemathesis/core/error_feedback/parsers/jackson.py | 92 | CODE | |
| LOW | src/schemathesis/core/error_feedback/parsers/drf.py | 31 | CODE | |
| LOW | …chemathesis/core/error_feedback/parsers/marshmallow.py | 143 | CODE | |
| 168 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/specs/openapi/test_negative.py | 462 | # FastAPI's `Optional[Enum]` query param shape: `anyOf:[{$ref}, {type:null}]` with a sibling enum. | COMMENT |
| HIGH | test/specs/openapi/test_resilience.py | 30 | [{"url": "http://x/{undefined}"}], | CODE |
| HIGH | test/specs/openapi/test_error_feedback.py | 332 | b'rejected value [null]; codes [...]; default message [must not be null]] ",' | CODE |
| HIGH | test/specs/openapi/test_error_feedback.py | 380 | {"detail": "... [Field error in object 'X' on field 'y': default message [must not be null]]"}, | CODE |
| HIGH | test/specs/openapi/test_error_feedback.py | 7171 | b"[Field error in object 'X' on field 'email': rejected value [null]; " | CODE |
| HIGH | test/specs/openapi/test_error_feedback.py | 7172 | b"codes [...]; default message [must not be null]] " | CODE |
| HIGH⚡ | test/specs/openapi/test_error_feedback.py | 103 | """Detect OpenAPI 3.1 / JSON Schema 2020-12 type-union syntax (`type: [..., null]`).""" | STRING |
| HIGH⚡ | test/specs/openapi/test_error_feedback.py | 116 | The validator is auto-selected: schemas using `type: [..., null]` syntax are | STRING |
| HIGH | test/specs/openapi/test_serializing.py | 609 | # Example from OAS 3.2: {"numbers":[1,2],"flag":null} | STRING |
| HIGH⚡ | test/specs/openapi/test_converter.py | 673 | # `type: [string, "null"]` with an `enum` accepts null, matching `nullable: true`. | COMMENT |
| HIGH⚡ | test/specs/graphql/test_resource_pool.py | 213 | [b"not-json", b"{}", b'{"data": null}', b'{"data": "scalar"}'], | STRING |
| HIGH | test/engine/test_checks.py | 408 | b'{"success": null}', | CODE |
| HIGH | test/engine/test_checks.py | 519 | response_factory.requests(content=b'{"direction": ["N", "E", "S", "W", null]}'), True | CODE |
| HIGH | test/apps/catalog/openapi/wfc.py | 28 | # Rich body covers every token-extraction branch: string, coerced number, null, and non-string. | COMMENT |
| HIGH | test/generation/test_hypothesis.py | 161 | # A 3.1 `type: [null, boolean]` body lifts to a multi-type union; values stay null or boolean. | COMMENT |
| HIGH | src/schemathesis/core/error_feedback/parsers/spring.py | 31 | r"|can(?:not|'?t) be (?:blank|empty|null)" | CODE |
| HIGH | src/schemathesis/core/error_feedback/parsers/spring.py | 133 | # `detail`, e.g. `... [Field error in object 'X' on field 'Y': ...; default message [must not be null]]`. | COMMENT |
| HIGH | src/schemathesis/specs/openapi/converter.py | 125 | # A nullable type with an `enum` accepts null, matching `nullable: true`; otherwise a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | test/code_samples/test_curl.py | 74 | case.operation.schema.config.output.sanitization.update(enabled=False) | CODE |
| CRITICAL | test/pytest/test_config_options.py | 132 | schema.config.phases.fuzzing.generation.update(max_examples={max_examples}) | CODE |
| CRITICAL | test/specs/openapi/negative/test_deep_distribution.py | 45 | schema.config.phases.fuzzing.generation.update(max_examples=500) | CODE |
| CRITICAL | test/specs/openapi/negative/test_deep_distribution.py | 75 | schema.config.phases.fuzzing.generation.update(max_examples=500) | CODE |
| CRITICAL | test/specs/openapi/negative/test_deep_distribution.py | 106 | schema.config.phases.fuzzing.generation.update(max_examples=300) | CODE |
| CRITICAL | test/cli/test_negative_metadata.py | 187 | schema.config.phases.fuzzing.generation.update(max_examples=20) | CODE |
| CRITICAL | test/cli/test_negative_metadata.py | 209 | schema.config.phases.fuzzing.generation.update(max_examples=50) | CODE |
| CRITICAL | src/schemathesis/auths.py | 650 | for scheme in schema.config.auth.dynamic.schemes.values(): | CODE |
| CRITICAL | src/schemathesis/specs/openapi/analysis.py | 179 | and self.schema.config.phases.stateful.inference.is_algorithm_enabled( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/corpus/io.py | 116 | print(f"Error parsing {file_path}") # noqa: T201 | CODE |
| LOW | tools/corpus/locator.py | 46 | except Exception: | CODE |
| LOW | test/conftest.py | 53 | except Exception: | CODE |
| LOW | test/conftest.py | 57 | except Exception: | CODE |
| MEDIUM | test/conftest.py | 50 | def _get_current_coverage() -> Any | None: | CODE |
| LOW | test/utils.py | 183 | except Exception: | CODE |
| LOW⚡ | test/specs/openapi/test_resources.py | 106 | except Exception as exc: | CODE |
| LOW | test/cli/test_commands.py | 2070 | except Exception as exc: | STRING |
| LOW | docs/guides/custom-response-deserializers.md | 47 | except Exception as exc: | CODE |
| LOW | scripts/profile.py | 205 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | benches/multi_operation.py | 34 | except Exception: | CODE |
| LOW | benches/multi_operation.py | 50 | except Exception: | CODE |
| LOW | src/schemathesis/hooks.py | 66 | except Exception: | CODE |
| LOW | src/schemathesis/hooks.py | 300 | except Exception as exc: | CODE |
| LOW | src/schemathesis/hooks.py | 393 | except Exception as exc: | CODE |
| MEDIUM | src/schemathesis/hooks.py | 63 | def _reset_on_error() -> Generator: | CODE |
| LOW | src/schemathesis/checks.py | 285 | except Exception as exc: | CODE |
| LOW | src/schemathesis/checks.py | 484 | except Exception as exc: | CODE |
| LOW | src/schemathesis/auths.py | 164 | except Exception as exc: | CODE |
| LOW | src/schemathesis/auths.py | 329 | except Exception as exc: | CODE |
| LOW | src/schemathesis/auths.py | 676 | except Exception: | CODE |
| LOW | src/schemathesis/core/hooks.py | 23 | except Exception as exc: | CODE |
| LOW | src/schemathesis/core/rate_limit.py | 51 | except Exception: | CODE |
| LOW | src/schemathesis/core/jsonschema/__init__.py | 246 | except Exception: | CODE |
| LOW | src/schemathesis/core/error_feedback/pipeline.py | 56 | except Exception: | CODE |
| LOW | src/schemathesis/pytest/xdist.py | 338 | except Exception: | CODE |
| LOW | src/schemathesis/pytest/plugin.py | 303 | except Exception: | CODE |
| LOW | src/schemathesis/pytest/plugin.py | 343 | except Exception: | CODE |
| LOW | src/schemathesis/pytest/plugin.py | 361 | except Exception: | CODE |
| LOW | src/schemathesis/python/_constants/orchestrator.py | 171 | except Exception: | CODE |
| LOW | src/schemathesis/python/_constants/orchestrator.py | 196 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/auth_inference.py | 91 | except Exception: # noqa: BLE001 - probe must not propagate; one bad scheme can't kill the loop. | CODE |
| LOW | src/schemathesis/specs/openapi/checks.py | 413 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/checks.py | 545 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/checks.py | 614 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/checks.py | 888 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/auths.py | 188 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/auths.py | 216 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/operations.py | 238 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/content_keywords.py | 99 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/examples.py | 621 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/validation.py | 117 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/stateful/links.py | 165 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/stateful/links.py | 220 | except Exception as exc: | CODE |
| LOW | src/schemathesis/specs/openapi/stateful/links.py | 233 | except Exception as exc: | CODE |
| LOW | …c/schemathesis/specs/openapi/stateful/_link_chooser.py | 34 | except Exception: | CODE |
| MEDIUM | …c/schemathesis/specs/openapi/stateful/_link_chooser.py | 31 | def in response_def.iter_links(): | CODE |
| LOW | src/schemathesis/specs/openapi/adapter/parameters.py | 318 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/adapter/parameters.py | 347 | except Exception: | CODE |
| LOW | src/schemathesis/specs/openapi/adapter/parameters.py | 791 | except Exception: | CODE |
| LOW | src/schemathesis/wfc/providers.py | 127 | except Exception as exc: | CODE |
| LOW | src/schemathesis/wfc/providers.py | 145 | except Exception as exc: | CODE |
| MEDIUM | src/schemathesis/wfc/providers.py | 86 | def _body_and_headers(self) -> tuple[str | bytes | None, dict[str, str]]: | CODE |
| LOW | src/schemathesis/cli/loaders.py | 72 | except Exception as exc: | CODE |
| LOW | src/schemathesis/cli/loaders.py | 126 | except Exception as second_exc: | CODE |
| LOW | src/schemathesis/cli/executor.py | 159 | except Exception as exc: | CODE |
| LOW | src/schemathesis/cli/commands/replay/__init__.py | 242 | except Exception: | CODE |
| LOW | src/schemathesis/cli/commands/replay/executor.py | 126 | except Exception: | CODE |
| LOW | src/schemathesis/cli/commands/replay/executor.py | 158 | except Exception as exc: | CODE |
| LOW | src/schemathesis/cli/commands/replay/executor.py | 181 | except Exception as exc: | CODE |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | changelog.py | 45 | # Check if the new version already exists. | COMMENT |
| LOW | test/config/test_doc_examples.py | 99 | # Check if current uses additionalProperties (e.g., auth.openapi.<scheme>) | COMMENT |
| LOW | test/cli/test_commands.py | 1033 | # Check if field exists (could be in files or form) | STRING |
| LOW | test/cli/test_checks.py | 1085 | # Check if 'ids' parameter is present in the URL | COMMENT |
| LOW | scripts/is_interesting.sh | 15 | # Check if needle is present in output | COMMENT |
| LOW | src/schemathesis/pytest/lazy.py | 230 | # Check if test function is a method and inject self from request.instance | COMMENT |
| LOW | src/schemathesis/config/_generation.py | 78 | # Check if all parameters match their default values | COMMENT |
| LOW | src/schemathesis/specs/openapi/patterns.py | 544 | # Check if there are still untranslated Unicode property escapes | STRING |
| LOW | src/schemathesis/specs/openapi/warnings.py | 123 | # Check if scheme exists in the schema definition, and suggest a candidate if it does not | COMMENT |
| LOW⚡ | src/schemathesis/specs/openapi/checks.py | 849 | # Check if the case contains only additional properties in query, headers, or cookies. | COMMENT |
| LOW | src/schemathesis/specs/openapi/checks.py | 305 | # Check if there are other negative components besides body | COMMENT |
| LOW | src/schemathesis/specs/openapi/checks.py | 1060 | # Check if all parameters come from links | COMMENT |
| LOW | src/schemathesis/specs/openapi/checks.py | 1124 | # Check if invalid auth will give an error | COMMENT |
| LOW | src/schemathesis/specs/openapi/stateful/links.py | 154 | # Check if parameter exists in source operation | COMMENT |
| LOW | src/schemathesis/specs/openapi/stateful/inference.py | 185 | # Check if it's an absolute URL | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/models.py | 489 | # Check if this field is a FK field | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/models.py | 545 | # Check if next part is an array index | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/naming.py | 544 | # Check if resource name ends with OR starts with the prefix | COMMENT |
| LOW | …thesis/specs/openapi/stateful/dependencies/__init__.py | 172 | # Check if duplicate / subsets exists | COMMENT |
| LOW | …thesis/specs/openapi/stateful/dependencies/__init__.py | 269 | # Check if all inferred fields exist in existing with same values | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/inputs.py | 249 | # Check if candidate ends with OR starts with the inferred resource name | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/inputs.py | 255 | # Check if parameter can be matched to a field | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/inputs.py | 457 | # Check if nested field is a FK | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/inputs.py | 492 | # Check if this item property is a FK | COMMENT |
| LOW | …athesis/specs/openapi/stateful/dependencies/schemas.py | 392 | # Check if array field name matches common patterns | COMMENT |
| LOW | …athesis/specs/openapi/stateful/dependencies/schemas.py | 414 | # Check if field name matches resource-specific pattern | COMMENT |
| LOW | …athesis/specs/openapi/stateful/dependencies/schemas.py | 484 | # Check if any other property looks like pagination metadata | COMMENT |
| LOW | …hesis/specs/openapi/stateful/dependencies/resources.py | 173 | # Check if it's a known wrapper field name | COMMENT |
| LOW | …hesis/specs/openapi/stateful/dependencies/resources.py | 302 | # Check if this branch defines the target property | COMMENT |
| LOW | …hesis/specs/openapi/stateful/dependencies/resources.py | 407 | # Check if it's an array | COMMENT |
| LOW | …mathesis/specs/openapi/stateful/dependencies/layers.py | 115 | # Check if all operations were processed (no cycles) | COMMENT |
| LOW | src/schemathesis/specs/openapi/adapter/security.py | 129 | # Check if a security parameter was intentionally removed during negative testing | COMMENT |
| LOW | src/schemathesis/specs/openapi/adapter/security.py | 146 | # Check if all schemes in this requirement can be satisfied (AND semantics) | COMMENT |
| LOW | src/schemathesis/specs/graphql/validation.py | 41 | # Check if this is a client error (query validation failed) | COMMENT |
| LOW | src/schemathesis/resources/repository.py | 245 | # Check if we need to evict an old context | COMMENT |
| LOW | src/schemathesis/cli/commands/run/warnings.py | 245 | # Check if this warning should cause test failure | COMMENT |
| LOW | src/schemathesis/engine/core.py | 91 | # Check if feature is supported by the schema | COMMENT |
| LOW | src/schemathesis/engine/statistic.py | 100 | # Check if this is a new unique failure | COMMENT |
| LOW⚡ | src/schemathesis/generation/hypothesis/builder.py | 161 | # Check if user provided custom strategies via @schema.given() | COMMENT |
| LOW⚡ | src/schemathesis/generation/hypothesis/builder.py | 165 | # Check if there are actually examples to add | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/schemathesis/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/schemathesis/auths.py | 187 | def _set_cache_entry(self, data: Auth, case: Case, context: AuthContext) -> None: | CODE |
| LOW | src/schemathesis/auths.py | 215 | def _set_cache_entry(self, data: Auth, case: Case, context: AuthContext) -> None: | CODE |
| LOW | src/schemathesis/auths.py | 539 | def set_on_case(case: Case, context: AuthContext, auth_storage: AuthStorage | None) -> None: | CODE |
| LOW | src/schemathesis/errors.py | 29 | __all__ = [ | CODE |
| LOW | src/schemathesis/reporting/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/schemathesis/core/compat.py | 9 | __all__ = ["BaseExceptionGroup"] | CODE |
| LOW | src/schemathesis/core/cache/__init__.py | 13 | __all__ = [ | CODE |
| LOW | src/schemathesis/core/jsonschema/__init__.py | 259 | __all__ = [ | CODE |
| LOW | src/schemathesis/core/error_feedback/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/schemathesis/core/error_feedback/parsers/zod.py | 186 | __all__ = ["ZodParser"] | CODE |
| LOW | src/schemathesis/core/error_feedback/parsers/aspnet.py | 211 | __all__ = ["AspNetParser"] | CODE |
| LOW | …chemathesis/core/error_feedback/parsers/marshmallow.py | 207 | __all__ = ["MarshmallowParser"] | CODE |
| LOW | src/schemathesis/core/error_feedback/parsers/ajv.py | 372 | __all__ = ["AjvParser"] | CODE |
| LOW | …/schemathesis/core/error_feedback/parsers/confluent.py | 155 | __all__ = ["ConfluentParser"] | CODE |
| LOW | …hemathesis/core/error_feedback/parsers/go_validator.py | 257 | __all__ = ["GoValidatorParser"] | CODE |
| LOW | src/schemathesis/core/error_feedback/parsers/laravel.py | 190 | __all__ = ["LaravelParser"] | CODE |
| LOW | …c/schemathesis/core/error_feedback/parsers/litestar.py | 197 | __all__ = ["LitestarParser"] | CODE |
| LOW | …schemathesis/core/error_feedback/parsers/flask_rest.py | 227 | __all__ = ["FlaskRestParser"] | CODE |
| LOW | src/schemathesis/core/error_feedback/parsers/symfony.py | 254 | __all__ = ["SymfonyParser"] | CODE |
| LOW | src/schemathesis/pytest/__init__.py | 13 | __all__ = [ | CODE |
| LOW | src/schemathesis/python/__init__.py | 3 | __all__ = ["constants"] | CODE |
| LOW | src/schemathesis/python/_constants/__init__.py | 4 | __all__ = ["ConstantEntry", "ConstantsPool", "Origin", "constants"] | CODE |
| LOW | src/schemathesis/config/__init__.py | 52 | __all__ = [ | CODE |
| LOW | src/schemathesis/config/_warnings.py | 10 | __all__ = ["SchemathesisWarning", "WarningsConfig"] | CODE |
| LOW | src/schemathesis/config/_checks.py | 272 | def _set_enabled(self, name: str, *, known_names: set[str], enabled: bool) -> None: | CODE |
| LOW | src/schemathesis/config/_projects.py | 593 | def _set_parent(self, parent: SchemathesisConfig) -> None: | CODE |
| LOW | src/schemathesis/specs/openapi/_auth_retry.py | 15 | def set_auth_for_case(case: Case, parameter: Mapping[str, Any]) -> None: | CODE |
| LOW | src/schemathesis/specs/openapi/definitions.py | 2572 | __all__ = ["SWAGGER_20", "OPENAPI_30", "OPENAPI_31", "OPENAPI_32", *_VALIDATORS] | CODE |
| LOW | src/schemathesis/specs/openapi/converter.py | 535 | def update_pattern_in_schema(schema: dict[str, Any]) -> None: | CODE |
| LOW | src/schemathesis/specs/openapi/__init__.py | 12 | __all__ = [ | CODE |
| LOW | src/schemathesis/specs/openapi/types/__init__.py | 9 | __all__ = ["OperationObject", "common", "v2", "v3"] | CODE |
| LOW | …thesis/specs/openapi/stateful/dependencies/__init__.py | 45 | __all__ = [ | CODE |
| LOW | …mathesis/specs/openapi/stateful/dependencies/inputs.py | 514 | def update_input_field_bindings(resource_name: str, operations: OperationMap) -> None: | CODE |
| LOW | src/schemathesis/specs/openapi/adapter/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/schemathesis/specs/openapi/expressions/__init__.py | 18 | __all__ = ["MultiMatch", "lexer", "nodes", "parser"] | CODE |
| LOW | src/schemathesis/specs/graphql/nodes.py | 10 | __all__ = [ # noqa: F822 | CODE |
| LOW | src/schemathesis/specs/graphql/stateful/__init__.py | 132 | __all__ = ["GraphQLStateMachine", "create_state_machine"] | CODE |
| LOW | src/schemathesis/wfc/__init__.py | 14 | __all__ = [ | CODE |
| LOW | src/schemathesis/resources/__init__.py | 114 | __all__ = [ | CODE |
| LOW | src/schemathesis/cli/__init__.py | 10 | __all__ = [ | CODE |
| LOW | src/schemathesis/cli/commands/fuzz/handlers/output.py | 194 | def update_error_count(self, error_count: int) -> None: | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/__init__.py | 9 | __all__ = [ | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/output.py | 265 | def _update_stats_display(self) -> None: | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/output.py | 295 | def update_progress(self) -> None: | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/output.py | 321 | def update_stats(self, status: Status) -> None: | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/output.py | 472 | def _update_progress_display(self) -> None: | CODE |
| LOW | src/schemathesis/cli/commands/run/handlers/output.py | 494 | def _update_stats_display(self) -> None: | CODE |
| LOW | src/schemathesis/openapi/__init__.py | 4 | __all__ = [ | CODE |
| LOW | src/schemathesis/openapi/generation/filters.py | 7 | __all__ = [ | CODE |
| LOW | src/schemathesis/graphql/__init__.py | 5 | __all__ = [ | CODE |
| LOW | src/schemathesis/engine/errors.py | 37 | __all__ = ["EngineErrorInfo", "DeadlineExceeded", "UnexpectedError"] | CODE |
| LOW | src/schemathesis/generation/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/schemathesis/generation/meta.py | 243 | def update_validated_hash(self, location: ParameterLocation, value: int) -> None: | CODE |
| LOW | src/schemathesis/generation/stateful/__init__.py | 10 | __all__ = [ | CODE |
| LOW | src/schemathesis/generation/jsonschema/__init__.py | 5 | __all__ = ["EMPTY_STRATEGY", "Alphabet", "StrategyContext", "build", "from_schema"] | CODE |
| LOW | src/schemathesis/generation/hypothesis/given.py | 16 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/filters/test_expressions.py | 9 | ('/user/name == "John Doe"', ("/user/name", "==", "John Doe")), | CODE |
| LOW | test/filters/test_expressions.py | 20 | (' /user/name == "John Doe" ', ("/user/name", "==", "John Doe")), | CODE |
| LOW | test/filters/test_expressions.py | 23 | ('/user/email == "user@example.com"', ("/user/email", "==", "user@example.com")), | CODE |
| LOW⚡ | test/filters/test_expressions.py | 35 | '/user/name "John Doe"', | CODE |
| LOW⚡ | test/filters/test_expressions.py | 36 | '/user/name <> "John Doe"', | CODE |
| LOW⚡ | test/filters/test_expressions.py | 40 | '== "John Doe"', | CODE |
| LOW | test/python/test_case_metadata.py | 733 | original_value="user@example.com", | STRING |
| LOW | test/python/_constants/test_filter.py | 13 | ("user@example.com", True), | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 643 | assert _draw(data, source, schema_properties={"blob": schema}) == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 664 | assert _draw(data, _source("bytes", b"OK"), schema_properties={"blob": schema}) == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 671 | assert _draw(data, _source("bytes", b"x"), schema_properties={"blob": schema}) == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 681 | assert blob == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 693 | assert _draw(data, source, schema_properties={"blob": schema}) == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 701 | source = _source("string", "user@example.com") | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 703 | assert _draw(data, source, schema_properties={"blob": schema}) == "user@example.com" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 713 | assert _draw(data, source, schema_properties={"blob": schema}) == "placeholder" | CODE |
| LOW⚡ | test/python/_constants/test_generation.py | 739 | st.just(GeneratedValue(value={"blob": "placeholder"}, meta=None)), | CODE |
| LOW | test/python/_constants/test_generation.py | 624 | st.just({"blob": "placeholder"}), | CODE |
| LOW | test/python/_constants/test_generation.py | 923 | assert blob == "placeholder" | CODE |
| LOW | test/specs/openapi/test_semantic_pool.py | 327 | {"description": "lorem ipsum dolor sit"}, | CODE |
| LOW | test/specs/openapi/test_semantic_pool.py | 328 | [IngestionLeaf("string", None, None, "description", "lorem ipsum dolor sit")], | CODE |
| LOW | test/specs/openapi/test_semantic_pool.py | 930 | body={"email": "user@example.com", "country": "DE"}, | CODE |
| LOW | test/specs/openapi/test_semantic_pool.py | 938 | assert "user@example.com" in _lookup_by_descriptor(extra_data_source.semantic_index, email_desc) | CODE |
| LOW | test/specs/openapi/test_semantic_pool.py | 2423 | st.fixed_dictionaries({"code": st.just("placeholder")}), | CODE |
| LOW | test/specs/openapi/test_examples.py | 1721 | "name": {"type": "string", "example": "John Doe"}, | STRING |
| LOW | test/specs/openapi/test_examples.py | 1728 | "name": "John Doe", | STRING |
| LOW | test/specs/openapi/negative/test_metadata.py | 108 | original_value="user@example.com", | CODE |
| LOW | test/specs/openapi/negative/test_metadata.py | 111 | 'violates `format:email` at /properties/email (was "user@example.com", became "useratexample.com")', | CODE |
| LOW⚡ | test/specs/openapi/negative/test_value_violators.py | 35 | assert not validator.is_valid(violate_email("user@example.com")) | CODE |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 128 | operation = _parse('query { book(id: "placeholder") { id } }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 133 | assert "placeholder" not in printed | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 135 | assert "placeholder" in printed | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 148 | operation = _parse(f'query {{ lookup({arg_name}: "placeholder") }}') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 161 | operation = _parse('query { lookup(id: "placeholder") }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 163 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 174 | operation = _parse('query { lookup(filter: "placeholder") }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 176 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 188 | operation = _parse('query { lookup(authorId: "placeholder") }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 190 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 204 | operation = _parse('query { author(id: "placeholder") { id } }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 208 | assert "placeholder" in printed | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 283 | operation = _parse('query { bookByTitle(title: "placeholder") { id } }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 286 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 299 | operation = _parse('query { books(filter: {title: "placeholder"}) { id } }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 301 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 323 | operation = _parse(f'query {{ lookup(ref: {{{input_field}: "placeholder"}}) }}') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 373 | operation = _parse('query { authorPosts(ref: {id: "placeholder"}) }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 375 | assert "placeholder" in graphql.print_ast(operation) | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 388 | operation = _parse('query { book(id: "placeholder") { id ...BookFields } } fragment BookFields on Book { title }') | STRING |
| LOW⚡ | test/specs/graphql/test_resource_pool.py | 478 | operation = _parse('query { author { books(bookId: "placeholder") } }') | STRING |
| LOW | test/specs/graphql/test_resource_pool.py | 356 | operation = _parse('mutation { updateBook(input: {ref: {id: "placeholder"}, title: "t"}) { id } }') | STRING |
| LOW | test/cli/test_extra_data_sources.py | 485 | user = {"id": user_id, "email": data.get("email", "user@example.com")} | CODE |
| LOW | test/apps/catalog/openapi/stateful.py | 37 | return {0: {"id": 0, "name": "John Doe", "last_modified": "2021-01-01T00:00:00Z"}} | CODE |
| LOW | docs/explanations/examples.md | 21 | example: "John Doe" | CODE |
| LOW | docs/explanations/examples.md | 29 | example: "John Doe" | CODE |
| LOW | docs/explanations/examples.md | 43 | name: "John Doe" | CODE |
| LOW | docs/explanations/examples.md | 72 | - name: "John Doe" | CODE |
| LOW | docs/guides/fuzz-dictionary.md | 61 | values = ["test@example.com", "admin@example.com"] | CODE |
| LOW | docs/reference/configuration.md | 109 | values = ["test@example.com", "admin@example.com"] | CODE |
| LOW | examples/booking/README.md | 56 | "guest_name": "John Doe", | CODE |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/specs/graphql/test_resource_pool.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { addbook(title: string!): book! deletebook(id: i | STRING |
| HIGH | test/specs/graphql/stateful/test_state_machine.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { addbook(title: string!): book! deletebook(id: i | STRING |
| HIGH | test/specs/graphql/stateful/test_discovery.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { addbook(title: string!): book! deletebook(id: i | STRING |
| HIGH | test/specs/graphql/stateful/test_transitions.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { addbook(title: string!): book! deletebook(id: i | STRING |
| HIGH | test/specs/graphql/stateful/test_bundles.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { addbook(title: string!): book! deletebook(id: i | STRING |
| HIGH | test/specs/graphql/stateful/test_bundles.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { _: boolean } | STRING |
| HIGH | test/specs/graphql/stateful/test_state_machine.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { _: boolean } | STRING |
| HIGH | test/specs/graphql/stateful/test_transitions.py | 0 | type book { id: id! } type query { book(id: id!): book } type mutation { _: boolean } | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/pytest/test_parametrization.py | 789 | # Create a custom database in a temporary directory | COMMENT |
| MEDIUM⚡ | test/pytest/test_parametrization.py | 824 | # Create a custom database in a temporary directory | COMMENT |
| MEDIUM | test/pytest/test_lazy.py | 1056 | # Create a custom database in a temporary directory | COMMENT |
| MEDIUM | test/pytest/test_lazy.py | 1092 | # Create a custom database in a temporary directory | COMMENT |
| MEDIUM | test/config/test_discovery.py | 26 | # Create a config file in the parent directory | STRING |
| MEDIUM | test/config/test_discovery.py | 49 | # Create a structure where a .git folder exists in the parent directory. | STRING |
| MEDIUM | test/specs/openapi/test_negative.py | 354 | # Creating a validator validates the schema | COMMENT |
| MEDIUM | test/specs/openapi/test_checks.py | 974 | # Create a successful response (200 OK) | COMMENT |
| MEDIUM⚡ | test/specs/openapi/test_schema_loading.py | 110 | # Creating a second in-memory resolver must not corrupt the first one's lookups. | COMMENT |
| MEDIUM | test/cli/test_junitxml.py | 65 | # Create a mapping from testcase name to element | COMMENT |
| MEDIUM⚡ | src/schemathesis/specs/openapi/checks.py | 850 | # This function is used to determine if negation is solely in the form of extra properties, | COMMENT |
| MEDIUM | src/schemathesis/resources/repository.py | 226 | # Create a stable key for the context | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/conftest.py | 465 | CODE | |
| LOW | test/utils.py | 200 | CODE | |
| LOW | test/specs/openapi/test_checks.py | 101 | CODE | |
| LOW | test/specs/openapi/stateful/conftest.py | 32 | CODE | |
| LOW | src/schemathesis/schemas.py | 136 | CODE | |
| LOW | src/schemathesis/schemas.py | 186 | CODE | |
| LOW | src/schemathesis/schemas.py | 422 | CODE | |
| LOW | src/schemathesis/schemas.py | 920 | CODE | |
| LOW | src/schemathesis/filters.py | 181 | CODE | |
| LOW | src/schemathesis/filters.py | 212 | CODE | |
| LOW | src/schemathesis/filters.py | 243 | CODE | |
| LOW | src/schemathesis/filters.py | 313 | CODE | |
| LOW | src/schemathesis/core/spec.py | 109 | CODE | |
| LOW | src/schemathesis/pytest/lazy.py | 110 | CODE | |
| LOW | src/schemathesis/pytest/lazy.py | 142 | CODE | |
| LOW | src/schemathesis/config/_report.py | 98 | CODE | |
| LOW | src/schemathesis/config/_generation.py | 43 | CODE | |
| LOW | src/schemathesis/config/_generation.py | 137 | CODE | |
| LOW | src/schemathesis/config/__init__.py | 110 | CODE | |
| LOW | src/schemathesis/config/_checks.py | 154 | CODE | |
| LOW | src/schemathesis/config/_operations.py | 257 | CODE | |
| LOW | src/schemathesis/config/_projects.py | 106 | CODE | |
| LOW | src/schemathesis/config/_projects.py | 213 | CODE | |
| LOW | src/schemathesis/specs/openapi/_hypothesis.py | 126 | CODE | |
| LOW | src/schemathesis/specs/openapi/converter.py | 20 | CODE | |
| LOW | src/schemathesis/specs/openapi/converter.py | 35 | CODE | |
| LOW | src/schemathesis/specs/openapi/converter.py | 49 | CODE | |
| LOW | src/schemathesis/specs/openapi/converter.py | 78 | CODE | |
| LOW | src/schemathesis/specs/openapi/schemas.py | 651 | CODE | |
| LOW | src/schemathesis/specs/graphql/schemas.py | 478 | CODE | |
| LOW | src/schemathesis/specs/graphql/schemas.py | 366 | CODE | |
| LOW | src/schemathesis/cli/commands/fuzz/__init__.py | 152 | CODE | |
| LOW | src/schemathesis/cli/commands/run/warnings.py | 28 | CODE | |
| LOW | src/schemathesis/cli/commands/run/__init__.py | 162 | CODE | |
| LOW | src/schemathesis/generation/case.py | 131 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/guides/auth.md | 20 | --header "X-API-Key: your-api-key" | CODE |
| HIGH | docs/guides/auth.md | 61 | export API_KEY="your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/guides/extending-cli.md | 14 | ### Step 1: Create an option group | COMMENT |
| LOW | docs/guides/extending-cli.md | 27 | ### Step 2: Add options to the group | COMMENT |
| LOW | docs/guides/extending-cli.md | 54 | ### Step 3: Create the event handler | COMMENT |
| LOW | docs/guides/hypothesis-strategies.md | 164 | # Step 1: Always create user | COMMENT |
| LOW | docs/guides/hypothesis-strategies.md | 169 | # Step 2: Probabilistic operations | COMMENT |
| LOW | docs/guides/hypothesis-strategies.md | 182 | # Step 3: Always cleanup | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/schemathesis/core/deserialization.py | 88 | Register a deserializer for custom response media types. Converts API responses with custom content types (MessageP | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mathesis/specs/openapi/stateful/dependencies/naming.py | 460 | # just add 's' (car -> cars) | COMMENT |
| MEDIUM | src/schemathesis/specs/openapi/adapter/parameters.py | 2236 | # to leverage valuable captured IDs for testing deeper application logic | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/specs/openapi/test_patterns.py | 261 | # Nested unbounded inner (`([a-z]+)+`) — the per-tick max is unbounded so | COMMENT |
| LOW | src/schemathesis/core/error_feedback/parsers/jackson.py | 21 | if TYPE_CHECKING: | COMMENT |
| LOW | src/schemathesis/specs/openapi/stateful/__init__.py | 181 | bundle_matchers.append((bundle_name, make_response_filter(link.status_code, all_status_codes))) | COMMENT |
| LOW | src/schemathesis/specs/openapi/expressions/lexer.py | 121 | # Expression: `ID_{$request.body#/foo}}` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/schemathesis/generation/jsonschema/strategy.py | 176 | # Bundle scaffolding the user never wrote. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/data/petstore_v2.yaml | 3 | description: "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/cli/test_checks.py | 1231 | def my_method(): | CODE |