added coverage.process_startup for multiprocessing coverage... but does not quite work yet

This commit is contained in:
Matthias Bisping 2022-04-01 19:51:33 +02:00
parent da9b3d0cb9
commit 2b48c6108b
3 changed files with 13 additions and 3 deletions

View File

@ -8,6 +8,8 @@ PACKAGE_ROOT_DIR = MODULE_DIR.parents[0]
CONFIG_FILE = PACKAGE_ROOT_DIR / "config.yaml" CONFIG_FILE = PACKAGE_ROOT_DIR / "config.yaml"
COVERAGERC = str(PACKAGE_ROOT_DIR / ".coveragerc")
BANNER_FILE = PACKAGE_ROOT_DIR / "banner.txt" BANNER_FILE = PACKAGE_ROOT_DIR / "banner.txt"
DATA_DIR = PACKAGE_ROOT_DIR / "data" DATA_DIR = PACKAGE_ROOT_DIR / "data"

View File

@ -23,3 +23,4 @@ pytest~=7.1.0
funcy==1.17 funcy==1.17
PyMuPDF==1.19.6 PyMuPDF==1.19.6
fpdf==1.7.2 fpdf==1.7.2
coverage==6.3.2

View File

@ -1,12 +1,16 @@
import os
import socket import socket
from multiprocessing import Process from multiprocessing import Process
from time import sleep
import coverage
import pytest import pytest
import requests import requests
from funcy import retry, complement from funcy import retry
from image_prediction.flask import make_prediction_server, run_prediction_server from image_prediction.flask import make_prediction_server, run_prediction_server
from image_prediction.locations import COVERAGERC
# os.environ['COVERAGE_PROCESS_START'] = COVERAGERC
@pytest.fixture @pytest.fixture
@ -59,6 +63,7 @@ def server_ready(url):
@pytest.fixture(autouse=True, scope="function") @pytest.fixture(autouse=True, scope="function")
def server_process(server, host_and_port, url): def server_process(server, host_and_port, url):
def get_server_process(): def get_server_process():
coverage.process_startup()
return Process(target=run_prediction_server, kwargs={"app": server, **host_and_port}) return Process(target=run_prediction_server, kwargs={"app": server, **host_and_port})
server = get_server_process() server = get_server_process()
@ -67,7 +72,9 @@ def server_process(server, host_and_port, url):
if server_ready(url): if server_ready(url):
yield yield
server.terminate() server.kill()
server.join()
server.close()
def test_server_predict(url): def test_server_predict(url):