Ниже приведен мой пример извлечения из основного кода
output = os.popen(". oraenv; echo $PATH; echo $ORACLE_BASE; echo $ORACLE_HOME").read()
print output
output1 = os.popen("some other command").read()
print output1
Я пишу макет кода выше, так как используется функция read (), поэтому возвращаемое значение должно иметь тип os.popen, как показано ниже
@patch('os.popen', return_value=(os.popen('ls -la')))
def test_main_code(self, popen)
some code......
Как os.popen использовался два раза, как я могу изменить мой фиктивный код, чтобы он также принимал return_value для output1. На данный момент output1 является пустым. Я уже пытался использовать side_effect для изменения значения, но значения представлены в виде строки, а не типа os.popen.
popen.side_effect = ["os.popen('ls -la')","os.popen('ls -la')"]