Files
photo-dater/pytest/test_bad_files.py

69 lines
1.9 KiB
Python

import os
import pytest
import random
import shutil
from pathlib import Path
from helpers import *
from fixtures import *
cmd = 'python3 updatescannedpics.py'
def test_bad_filename(in_out_dirs, log_file):
in_dir, out_dir = in_out_dirs
file_name = gen_rand_name(12) + ".jpg"
Path(os.path.join(in_dir, file_name)).touch()
command = f'{cmd} -i {in_dir} -o {out_dir}'
output = run_successfull_cmd(command)
expected = f"File name not compatable: {file_name}"
assert check_log_string(log_file, expected)
def test_bad_jpg_format(in_out_dirs, log_file):
in_dir, out_dir = in_out_dirs
year = random.randint(1900, 2000)
month = random.randint(1, 12)
day = random.randint(1, 28)
index = random.randint(0, 99)
file_name = f"{year}{month:02d}{day:02d}_{index:02d}.jpg"
Path(os.path.join(in_dir, file_name)).touch()
command = f'{cmd} -i {in_dir} -o {out_dir}'
output = run_successfull_cmd(command)
expected = f"Bad file format for {file_name}"
assert check_log_string(log_file, expected)
def test_bad_jpg_year(in_out_dirs, log_file):
in_dir, out_dir = in_out_dirs
year_low = random.randint(1000, 1799)
year_high = random.randint(2010, 2100)
month = random.randint(1, 12)
day = random.randint(1, 28)
index = random.randint(0, 99)
file_name_high = f"{year_high}{month:02d}{day:02d}_{index:02d}.jpg"
file_name_low = f"{year_low}{month:02d}{day:02d}_{index:02d}.jpg"
shutil.copyfile("pytest/example_pics/u_001.jpg", f"{in_dir}/{file_name_high}")
shutil.copyfile("pytest/example_pics/u_002.jpg", f"{in_dir}/{file_name_low}")
command = f'{cmd} -m -i {in_dir} -o {out_dir}'
output = run_successfull_cmd(command)
expected = [
f"Year too great: {year_high}",
f"Year too early: {year_low}"
]
for exp in expected:
assert check_log_string(log_file, exp)