rougail-output-doc/tests/test_changelog.py

63 lines
2.4 KiB
Python

from pytest import fixture # , raises
import os
from pathlib import Path
from rougail import Rougail, RougailConfig
from rougail.output_doc import RougailOutputDoc
os.environ['COLUMNS'] = '80'
test_ok = sorted(list((Path(__file__).parent / 'changelog').iterdir()))
# test_ok = [Path(__file__).parent / 'changelog' / '40_dynamic_mod_default1']
def idfn(fixture_value):
return fixture_value.name
@fixture(scope="module", params=test_ok, ids=idfn)
def test_dir(request):
return request.param
def test_changelog(test_dir):
rougailconfig = RougailConfig.copy()
rougailconfig['main_namespace'] = None
rougailconfig["step.output"] = "doc"
rougailconfig['main_structural_directories'] = [str(test_dir / "before" / "rougail" / "00-base.yml")]
rougailconfig["doc.output_format"] = "json"
eolobj = Rougail(rougailconfig=rougailconfig)
config = eolobj.run()
generated_output = RougailOutputDoc(config, rougailconfig=rougailconfig).run()[1]
destfile = Path('before.json')
with destfile.open('w+') as fh:
fh.write(generated_output)
rougailconfig = RougailConfig.copy()
rougailconfig['main_namespace'] = None
rougailconfig["step.output"] = "doc"
rougailconfig['main_structural_directories'] = [str(test_dir / "after" / "rougail" / "00-base.yml")]
rougailconfig["doc.output_format"] = "asciidoc"
rougailconfig["doc.contents"] = ["changelog"]
rougailconfig["doc.previous_json_file"] = str(destfile)
eolobj = Rougail(rougailconfig=rougailconfig)
config = eolobj.run()
result = RougailOutputDoc(config, rougailconfig=rougailconfig).run()[1]
output_file = test_dir / 'result.adoc'
if not output_file.is_file():
with output_file.open('w') as outfh:
outfh.write(result)
with output_file.open() as outfh:
attented_output = outfh.read()
assert result == attented_output, f'filename {output_file}'
#
rougailconfig["doc.output_format"] = "console"
# eolobj = Rougail(rougailconfig=rougailconfig)
# config = eolobj.run()
result = RougailOutputDoc(config, rougailconfig=rougailconfig).run()[1]
output_file = test_dir / 'result.sh'
if not output_file.is_file():
with output_file.open('w') as outfh:
outfh.write(result)
with output_file.open() as outfh:
attented_output = outfh.read()
assert result == attented_output, f'filename {output_file}'
#
destfile.unlink()