65 lines
2 KiB
Python
65 lines
2 KiB
Python
import os
|
|
from pathlib import Path
|
|
from rougail import Rougail
|
|
from rougail.config import get_rougail_config
|
|
from rougail.output_doc import RougailOutputDoc
|
|
|
|
os.environ['COLUMNS'] = '80'
|
|
|
|
EXT = {'github': 'md', 'asciidoc': 'adoc', 'json': 'json', 'console': 'sh', 'gitlab': 'gitlab.md', "html": "html"}
|
|
|
|
|
|
def _test_root(root, contents=None):
|
|
test_dir = Path(__file__).resolve().parent
|
|
rougailconfig = get_rougail_config(backward_compatibility=False)
|
|
rougailconfig['step.output'] = 'doc'
|
|
if contents:
|
|
rougailconfig["doc.contents"] = [contents]
|
|
# rougailconfig['tiramisu_cache'] = 'p.py'
|
|
dirs = [str(test_dir / 'root')]
|
|
rougailconfig['main_structural_directories'] = dirs
|
|
rougail = Rougail(rougailconfig)
|
|
config = rougail.run()
|
|
rougailconfig['doc.root'] = root
|
|
if contents == 'changelog':
|
|
rougailconfig["doc.previous_json_file"] = str(test_dir / "empty/out.json")
|
|
for output_format, ext in EXT.items():
|
|
if output_format == 'json' and contents:
|
|
continue
|
|
rougailconfig['doc.output_format'] = output_format
|
|
inventory = RougailOutputDoc(config, rougailconfig=rougailconfig)
|
|
doc = inventory.run()[1]
|
|
if contents:
|
|
result_file = test_dir / f'root_{root}_{contents}.{ext}'
|
|
else:
|
|
result_file = test_dir / f'root_{root}.{ext}'
|
|
if not result_file.is_file():
|
|
with open(str(result_file), 'w') as docfh:
|
|
docfh.write(doc)
|
|
with open(str(result_file)) as docfh:
|
|
result = docfh.read()
|
|
assert doc == result, result_file
|
|
|
|
|
|
def test_root():
|
|
_test_root('a_family')
|
|
|
|
|
|
def test_root_sub():
|
|
_test_root('a_family.an_other_family')
|
|
|
|
|
|
def test_root_changelog():
|
|
_test_root('a_family', "changelog")
|
|
|
|
|
|
def test_root_sub_changelog():
|
|
_test_root('a_family.an_other_family', "changelog")
|
|
|
|
|
|
def test_root_example():
|
|
_test_root('a_family', "example")
|
|
|
|
|
|
def test_root_sub_example():
|
|
_test_root('a_family.an_other_family', "example")
|