Properly log requests in SimpleHTTPRequestHandler

We use the SimpleHTTPRequestHandler as proxy in web urls test and as
fake gerrit server. By default it pollutes stderr with every request
it receives. This produces much visual noise when running tox. By
overriding the log_message method this can be logged properly.

Change-Id: Ifc5f1558dc374fa884fd5625221ba4089d533572
This commit is contained in:
Tobias Henkel 2019-02-03 19:59:30 +01:00
parent b44b6c532c
commit b3b4ab678b
No known key found for this signature in database
GPG Key ID: 03750DEC158E5FA2
1 changed files with 8 additions and 0 deletions

View File

@ -561,6 +561,9 @@ class GerritWebServer(object):
self.send_response(200)
self.end_headers()
def log_message(self, fmt, *args):
self.log.debug(fmt, *args)
self.httpd = socketserver.ThreadingTCPServer(('', 0), Server)
self.port = self.httpd.socket.getsockname()[1]
self.thread = threading.Thread(name='GerritWebServer',
@ -2064,6 +2067,8 @@ class WebProxyFixture(fixtures.Fixture):
rules = self.rules
class Proxy(http.server.SimpleHTTPRequestHandler):
log = logging.getLogger('zuul.WebProxyFixture.Proxy')
def do_GET(self):
path = self.path
for (pattern, replace) in rules:
@ -2078,6 +2083,9 @@ class WebProxyFixture(fixtures.Fixture):
self.end_headers()
self.wfile.write(resp.content)
def log_message(self, fmt, *args):
self.log.debug(fmt, *args)
self.httpd = socketserver.ThreadingTCPServer(('', 0), Proxy)
self.port = self.httpd.socket.getsockname()[1]
self.thread = threading.Thread(target=self.httpd.serve_forever)