52 lines
1.1 KiB
Python
Executable File
52 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import subprocess
|
|
import fnmatch
|
|
from pathlib import Path
|
|
|
|
|
|
ignore = [
|
|
"comments_001.xml",
|
|
"tree_001.xml",
|
|
]
|
|
|
|
input_dir = '../tests/files/'
|
|
|
|
files = os.listdir(input_dir)
|
|
files = fnmatch.filter(files, '*.xml')
|
|
files = sorted(files)
|
|
|
|
is_ok = True
|
|
|
|
for idx, xml_file_name in enumerate(files):
|
|
xml_file_path = input_dir + xml_file_name
|
|
res_file_path = input_dir + Path(input_dir + xml_file_name).stem + '.yaml'
|
|
|
|
print('Test {} of {}: {}'.format(idx + 1, len(files), xml_file_name))
|
|
|
|
if xml_file_name in ignore:
|
|
continue
|
|
|
|
with open(res_file_path, 'r') as f:
|
|
expected_ast = f.read()
|
|
|
|
try:
|
|
lxml_ast = subprocess.check_output(['./lxml-ast.py', xml_file_path],
|
|
stderr=subprocess.DEVNULL).decode('utf-8')
|
|
except subprocess.CalledProcessError as e:
|
|
if expected_ast.startswith('error:'):
|
|
continue
|
|
else:
|
|
is_ok = False
|
|
print('Failed')
|
|
break
|
|
|
|
if lxml_ast != expected_ast:
|
|
is_ok = False
|
|
print('Failed')
|
|
break
|
|
|
|
if not is_ok:
|
|
exit(1)
|