From 9b59b66f16ebb8f09eda9ef46c43df4241e0100e Mon Sep 17 00:00:00 2001 From: John Belmonte Date: Fri, 15 Apr 2022 20:54:30 +0900 Subject: [PATCH] work around test framework issue on macOS add macOS to CI build fixes #30 --- .github/workflows/ci.yml | 2 +- src/purerpc/test_utils.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62f9598..507cfbd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-latest, macos-latest] backend: [asyncio, curio, trio, uvloop] steps: - uses: actions/checkout@v3 diff --git a/src/purerpc/test_utils.py b/src/purerpc/test_utils.py index b1da85d..045f31d 100644 --- a/src/purerpc/test_utils.py +++ b/src/purerpc/test_utils.py @@ -2,7 +2,6 @@ import collections import subprocess import multiprocessing -import multiprocessing.connection import tempfile import shutil import os @@ -14,6 +13,7 @@ import time import random import string +from multiprocessing.connection import Connection from tblib import pickling_support pickling_support.install() @@ -23,6 +23,11 @@ from async_generator import aclosing +# work around pickle issue on macOS +if sys.platform == 'darwin': + multiprocessing = multiprocessing.get_context('fork') + + @contextlib.contextmanager def compile_temp_proto(*relative_proto_paths): modules = [] @@ -60,7 +65,7 @@ def compile_temp_proto(*relative_proto_paths): _WrappedResult = collections.namedtuple("_WrappedResult", ("result", "exc_info")) -def _wrap_gen_in_process(conn: multiprocessing.connection.Connection): +def _wrap_gen_in_process(conn: Connection): def decorator(gen): @functools.wraps(gen) def new_func(*args, **kwargs):