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)