Measure coverage of forked processes
This commit is contained in:
		| @@ -133,6 +133,7 @@ class ParallelHTTPServer(ParallelizationMixIn, | ||||
|         return super().finish_request(request, client_address) | ||||
|  | ||||
|     def finish_request(self, request, client_address): | ||||
|         """Don't overwrite this! (Modified by tests.)""" | ||||
|         with self.connections_guard: | ||||
|             return self.finish_request_locked(request, client_address) | ||||
|  | ||||
| @@ -164,8 +165,7 @@ class ParallelHTTPSServer(ParallelHTTPServer): | ||||
|             ssl_version=self.protocol, ciphers=self.ciphers, | ||||
|             do_handshake_on_connect=False) | ||||
|  | ||||
|     def finish_request(self, request, client_address): | ||||
|         with self.connections_guard: | ||||
|     def finish_request_locked(self, request, client_address): | ||||
|         try: | ||||
|             try: | ||||
|                 request.do_handshake() | ||||
|   | ||||
| @@ -26,6 +26,28 @@ import radicale | ||||
| import sys | ||||
| from io import BytesIO | ||||
|  | ||||
| from pytest_cov import embed | ||||
|  | ||||
| from radicale import server | ||||
|  | ||||
| # Measure coverage of forked processes | ||||
| finish_request = server.ParallelHTTPServer.finish_request | ||||
| pid = os.getpid() | ||||
|  | ||||
|  | ||||
| def finish_request_cov(self, request, client_address): | ||||
|     cov = None | ||||
|     if pid != os.getpid(): | ||||
|         cov = embed.init() | ||||
|     try: | ||||
|         return finish_request(self, request, client_address) | ||||
|     finally: | ||||
|         if cov: | ||||
|             embed.cleanup(cov) | ||||
|  | ||||
|  | ||||
| server.ParallelHTTPServer.finish_request = finish_request_cov | ||||
|  | ||||
| # Allow importing of tests.custom.... | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) | ||||
| # Enable debug output | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Unrud
					Unrud