Add watcher test, such as it is
This commit is contained in:
+3
-4
@@ -5,8 +5,7 @@
|
||||
|
||||
"""Watch a directory for new PDFs and OCR them."""
|
||||
|
||||
# Do not enable annotations!
|
||||
# https://github.com/tiangolo/typer/discussions/598
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import logging
|
||||
@@ -278,11 +277,11 @@ def main(
|
||||
f"Output Directory Year & Month: {output_dir_year_month}\n"
|
||||
f"Archive Directory: {archive_dir}"
|
||||
)
|
||||
log.debug(
|
||||
log.info(
|
||||
f"INPUT_DIRECTORY: {input_dir}\n"
|
||||
f"OUTPUT_DIRECTORY: {output_dir}\n"
|
||||
f"OUTPUT_DIRECTORY_YEAR_MONTH: {output_dir_year_month}\n"
|
||||
f"ARCHIVE_DIRECTORY: {archive_dir}\n"
|
||||
f"OUTPUT_DIRECTORY_YEAR_MONTH: {output_dir_year_month}\n"
|
||||
f"ON_SUCCESS_DELETE: {on_success_delete}\n"
|
||||
f"ON_SUCCESS_ARCHIVE: {on_success_archive}\n"
|
||||
f"DESKEW: {deskew}\n"
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
watchdog = pytest.importorskip('watchdog')
|
||||
|
||||
|
||||
@pytest.mark.parametrize('year_month', [True, False])
|
||||
def test_watcher(tmp_path, resources, year_month):
|
||||
input_dir = tmp_path / 'input'
|
||||
input_dir.mkdir()
|
||||
output_dir = tmp_path / 'output'
|
||||
output_dir.mkdir()
|
||||
processed_dir = tmp_path / 'processed'
|
||||
processed_dir.mkdir()
|
||||
|
||||
if year_month:
|
||||
env_extra = {'OCR_OUTPUT_DIRECTORY_YEAR_MONTH': '1'}
|
||||
else:
|
||||
env_extra = {}
|
||||
proc = subprocess.Popen(
|
||||
[
|
||||
sys.executable,
|
||||
Path(__file__).parent.parent / 'misc' / 'watcher.py',
|
||||
str(input_dir),
|
||||
str(output_dir),
|
||||
str(processed_dir),
|
||||
],
|
||||
cwd=str(tmp_path),
|
||||
env=os.environ.copy() | env_extra,
|
||||
)
|
||||
time.sleep(5)
|
||||
|
||||
shutil.copy(resources / 'trivial.pdf', input_dir / 'trivial.pdf')
|
||||
time.sleep(5)
|
||||
|
||||
if year_month:
|
||||
assert (
|
||||
output_dir
|
||||
/ f'{datetime.date.today().year}'
|
||||
/ f'{datetime.date.today().month:02d}'
|
||||
/ 'trivial.pdf'
|
||||
).exists()
|
||||
else:
|
||||
assert (output_dir / 'trivial.pdf').exists()
|
||||
|
||||
proc.terminate()
|
||||
proc.wait()
|
||||
Reference in New Issue
Block a user