example unit test updated to test all examples from example directory

This commit is contained in:
Nicolas Kruse 2025-06-06 09:05:40 +02:00
parent 793b2a0ab4
commit 6c3437f509
2 changed files with 27 additions and 10 deletions

View File

@ -1,10 +1,9 @@
import re import re
from typing import Generator, Iterable, Literal from typing import Generator, Iterable
from dataclasses import dataclass from dataclasses import dataclass
import sys import sys
@dataclass @dataclass
class markdown_segment: class markdown_segment:
code_block: bool code_block: bool
@ -95,7 +94,7 @@ def segments_to_test(segments: Iterable[markdown_segment], script_language: str
if segment.language == script_language: if segment.language == script_language:
lines = [line for line in segment.text.splitlines() if line.strip()] lines = [line for line in segment.text.splitlines() if line.strip()]
ret_block_flag = lines[-1] if not re.match(r'^[^(]*=', lines[-1]) and not lines[-1].startswith('import ') else None ret_block_flag = lines[-1] if not re.match(r'^[^(]*=', lines[-1]) and not lines[-1].startswith('import ') else None
print('Last line: ', ret_block_flag, '-----------', lines[-1]) # print('Last line: ', ret_block_flag, '-----------', lines[-1])
yield '' yield ''
yield ' print("---------------------------------------------------------")' yield ' print("---------------------------------------------------------")'
@ -119,6 +118,7 @@ def segments_to_test(segments: Iterable[markdown_segment], script_language: str
yield '\nif __name__ == "__main__":' yield '\nif __name__ == "__main__":'
yield ' run_test()' yield ' run_test()'
if __name__ == "__main__": if __name__ == "__main__":
format = sys.argv[1] format = sys.argv[1]
assert format in ['test', 'script'] assert format in ['test', 'script']

View File

@ -1,11 +1,28 @@
import md_to_code import md_to_code
from glob import glob
import importlib
import os
def test_readme(): def test_readme():
md_to_code.convert_to('test', 'README.md', 'tests/autogenerated_readme.py') md_to_code.convert_to('test', 'README.md', 'tests/autogenerated_readme.py')
import autogenerated_readme import autogenerated_readme
autogenerated_readme.run_test() autogenerated_readme.run_test()
def test_soec_example():
md_to_code.convert_to('test', 'docs/source/examples/soec_methane.md', 'tests/autogenerated_soec_example.py') def test_example_code():
import autogenerated_soec_example filter = 'docs/source/examples/*.md'
autogenerated_soec_example.run_test()
files = glob(filter)
for path in files:
file_name = '.'.join(os.path.basename(path).split('.')[:-1])
if not file_name.lower() == 'readme':
print(f"> Test Example {file_name} ...")
md_to_code.convert_to('test', path, f'tests/autogenerated_{file_name}.py')
mod = importlib.import_module(file_name)
mod.run_test()
if __name__ == "__main__":
test_readme()
test_example_code()