Я использовал os.popen (), прежде чем запускать свои тесты с pytest, и все работало. Все мои тесты связаны с записью, изменением или удалением в Vault. Проблема в том, что один из моих тестов требует, чтобы я получил значение кода возврата, которое недоступно с os.popen (), поэтому я переключился на subprocess (), но теперь я не могу получить какой-либо изфункции работают.
Я просматривал документацию, и я заметил, что вместо возможности просто передать строку, например, os.popen, нужно ли мне добавить другой параметр, но все, что я добавляю, не 't work.
Этот код используется для работы до того, как мне пришлось переключиться на подпроцесс:
command = os.popen('vault write test/Hello value=world')
print(command.read())
Вот пример одного из моих тестов, который сейчас не проходит:
# Add secret and verify in vault
def test_add_secret_and_verify(self):
try:
command = subprocess.run('vault write test/Hello value=world')
print(command.read())
print("Secret created!")
command = subprocess.run('vault read -field=value test/Hello')
result = command.read()
print(result)
print("Verifying secret - "+result+" - is the same as created!")
self.assertEqual(result, "world")
except Exception as e:
print(e)
self.fail()
Есть несколько страниц с ошибками, но в итоге это просто не помогает и говорит, что subprocess.run () не работает. Кто-нибудь имеет представление о том, что я мог бы изменить, чтобы заставить эту функцию работать, или, может быть, порекомендовал бы мне использовать другую функцию?