mirror of
https://github.com/go-gost/gost.git
synced 2026-10-08 20:15:46 +00:00
Add e2e regression test for http.failCodes selector bug — FIFO selector + failCodes=429 on first node proves node-429 is excluded after first 429 response and all subsequent requests go to node-good.
36 lines
994 B
Python
36 lines
994 B
Python
"""HTTP server that always returns a fixed status code."""
|
|
import sys
|
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
|
|
|
|
STATUS = int(sys.argv[1]) if len(sys.argv) > 1 else 429
|
|
PORT = int(sys.argv[2]) if len(sys.argv) > 2 else 5680
|
|
BODY = f"status-{STATUS}".encode()
|
|
|
|
|
|
class Handler(BaseHTTPRequestHandler):
|
|
def do_GET(self):
|
|
self.send_response(STATUS)
|
|
self.send_header("Content-Length", str(len(BODY)))
|
|
self.end_headers()
|
|
self.wfile.write(BODY)
|
|
|
|
def do_POST(self):
|
|
self.send_response(STATUS)
|
|
self.send_header("Content-Length", str(len(BODY)))
|
|
self.end_headers()
|
|
self.wfile.write(BODY)
|
|
|
|
# HTTP proxy CONNECT method
|
|
def do_CONNECT(self):
|
|
self.send_response(STATUS)
|
|
self.send_header("Content-Length", str(len(BODY)))
|
|
self.end_headers()
|
|
self.wfile.write(BODY)
|
|
|
|
def log_message(self, format, *args):
|
|
return
|
|
|
|
|
|
HTTPServer(("0.0.0.0", PORT), Handler).serve_forever()
|