MCPcopy Create free account

hub / github.com/canarybyte/veridrop / functions

Functions825 in github.com/canarybyte/veridrop

Functiontest_chat_completion_template_flags_gemini_usage_adapter_fields
Same pattern for Gemini-backend impersonation: gemini_* or promptTokenCount-style fields in an OpenAI usage object means the relay is repackag
tests/test_openai_protocol_templates.py:253
Functiontest_chat_completion_template_flags_usage_total_mismatch
()
tests/test_openai_protocol_templates.py:202
Functiontest_chat_completion_template_flags_uuid_and_bad_tool_id
()
tests/test_openai_protocol_templates.py:172
Functiontest_chat_completion_template_validates_tool_calls
()
tests/test_openai_protocol_templates.py:144
Functiontest_classify_anthropic_aliases
()
tests/test_probe.py:27
Functiontest_classify_gemini_aliases
()
tests/test_probe.py:42
Functiontest_classify_openai_aliases
()
tests/test_probe.py:33
Functiontest_classify_unknown_returns_none
()
tests/test_probe.py:49
Functiontest_cmp_consistency_high_cv_is_major
()
tests/test_comparator.py:111
Functiontest_cmp_consistency_model_mismatch_is_critical
()
tests/test_comparator.py:99
Functiontest_cmp_consistency_suspicious_cv_shows_seq
relay CV in 'suspicious' (0.10-0.30) range — should surface value + seq.
tests/test_comparator.py:119
Functiontest_cmp_identity_brand_detection_amazon_q_is_critical
Real-world case: relay says 'I'm Amazon Q built by AWS'.
tests/test_comparator.py:234
Functiontest_cmp_identity_brand_only_new_brands_flagged
If baseline already mentions AWS (e.g. answered 'I'm Claude on AWS'), relay mentioning AWS isn't itself a signal — only NEW brands count.
tests/test_comparator.py:252
Functiontest_cmp_identity_competitor_keyword_is_critical
()
tests/test_comparator.py:221
Functiontest_cmp_integrity_input_tokens_shows_numerics
integrity input_tokens fail — show ns/stream/diff numbers.
tests/test_comparator.py:175
Functiontest_cmp_knowledge_shows_failed_answers
Knowledge fail — surface the bad answer text, not just the qid.
tests/test_comparator.py:195
Functiontest_cmp_message_id_uuid_id_prefix_is_major
()
tests/test_comparator.py:273
Functiontest_cmp_pdf_empty_response_is_critical
()
tests/test_comparator.py:73
Functiontest_cmp_protocol_new_issues_is_minor
()
tests/test_comparator.py:286
Functiontest_cmp_relay_error_is_major
()
tests/test_comparator.py:305
Functiontest_cmp_relay_skip_when_baseline_ran_is_major
()
tests/test_comparator.py:298
Functiontest_cmp_structured_output_no_tool_use_block_is_critical
()
tests/test_comparator.py:84
Functiontest_cmp_structured_output_no_tool_use_shows_text_response
When tool_use absent, show the model's actual text reply.
tests/test_comparator.py:159
Functiontest_cmp_structured_output_wrong_id_prefix_shows_value
tool_use present but id is 'tool_1' — should show actual value as MAJOR.
tests/test_comparator.py:136
Functiontest_cmp_thinking_signature_aligned_is_ok
()
tests/test_comparator.py:56
Functiontest_cmp_thinking_signature_block_missing_is_critical
()
tests/test_comparator.py:29
Functiontest_cmp_thinking_signature_short_signature_is_major
()
tests/test_comparator.py:43
Functiontest_collect_openai_official_baseline_records_api_error
()
tests/test_openai_baseline.py:205
Functiontest_collect_openai_official_baseline_smoke_success
()
tests/test_openai_baseline.py:174
Functiontest_compare_aligned_reports_overall_ok
()
tests/test_comparator.py:354
Functiontest_compare_model_mismatch_in_summary
()
tests/test_comparator.py:379
Functiontest_compare_overall_summary_aggregates_severities
()
tests/test_comparator.py:315
Functiontest_compute_total_basic_weighted_average
()
tests/test_scorer.py:33
Functiontest_compute_total_empty_returns_zero
()
tests/test_scorer.py:51
Functiontest_compute_total_skipped_excluded_from_denominator
()
tests/test_scorer.py:42
Functiontest_compute_total_treats_error_as_zero_weighted
An 'error' status still has weight, so it pulls total down.
tests/test_scorer.py:77
Functiontest_compute_total_zero_weight_safe
()
tests/test_scorer.py:56
Functiontest_core_does_not_import_protocol_packages
()
tests/test_protocol_isolation.py:31
Functiontest_count_tokens_strips_generation_only_fields
()
tests/test_client.py:186
Functiontest_default_base_url_points_to_google_official_openai_compat
()
tests/test_gemini_phase3.py:261
Functiontest_effective_verdict_caps_passed_to_marginal_on_critical
The smoking-gun case: 75% score that includes a critical-bearing detector — sunyears-style OpenAI impersonation. Without this cap the UI showe
tests/test_scorer.py:184
Functiontest_effective_verdict_does_not_promote_failed
Critical-issue cap only DOWNgrades; it never promotes a low score upward. A 30% relay stays failed even if no critical issue is found.
tests/test_scorer.py:204
Functiontest_effective_verdict_unchanged_when_no_critical
()
tests/test_scorer.py:211
Functiontest_estimate_cost_handles_snapshot_suffix
()
tests/test_long_context.py:141
Functiontest_estimate_cost_known_model
()
tests/test_long_context.py:130
Functiontest_estimate_cost_unknown_model_falls_back
()
tests/test_long_context.py:136
Functiontest_evaluate_recalls_case_insensitive
()
tests/test_long_context.py:101
Functiontest_evaluate_recalls_empty_response
()
tests/test_long_context.py:110
Functiontest_evaluate_recalls_full_match
()
tests/test_long_context.py:88
Functiontest_evaluate_recalls_no_collision_with_filler
Sanity check that needle answers don't accidentally appear in filler.
tests/test_long_context.py:115
Functiontest_evaluate_recalls_partial_match
()
tests/test_long_context.py:94
Functiontest_explicit_overrides_heuristic
If user passes --protocol openai but model name says claude-X, explicit wins. Catches relays that route claude-X to GPT for testing.
tests/test_cli_protocol_resolve.py:56
Functiontest_explicit_protocol_arg
()
tests/test_cli_protocol_resolve.py:12
Functiontest_explicit_protocol_arg_case_insensitive
()
tests/test_cli_protocol_resolve.py:18
Functiontest_explicit_protocol_invalid_exits
()
tests/test_cli_protocol_resolve.py:23
Functiontest_extract_bare_list_shape
Some private relays return just an array of strings.
tests/test_probe.py:75
Functiontest_extract_dedupes_repeated_ids
()
tests/test_probe.py:80
Functiontest_extract_gemini_shape
()
tests/test_probe.py:67
Functiontest_extract_openai_shape
()
tests/test_probe.py:59
Functiontest_extract_responses_features_marks_tool_call_and_json_text
()
tests/test_openai_baseline.py:144
Functiontest_extract_skips_non_string_ids_and_unknown_keys
()
tests/test_probe.py:85
Functiontest_fatal_run_error_detects_model_unavailable_errors
()
tests/test_scorer.py:123
Functiontest_fatal_run_error_detects_nested_usage_limit_errors
()
tests/test_scorer.py:101
Functiontest_fatal_run_error_detects_upstream_credit_limit
()
tests/test_scorer.py:87
Functiontest_gemini_client_propagates_400_unchanged
Old code tried to fall back through bogus model aliases. New code must NOT swallow errors — the detector layer turns them into DetectorResult(
tests/test_gemini_phase3.py:334
Functiontest_gemini_client_uses_bearer_auth_and_posts_to_chat_completions
Connectivity-level wiring: the wrapped httpx client targets the right URL and ships the right auth header. Mocked at the transport level so we
tests/test_gemini_phase3.py:293
Functiontest_gemini_pick_default_only_previews_available
Multi-protocol relays often carry only the 3.x preview line.
tests/test_probe.py:454
Functiontest_gemini_pick_default_prefers_25_flash_over_3_preview
()
tests/test_probe.py:437
Functiontest_gemini_pick_default_strips_models_prefix_when_matching
()
tests/test_probe.py:448
Functiontest_gemini_protocol_does_not_import_claude_or_openai_protocols
()
tests/test_protocol_isolation.py:15
Functiontest_gemini_standard_run_passes_with_openai_compat_responses
()
tests/test_gemini_phase3.py:201
Functiontest_grade_anti_keyword_overrides_match
()
tests/test_active_detectors.py:130
Functiontest_grade_expected_by_model_overrides_global
()
tests/test_active_detectors.py:113
Functiontest_grade_expected_keyword_match_any
()
tests/test_active_detectors.py:103
Functiontest_grade_global_expected_keywords_all_must_match
()
tests/test_active_detectors.py:93
Functiontest_has_critical_issues_false_when_none_critical
()
tests/test_scorer.py:167
Functiontest_has_critical_issues_ignores_skipped_detectors
A skipped detector's accumulated state shouldn't poison the verdict.
tests/test_scorer.py:176
Functiontest_has_critical_issues_via_critical_issue_count
Passive ProtocolDetector aggregates as critical_issue_count.
tests/test_scorer.py:145
Functiontest_has_critical_issues_via_inline_severity
Some detectors put severity directly on each issue dict.
tests/test_scorer.py:154
Functiontest_identity_brand_patterns_detect_amazon_q
()
tests/test_active_detectors.py:252
Functiontest_identity_brand_patterns_detect_chatgpt
()
tests/test_active_detectors.py:283
Functiontest_identity_brand_patterns_no_false_positive_on_pure_claude_response
()
tests/test_active_detectors.py:268
Functiontest_is_valid_domain_accepts_real_hosts
()
tests/test_leaderboard_detail.py:73
Functiontest_is_valid_domain_rejects_garbage
()
tests/test_leaderboard_detail.py:79
Functiontest_legacy_detector_path_points_to_anthropic_implementation
()
tests/test_v2_protocol_layout.py:15
Functiontest_long_context_429_persists_after_retry_marks_rate_limited
If a tier is rate-limited on BOTH initial attempt AND retry, give up and mark rate_limited (don't loop forever). This is the case where the us
tests/test_long_context.py:668
Functiontest_long_context_429_retried_after_tpm_window_reset
When a tier hits 429/TPM, detector waits ~75s for the sliding window to reset and retries once. This unblocks legit big probes (e.g. 995k on a
tests/test_long_context.py:612
Functiontest_long_context_429_treated_as_rate_limited_not_truncation
OpenAI exposes long-context as a separate SKU (`gpt-4.1-mini-long-context`) with its own TPM cap. Hitting that cap raises HTTP 429 — which is
tests/test_long_context.py:565
Functiontest_long_context_all_tiers_rate_limited_returns_skip
If every tier hits rate-limit (e.g. user's API key has TPM lower than even our smallest probe), the detector returns skip rather than a mislea
tests/test_long_context.py:700
Functiontest_long_context_estimated_cost_reported
()
tests/test_long_context.py:413
Functiontest_long_context_extreme_implies_standard
If both flags are set, extreme wins (it's a superset). If only extreme is set, the detector still runs (extreme acts as enabler).
tests/test_long_context.py:735
Functiontest_long_context_extreme_uses_adaptive_tiers_for_1m_model
include_long_context_extreme=True on a 1M model probes proportionally (~32k, ~500k, ~950k) instead of hardcoded (32k, 100k, 200k). This is the
tests/test_long_context.py:478
Functiontest_long_context_fails_at_first_tier_when_truncated
()
tests/test_long_context.py:335
Functiontest_long_context_flag_default_false
Default submission (no opt-in) sets include_long_context=False.
tests/test_jobs_long_context.py:44
Functiontest_long_context_flag_true_propagates
When opt-in flag is True, ExecutionConfig.include_long_context is True in the cfg passed to the per-protocol runner. This is the smoke test th
tests/test_jobs_long_context.py:75
Functiontest_long_context_partial_recall_passes_with_warning
Live data 2026-05-05 against api.anthropic.com directly: claude-haiku-4-5 at 200k tier hit ATLAS (50% middle position) miss while ALPHA (10%) and
tests/test_long_context.py:373
Functiontest_long_context_passes_timeout_to_client
Big probes need explicit timeout > the 30s default — verify the detector plumbs request_timeout_s through to the client call. Without this kwa
tests/test_long_context.py:534
Functiontest_long_context_passes_when_all_needles_recalled
()
tests/test_long_context.py:302
Functiontest_long_context_request_error_treated_as_truncation
()
tests/test_long_context.py:356
Functiontest_long_context_skip_overall_when_model_too_small
gpt-3.5-turbo has 16k context — every probe tier is over the limit. Detector returns overall skip rather than misleading fail.
tests/test_long_context.py:462
← previousnext →601–700 of 825, ranked by callers