ken_nogi/PythonProj/ScanOCR/スクリプト/tests/test_config_loader.py
Kenichiro NOGI 4ae53c2725 feat: config.txt読込モジュールを追加
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 10:08:02 +09:00

56 lines
1.6 KiB
Python

import pytest
from pathlib import Path
from config_loader import ConfigError, load_config
VALID_CONTENT = """\
スクリプトフォルダ=スクリプト
テンプレートフォルダ=テンプレート
スキャンフォルダ=スキャン
アウトプットフォルダ=アウトプット
成功フォルダ=成功
失敗フォルダ=失敗
ログフォルダ=ログ
margin=0.10
DPI=300
ファイル安定待ち秒=1
ファイル安定待ちリトライ回数=5
"""
def test_load_config_missing_file_raises(tmp_path):
missing_path = tmp_path / "config.txt"
with pytest.raises(ConfigError):
load_config(missing_path)
def test_load_config_parses_all_keys(tmp_path):
config_path = tmp_path / "config.txt"
config_path.write_text(VALID_CONTENT, encoding="utf-8")
config = load_config(config_path)
assert config["スクリプトフォルダ"] == "スクリプト"
assert config["テンプレートフォルダ"] == "テンプレート"
assert config["margin"] == "0.10"
assert config["ファイル安定待ちリトライ回数"] == "5"
def test_load_config_missing_required_key_raises(tmp_path):
config_path = tmp_path / "config.txt"
config_path.write_text("スクリプトフォルダ=スクリプト\n", encoding="utf-8")
with pytest.raises(ConfigError):
load_config(config_path)
def test_load_config_ignores_blank_lines_and_comments(tmp_path):
config_path = tmp_path / "config.txt"
content = "# comment\n\n" + VALID_CONTENT
config_path.write_text(content, encoding="utf-8")
config = load_config(config_path)
assert config["スクリプトフォルダ"] == "スクリプト"