def build(staticdatadir, outdir, templatedir, input_file):
try:
shutil.rmtree(outdir)
except Exception:
pass
os.makedirs(outdir)
data = {ident: load_data(os.path.join(staticdatadir, filename))
for ident, filename in STATIC_DATA_FILES.items()}
data['schema'] = registered_properties
data['results'] = results = {}
for filename in input_file:
result = load_data(filename)
try:
result = dict(result)
except ValueError:
raise ValueError('Data needs to be a mapping: ', filename)
if not set(result.keys()).isdisjoint(results.keys()):
raise ValueError('Overwriting data: ', filename)
results.update(result)
loader = jinja2.FileSystemLoader(templatedir)
template_env = jinja2.Environment(
loader=loader,
undefined=jinja2.StrictUndefined,
)
def render(out_name, template_name, **env):
template = template_env.get_template(template_name)
result = template.render(data=data, **env)
output_filename = os.path.join(outdir, out_name)
dirname = os.path.dirname(output_filename)
try:
os.makedirs(dirname)
except OSError:
pass
print('Writing:', output_filename)
with open(output_filename, 'w') as file:
file.write(result)
# Render all the pages
render('index.html', 'index.html', breadcrumbs=())
for name, testcase in data['results'].items():
render('cases/{}.html'.format(name), 'testcase.html',
testcase_name=name, testcase=testcase,
breadcrumbs=[
('Network Test Report', '../index.html'),
(name, None),
])
print('Wrote to', os.path.abspath(outdir))
client_server_genhtml.py 文件源码
python
阅读 17
收藏 0
点赞 0
评论 0
评论列表
文章目录