| 23 | from collections import Counter, defaultdict |
| 24 | from pathlib import Path |
| 25 | from typing import Awaitable, Callable, Dict, List, Optional, Sequence, Tuple |
| 26 | |
| 27 | |
| 28 | PROXY_HOST = "127.0.0.1" |
| 29 | PROXY_PORT = 84 |
| 30 | TARGET_HOST = "www.baidu.com" |
| 31 | TARGET_PORT = 80 |
| 32 | EXPECT_STATUS_MIN = 200 |
| 33 | EXPECT_STATUS_MAX = 399 |
| 34 | REPOSITORY_ROOT = Path(__file__).resolve().parent.parent |
| 35 | |
| 36 | |
| 37 | class Result: |
| 38 | __slots__ = ( |
| 39 | "ok", |
| 40 | "error", |