(self)
| 426 | return SimpleHTTPRequestHandler.end_headers(self) |
| 427 | |
| 428 | def do_POST(self): # noqa: DC04 |
| 429 | urlinfo = urlparse(self.path) |
| 430 | query = parse_qs(urlinfo.query) |
| 431 | content_length = int(self.headers['Content-Length']) |
| 432 | post_data = self.rfile.read(content_length) |
| 433 | if urlinfo.path == '/log': |
| 434 | # Logging reported by reportStdoutToServer / reportStderrToServer. |
| 435 | # |
| 436 | # To automatically capture stderr/stdout message from browser tests, modify |
| 437 | # `captureStdoutStderr` in `test/browser_reporting.js`. |
| 438 | filename = query['file'][0] |
| 439 | print(f"[client {filename}: '{post_data.decode()}']") |
| 440 | self.send_response(200) |
| 441 | self.end_headers() |
| 442 | elif urlinfo.path == '/upload': |
| 443 | filename = query['file'][0] |
| 444 | print(f'do_POST: got file: {filename}') |
| 445 | create_file(filename, post_data, binary=True) |
| 446 | self.send_response(200) |
| 447 | self.end_headers() |
| 448 | elif urlinfo.path.startswith('/status/'): |
| 449 | code_str = urlinfo.path[len('/status/'):] |
| 450 | code = int(code_str) |
| 451 | if code in {301, 302, 303, 307, 308}: |
| 452 | self.send_response(code) |
| 453 | self.send_header('Location', '/status/200') |
| 454 | self.end_headers() |
| 455 | elif code == 200: |
| 456 | self.send_response(200) |
| 457 | self.send_header('Content-type', 'text/plain') |
| 458 | self.end_headers() |
| 459 | self.wfile.write(b'OK') |
| 460 | else: |
| 461 | self.send_error(400, f'Not implemented for {code}') |
| 462 | else: |
| 463 | print(f'do_POST: unexpected POST: {urlinfo}') |
| 464 | |
| 465 | def do_GET(self): |
| 466 | info = urlparse(self.path) |
nothing calls this directly
no test coverage detected