Ok。このコマンドを実行するクラスがあります:
ffmpeg_command = "ffprobe -v quiet -print_format json -show_format -show_streams %s" % self.absolute_path
self.absolute_path がムービーへのパスである場合、.mpg ファイルとしましょう。
テストに使用しているファイルは 4GB の大きさで、GIT リポジトリ内でコミットしたくありません。
そこで、このファイルをモックして、次のファイルを作成することを考えていました。
mock.mpg
これは、ffprobe コマンドへの入力として提供されると、実際の mpg ムービーと同じ文字列を返します。それは可能ですか?
または、他にどのようなアプローチを選択する必要がありますか?
これは私のクラスです:
class Movie(object):
absolute_path = None
info = None
def __init__(self, path):
self.absolute_path = "%s/%s" % (os.getcwd(), path)
if(os.path.exists(self.absolute_path) is False):
raise IOError("File does not exist")
self.info = json.loads(self.get_info())
def get_info(self):
ffmpeg_command = "ffprobe -v quiet -print_format json -show_format -show_streams %s" % self.absolute_path
return subprocess.check_output(ffmpeg_command, shell=True)
これは私がそれを単体テストする方法です:
class MovieTest(unittest.TestCase):
def test_foo(self):
movie = Movie("tests/test_1.mpg") # this file should be a mock file!!!