I could not find a way yet to avoid the reporting in the child-process. Maybe we need to run this with a special runner that will fork and run this test on our behalf.
import os
def func(x, y):
pid = os.fork()
if pid == 0:
print(f"Child {os.getpid()}")
#raise Exception("hello")
exit()
print(f"Parent {os.getpid()} The child is {pid}")
os.wait()
#exit()
#raise Exception("hello")
return x+y
if __name__ == '__main__':
func(2, 3)
import app
import os
#def test_func():
# assert app.func(2, 3) == 5
def test_func():
pid = os.getpid()
try:
res = app.func(2, 3)
assert res == 5
except SystemExit as ex:
assert str(ex) == 'None'
#SystemExit(None)
# or ex == 0
if pid == os.getpid():
raise ex
import logging
def add(x, y):
# logger = logging.getLogger("mytest")
logging.basicConfig(level = logging.INFO)
logging.info("Just some info log")
return x * y
def test_one():
assert add(2, 2) == 4