Added unittest for onionr subprocess module

This commit is contained in:
Kevin F 2022-02-05 00:24:31 -06:00
parent 061e2d1e01
commit 79639ba0af
2 changed files with 32 additions and 2 deletions

View File

@ -1,6 +1,7 @@
from audioop import mul from audioop import mul
import multiprocessing import multiprocessing
def run_func_in_new_process(func, *args, **kwargs): def run_func_in_new_process(func, *args, **kwargs):
queue = multiprocessing.Queue() queue = multiprocessing.Queue()
@ -14,9 +15,7 @@ def run_func_in_new_process(func, *args, **kwargs):
else: else:
queue.put(func()) queue.put(func())
proc = multiprocessing.Process(target=_wrap_func, daemon=True) proc = multiprocessing.Process(target=_wrap_func, daemon=True)
proc.start() proc.start()
return queue.get() return queue.get()

View File

@ -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()