test: юнит-тесты и сквозные тесты с Chrome (#21)
- tests/unit (make test, без браузера, ~5 с): схемы и валидация, /v1/solve с подменённым движком (коды ошибок, слоты, сессии, UA и cookies профиля, маскирование секретов в логах), действия, оркестратор антибота, профиль и отпечаток - tests/browser (make test-browser, в Docker): example.com, UA один раз и замена cookies на httpbin, применение и стабильность отпечатка, прохождение Cloudflare - requirements-dev.txt, make sync-dev; Makefile вызывает pip через python -m pip (у перенесённого .venv битый shebang bin/pip) - fix: в CloudflareSolver вызов bounding_box() у неожиданной корутины — ветка без iframe всегда падала с AttributeError Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
58100fa45d
commit
0ae5b0c83f
13 files changed
+773
-85
No files matched your search
@@ -67,8 +67,9 @@ src/
|
||||
captcha/ # 2captcha solvers: Turnstile, reCAPTCHA, hCaptcha
|
||||
docs/ # API, deployment, anti-bot notes
|
||||
tests/
|
||||
unit/ # pytest without a browser: make test
|
||||
browser/ # end-to-end with real Chrome in Docker: make test-browser
|
||||
loadtest.py # concurrent load test + docker stats
|
||||
fingerprint_check.py # profile fingerprints are applied and stable (make fp-check)
|
||||
test_main.http # manual requests (JetBrains HTTP client)
|
||||
wheels/ # wheels for offline install on Ubuntu Noble
|
||||
Dockerfile
|
||||
@@ -131,6 +132,14 @@ cd src && uvicorn main:app --reload
|
||||
|
||||
Chrome runs headful, so a display is required (locally — your desktop, in Docker — Xvfb).
|
||||
|
||||
Tests:
|
||||
|
||||
```bash
|
||||
make sync-dev # pytest into .venv
|
||||
make test # unit tests, no browser (~5 s)
|
||||
make test-browser # build the image and run end-to-end tests with real Chrome (needs network)
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user