Как можно использовать подпроцесс в классе и тестировать в python - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть исполняемый файл, который имеет много опций, и я sh для создания классов. Например, в exe c есть опции, которые могут копировать строки файла, переименовывать части файла, сжимать файл, определять количество c строк файла и т. д. c. У каждого варианта есть параметры. Я не уверен, что поступаю неправильно, но я хочу использовать oop.

import subprocess

class ExecProcess:
    def __init__(self, myfile, tempfile, outfile):
        self.myfile = myfile
        self.tempfile = tempfile
        self.outfile = outfile
        self.compressed_file = self.outfile + 'zip'

    def copy(self, myfile):
        temp_copy = subprocess.call(['executable', '-c', self.myfile, '-out', self.tempfile])
        return temp_copy # should this be return self.tempfile which is the output?

    def rename(self, myfile, tempfile, outfile): # need to include all the variables I declared in init?
        output = subprocess.call(['executable', '-i', self.myfile, '-r', self.tempfile'-out', self.compressed_file])
        return output # return self.outfile?

Учитывая вышесказанное, как я вызываю методы в классе, а затем пишу тесты для них, например: используя pytest. Мне не интуитивно понятно, как тестировать вызовы подпроцесса с помощью pytest

Результаты каждого вызова каждый раз представляют собой разные файлы, каждая последующая команда принимает файл из более ранней команды в качестве входных данных. Пожалуйста, обратите внимание, myfile - единственный оригинальный файл, который у меня есть. tempfile и outfile - это просто имена переменных, которые я присвоил результатам.

Любая помощь будет оценена по достоинству

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