From 79639ba0afa2cb4d66b27045e80153869a2ceae5 Mon Sep 17 00:00:00 2001 From: Kevin F Date: Sat, 5 Feb 2022 00:24:31 -0600 Subject: [PATCH] Added unittest for onionr subprocess module --- src/onionrprocess/__init__.py | 3 +-- tests/test_onionr_process.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 tests/test_onionr_process.py diff --git a/src/onionrprocess/__init__.py b/src/onionrprocess/__init__.py index b03bef6e..ffd26feb 100644 --- a/src/onionrprocess/__init__.py +++ b/src/onionrprocess/__init__.py @@ -1,6 +1,7 @@ from audioop import mul import multiprocessing + def run_func_in_new_process(func, *args, **kwargs): queue = multiprocessing.Queue() @@ -14,9 +15,7 @@ def run_func_in_new_process(func, *args, **kwargs): else: queue.put(func()) - proc = multiprocessing.Process(target=_wrap_func, daemon=True) proc.start() return queue.get() - diff --git a/tests/test_onionr_process.py b/tests/test_onionr_process.py new file mode 100644 index 00000000..9d774ba5 --- /dev/null +++ b/tests/test_onionr_process.py @@ -0,0 +1,31 @@ +import sys, os +sys.path.append(".") +sys.path.append("src/") +import unittest, uuid + +import requests + +TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/' +print("Test directory:", TEST_DIR) +os.environ["ONIONR_HOME"] = TEST_DIR +import onionrprocess + +class TestOnionrProcess(unittest.TestCase): + def test_onionr_process(self): + def _sub_proc(): + return 2 + def _sub_proc_arg(arg): + return arg + def _sub_proc_kwarg(arg=''): + return arg + def _sub_proc_kwarg_default(arg=4): + return arg + def _sub_proc_both(arg, arg2=5): + return (arg, arg2) + self.assertEqual(onionrprocess.run_func_in_new_process(_sub_proc), 2) + self.assertEqual(onionrprocess.run_func_in_new_process(_sub_proc_arg, 3), 3) + self.assertEqual(onionrprocess.run_func_in_new_process(_sub_proc_kwarg, 4), 4) + self.assertEqual(onionrprocess.run_func_in_new_process(_sub_proc_kwarg_default), 4) + self.assertEqual(onionrprocess.run_func_in_new_process(_sub_proc_both, 6), (6, 5)) + +unittest.main()