Files
aiData/DouYin/dy-downloader/tests/test_config_loader.py
HuangHai d89388ab51 'commit'
2026-01-20 14:05:19 +08:00

40 lines
1001 B
Python

import os
import pytest
from config import ConfigLoader
def test_config_loader_merges_file_and_defaults(tmp_path, monkeypatch):
config_file = tmp_path / "config.yml"
config_file.write_text(
"""
link:
- https://www.douyin.com/video/1
path: ./Custom/
thread: 3
"""
)
monkeypatch.setenv('DOUYIN_THREAD', '8')
loader = ConfigLoader(str(config_file))
# Environment variable should override file
assert loader.get('thread') == 8
# File values should override defaults
assert loader.get('path') == './Custom/'
# Links should be normalized to list
assert loader.get_links() == ['https://www.douyin.com/video/1']
def test_config_validation_requires_links_and_path(tmp_path):
config_file = tmp_path / "config.yml"
config_file.write_text("{}")
loader = ConfigLoader(str(config_file))
assert not loader.validate()
loader.update(link=['https://www.douyin.com/video/1'], path='./Downloaded/')
assert loader.validate() is True