Gouzi Mohaled
Ajout du dossier tests
3932407
import http.server
import pytest
import socketserver
import threading
import os
HTTP_SERVER_HOST = os.environ.get("HTTP_SERVER_HOST", "localhost")
@pytest.fixture(params=[False, True], scope="module")
def on_disk_vectors(request):
return request.param
@pytest.fixture(params=[False, True], scope="module")
def on_disk_payload(request):
return request.param
@pytest.fixture
def http_server(tmpdir):
"""
Starts a HTTP server serving files from a temporary directory.
Yields a tuple (tmpdir, url).
"""
class Handler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
# Serve files from the temporary directory
super().__init__(*args, directory=str(tmpdir), **kwargs)
def log_request(self, *args, **kwargs):
# Silence logging
pass
with socketserver.TCPServer(("0.0.0.0", 0), Handler) as httpd:
httpd.allow_reuse_address = True
thread = threading.Thread(
target=httpd.serve_forever,
# Lower the shutdown poll interval to speed up tests
kwargs={"poll_interval": 0.1},
)
thread.start()
yield (tmpdir, f"http://{HTTP_SERVER_HOST}:{httpd.server_address[1]}")
httpd.shutdown()
thread.join()
@pytest.fixture(scope='module', autouse=True)
def collection_name(request):
return request.node.name.removesuffix(".py")