Example #1
0
 def test_exitcode(self):
     p = Process(target=func_add, args=(42, 89), name="test_terminate")
     p.start()
     while True:
         if p.exitcode is not None:
             break
         time.sleep(1)
     assert p.exitcode == 0
Example #2
0
 def test_terminate(self):
     p = Process(target=time.sleep, args=(1000,), name="test_terminate")
     p.start()
     assert p.is_alive() is True
     p.terminate()
     time.sleep(0.5)
     assert p.is_alive() is False
     # when terminated, exit code can be 0 for k8s backend
     #assert p.exitcode != 0
     p.join()
Example #3
0
 def test_is_alive(self):
     p = Process(target=func_add, args=(42, 89), name="test_is_alive")
     assert p.is_alive() is False
     p.start()
     assert p.is_alive() is True
     p.join()
     assert p.is_alive() is False
Example #4
0
 def test_join_timeout(self):
     p = Process(target=func_add, args=(42, 89), name="test_join_timeout")
     p.start()
     now = time.time()
     p.join(1)
     diff = time.time() - now
     # because docker backend status updates are every 1 second. In the
     # worst case, this should be 1 second
     # make sure there is no leaked processes
     p.join()
     assert math.fabs(diff - 1) < 1
Example #5
0
 def test_multi_processes(self):
     n = 3
     procs = []
     for i in range(n):
         procs.append(Process(target=func_add, args=(42, 89), name="test_multi_processes"))
     for p in procs:
         p.start()
     for p in procs:
         p.join()
     for p in procs:
         assert 0 == p.exitcode
Example #6
0
 def test_pid(self):
     p = Process(target=func_add, args=(42, 89), daemon=True, name="test_pid")
     assert p.pid is None
     p.start()
     assert p.pid is not None
     assert p.pid < 32768
     assert p.pid > 0
     p.join()
Example #7
0
 def test_current_process_nested(self):
     q = SimpleQueue()
     p = Process(target=get_current_pid,
                 args=(q, ),
                 name="test_active_children")
     p.start()
     q.put(p.pid)
     p.join()
     assert p.exitcode == 0
Example #8
0
 def test_sentinel(self):
     p = Process(target=time.sleep, args=(0.2,), name="test_sentinel")
     p.start()
     fds = select.select([p.sentinel], [], [], 0.1)
     assert len(fds[0]) == 0
     fds = select.select([p.sentinel], [], [])
     assert len(fds[0]) == 1
     assert fds[0][0] == p.sentinel
     p.join()
Example #9
0
 def test_ipc_passive(self):
     if fiber.config.default_backend == "kubernetes":
         # ipc passive is not very useful for current setup, consider disable this completely
         pytest.skip("skipped because current backend is kubernetes")
     # worker process waits for connection from master process
     fiber_config.ipc_active = False
     try:
         p = Process(target=func_add, args=(42, 89), name="test_ipc_passive")
         p.start()
         p.join()
         assert 0 == p.exitcode
     finally:
         fiber_config.ipc_active = True
Example #10
0
from fiber import Process, SimpleQueue


def foo(q, a, b):
    q.put(a + b)


if __name__ == '__main__':
    q = SimpleQueue()
    p = Process(target=foo, args=(q, 42, 21))
    p.start()
    print(q.get())
    p.join()
Example #11
0
 def test_process_run(self):
     p = Process(target=func_error, name="test_process_run")
     with pytest.raises(ValueError):
         p.run()
Example #12
0
from fiber import Process


def f(name):
    print('Hello', name)


if __name__ == "__main__":
    p = Process(target=f, args=('Fiber', ))
    p.start()
    p.join()
    print('Done')
Example #13
0
 def test_none_process(self):
     p = Process(target=None, name="test_none_process")
     p.start()
     p.join()
     assert 0 == p.exitcode
Example #14
0
 def test_process_error(self):
     p = Process(target=func_error, name="test_process_error")
     p.start()
     p.join()
     assert 0 != p.exitcode
Example #15
0
 def test_process(self):
     p = Process(target=func_add, args=(42, 89), name="test_process")
     p.start()
     p.join()
     assert 0 == p.exitcode
Example #16
0
 def test_name(self):
     p = Process(target=func_add, args=(42, 89), name="my_process")
     assert p.name == "my_process"
Example #17
0
 def test_daemon(self):
     p = Process(target=func_add, args=(42, 89), daemon=True, name="test_daemon")
     p.start()
     assert p.daemon is True
     p.join()
Example #18
0
 def test_active_children(self):
     # Reset fiber module so other processes won't inteference with
     # current run
     import importlib
     importlib.reload(fiber)
     fiber.process._children = set()
     try:
         p1 = Process(target=time.sleep,
                      args=(1, ),
                      name="test_active_children1")
         p1.start()
         p2 = Process(target=time.sleep,
                      args=(1, ),
                      name="test_active_children2")
         p2.start()
         assert len(fiber.active_children()) == 2
     finally:
         p1.join()
         p2.join()
Example #19
0
 def test_authkey(self):
     p = Process(target=func_add, args=(42, 89), daemon=True, name="test_authkey")
     assert p.authkey is not None