Ошибка Python - os.fork () - PullRequest
       4

Ошибка Python - os.fork ()

0 голосов
/ 30 августа 2018

В python я использую os.fork () в условии for. Я делаю что-то вроде этого:

for i in range(1,4):
    try:
         pid = os.fork()
    except OSError:
         print ("Error forking process")
         continue
    if pid == 0:
         print "In child process"
         os._exit(0)
    print "In parent process"

Как мне смоделировать ошибку os.fork (), чтобы быть уверенным, что «В родительском процессе» не печатается? Как смоделировать OSError для функции os.fork ()?

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете просто заменить os.fork() своей собственной реализацией:

import os

def _fork():
   raise OSError()
os.fork = _fork

for i in range(1,4):
    try:
         pid = os.fork()
    except OSError:
         print ("Error forking process")
         continue
    if pid == 0:
         print "In child process"
         os._exit(0)
    print "In parent process"

Если это часть теста, взгляните на модуль unittest.mock .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...