client_server_genhtml.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:network-testing 作者: crossdistro 项目源码 文件源码
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))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号