holiday-cn/tests/test_fetch_holidays.py
2019-03-12 22:54:23 +08:00

32 lines
920 B
Python

"""Test module `fetch_holidays`. """
import json
import sys
from fetch_holidays import CustomJSONEncoder, DescriptionParser
from .filetools import _file_path
def _normalize(iterable):
return sorted(json.loads(json.dumps(list(iterable), cls=CustomJSONEncoder)),
key=lambda x: x['date'])
def _generate_tests():
with open(_file_path('description_parsing_cases.json'), 'r', encoding='utf-8', ) as f:
cases = json.load(f)
def create_test(case):
def _test():
year, description, expected = case['year'], case['description'], case['expected']
assert _normalize(DescriptionParser(
description, year).parse()) == _normalize(expected), case
return _test
for index, case in enumerate(cases, 1):
setattr(sys.modules[__name__],
f'test_description_parser_{index}', create_test(case))
_generate_tests()