82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
import unittest
|
|
import src.fsub.fsub as fsub
|
|
import shutil
|
|
import os
|
|
import inspect
|
|
from pathlib import Path
|
|
|
|
|
|
class TestFsub(unittest.TestCase):
|
|
samples = Path('tests/samples')
|
|
|
|
def run_on(self, args, samples, ofiles, replace=False):
|
|
caller = inspect.stack()[1][3]
|
|
ifiles = []
|
|
|
|
samples = map(lambda s: str(self.samples / s) + '.srt', samples)
|
|
i = 1
|
|
for sample in samples:
|
|
ifile = str(i) + '.' + caller + '.srt'
|
|
shutil.copy(sample, ifile)
|
|
args.append(ifile)
|
|
ifiles.append(ifile)
|
|
i += 1
|
|
|
|
fsub.run(args)
|
|
|
|
limit = len(ofiles)
|
|
for i, ifile in enumerate(ifiles):
|
|
if i < limit:
|
|
if not replace:
|
|
os.remove(ifile)
|
|
ifile = 'out-' + ifile
|
|
out = open(ifile)
|
|
result = out.read()
|
|
out.close()
|
|
|
|
ofile = str(self.samples / ofiles[i]) + '.srt'
|
|
cmp_file = open(ofile)
|
|
cmp = cmp_file.read()
|
|
cmp_file.close()
|
|
|
|
self.assertEqual(result, cmp)
|
|
try:
|
|
os.remove(ifile)
|
|
except FileNotFoundError:
|
|
pass
|
|
|
|
def test_cleaned(self):
|
|
args = ['-f', str(self.samples / 'blacklist')]
|
|
self.run_on(args, ['sample1'], ['sample1-cleaned'])
|
|
|
|
def test_stripped(self):
|
|
self.run_on(['-n'], ['sample1'], ['sample1-stripped'])
|
|
|
|
def test_cleaned_stripped(self):
|
|
args = ['-c', '-f', str(self.samples / 'blacklist'), '-n']
|
|
self.run_on(args, ['sample1'], ['sample1-cleaned-stripped'])
|
|
|
|
def test_cleaned_stripped_shifted_1h(self):
|
|
args = ['-c',
|
|
'-f', str(self.samples / 'blacklist'),
|
|
'-n',
|
|
'-s', '3600000']
|
|
self.run_on(args, ['sample1'], ['sample1-cleaned-stripped-shifted-1h'])
|
|
|
|
def test_shifted_minus_1h(self):
|
|
args = ['-s', '-3600000']
|
|
self.run_on(args, ['sample1'], ['sample1-shifted-minus-1h'])
|
|
|
|
def test_shifted_minus_52s(self):
|
|
args = ['-s', '-52000']
|
|
self.run_on(args, ['sample1'], ['sample1-shifted-minus-52s'])
|
|
|
|
def test_joined(self):
|
|
args = ['-j']
|
|
self.run_on(args, ['sample1', 'sample2', 'sample3'],
|
|
['sample1-sample2-sample3-joined'])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|