"""Negative fixture: an unrelated local HTTP server must never receive load."""
import os
from pathlib import Path
import subprocess
import tempfile
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer

seen = []
class ExistingService(BaseHTTPRequestHandler):
    def do_GET(self):
        seen.append(self.path)
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"some-other-service")
    def log_message(self, *args):
        pass

server = HTTPServer(("127.0.0.1", 18888), ExistingService)
thread = threading.Thread(target=server.serve_forever)
thread.start()
try:
    with tempfile.TemporaryDirectory(prefix="fixture-guard-") as out:
        env = dict(os.environ, OUT=out)
        result = subprocess.run(["bash", "run-loads.sh"], env=env,
                                text=True, capture_output=True, timeout=10)
        assert result.returncode != 0, result.stdout + result.stderr
        assert all(path == "/ready" for path in seen), seen
        print("occupied fixture port rejected; unrelated service received no workload")
finally:
    server.shutdown()
    server.server_close()
    thread.join()
