Repository navigation
test: opt-in live API suite, and a required live run per release - #31
Merged
Merged
Conversation
… per release tests/live_api_test.py calls every method of ZeroBounce and ZeroBounceWarmup against the real API. It is not collected by pytest and never runs in CI; it skips without ZEROBOUNCE_API_KEY / ZEROBOUNCE_WARMUP_API_KEY. - Default: free calls only (sandbox addresses, reads, and calls expected to fail such as unknown file IDs and S3/SFTP without an integration, which still prove the payload is accepted); fails if the credit balance changed. - ZEROBOUNCE_LIVE_SPEND=1: scoring, activity, email finder, and full bulk round trips (upload, wait, buffered and streamed download, delete) for validation, scoring, email finder, domain search and list evaluator + send_evaluated_file. Every job is deleted. - ZEROBOUNCE_LIVE_CHANGES=1: a test allowlist filter and a self-managed Warmup sending account (rename, rules, custom-rule cooldown, statistics), removed in cleanup even when a test fails. - Never: creating an Inbox Placement test, setting its webhook, ZB-managed Warmup onboarding; the API cannot undo them. README documents how to run it. AGENTS.md makes a manual live run mandatory for every release: tell the maintainer as early as possible which keys and flags it needs, don't tag until it passes, record the result, and never write a key anywhere. Live result (2026-10-24, both keys, both flags): 20/20 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tests/live_api_test.py: an opt-in suite that calls every method ofZeroBounceandZeroBounceWarmupagainst the real API. It is not collected bypytest, never runs in CI, and skips without keys.ZEROBOUNCE_LIVE_SPEND=1: scoring, activity, email finder, and full bulk round trips (upload, wait, buffered and streamed download, delete) for validation, scoring, email finder, domain search, and list evaluator +send_evaluated_file. Every job is deleted.ZEROBOUNCE_LIVE_CHANGES=1: a test allowlist filter and a self-managed Warmup sending account (rename, rules, custom-rule cooldown, statistics), removed in cleanup even when a test fails.Live result
2026-10-24, validation and Warmup keys,
ZEROBOUNCE_LIVE_SPEND=1andZEROBOUNCE_LIVE_CHANGES=1: 20/20 passed. One test was adjusted during the run: a job created bysend_evaluated_fileanswers "File cannot be found" for a short while after it is accepted, so the test waits through that.Test plan
ruff check,pytest(130 offline tests; the live file is not collected)🤖 Generated with Claude Code