Skip to main content

Prerequisites

Install uv.

Test suites

Running tests

Running Redis locally

Integration tests run against both the memory backend and a fakeredis backend by default. To run against a real Redis instance:

Test options

Integration test utilities

The proxy-hopper-testserver package provides test doubles for integration tests:
  • UpstreamServer — a controllable aiohttp HTTP server. Set it to respond with 200, 429, 503, hang, or close connections on demand.
  • MockProxy — a TCP server that simulates an external proxy IP. Can forward, refuse, hang, or return error responses.
  • MockProxyPool — manages a set of MockProxy instances as a named IP pool.
See the proxy-hopper-testserver README for full usage.

CI

Tests run on every push via GitHub Actions. The workflow:
  1. Runs the core unit tests
  2. Runs the integration tests (fakeredis)
  3. Runs the cross-backend contract tests (memory + fakeredis)
  4. Runs the Redis backend tests against a real Redis service container
  5. Builds the Docker image and validates it starts correctly
All four suites must pass before a PR can be merged.