mirror of https://github.com/patacrep/patacrep.git
Oliverpool
8 years ago
3 changed files with 47 additions and 1 deletions
@ -0,0 +1,46 @@ |
|||
"""Tests for the index generation.""" |
|||
|
|||
import codecs |
|||
import glob |
|||
import os |
|||
import unittest |
|||
|
|||
from patacrep.index import process_sxd |
|||
|
|||
from .. import dynamic # pylint: disable=unused-import |
|||
|
|||
|
|||
class FileTest(unittest.TestCase, metaclass=dynamic.DynamicTest): |
|||
"""Test of the index generation. |
|||
|
|||
For any given `foo.sxd`, it generates the index. |
|||
It controls that the generated file is equal to the one in `foo.sbx`. |
|||
""" |
|||
|
|||
@classmethod |
|||
def _iter_testmethods(cls): |
|||
"""Iterate over dynamically generated test methods""" |
|||
for source in sorted(glob.glob(os.path.join( |
|||
os.path.dirname(__file__), |
|||
'*.sxd', |
|||
))): |
|||
base = source[:-len(".sxd")] |
|||
yield ( |
|||
"test_index_{}".format(os.path.basename(base)), |
|||
cls._create_index_test(base), |
|||
) |
|||
|
|||
@classmethod |
|||
def _create_index_test(cls, base): |
|||
"""Return a function that tests that `foo.sxd` produces the sbx file""" |
|||
|
|||
def test_index(self): |
|||
"""Test that `foo.sxd` produces the correct sbx file""" |
|||
generated_index = process_sxd(base + ".sxd").entries_to_str() |
|||
with codecs.open(base + ".sbx", "r", "utf-8") as control_index: |
|||
self.assertEqual(control_index.read(), generated_index, ) |
|||
|
|||
test_index.__doc__ = ( |
|||
"Test that '{base}.sxd' produces the correct sbx file""" |
|||
).format(base=os.path.basename(base)) |
|||
return test_index |
Loading…
Reference in new issue