example unit test updated to test all examples from example directory
This commit is contained in:
parent
793b2a0ab4
commit
6c3437f509
|
@ -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']
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue