本文整理汇总了Python中py.xml.html.span函数的典型用法代码示例。如果您正苦于以下问题:Python span函数的具体用法?Python span怎么用?Python span使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了span函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: append_log_html
def append_log_html(self, report, additional_html):
log = html.div(class_='log')
if report.longrepr:
for line in report.longreprtext.splitlines():
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(escape(line)),
class_='error'))
else:
log.append(raw(escape(line)))
log.append(html.br())
for section in report.sections:
header, content = map(escape, section)
log.append(' {0} '.format(header).center(80, '-'))
log.append(html.br())
if ANSI:
converter = Ansi2HTMLConverter(inline=False, escaped=False)
content = converter.convert(content, full=False)
log.append(raw(content))
if len(log) == 0:
log = html.div(class_='empty log')
log.append('No log output captured.')
additional_html.append(log)
开发者ID:davehunt,项目名称:pytest-html,代码行数:29,代码来源:plugin.py
示例2: append_log_html
def append_log_html(self, report, additional_html):
log = html.div(class_='log')
if report.longrepr:
for line in str(report.longrepr).splitlines():
if not PY3:
line = line.decode('utf-8')
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(escape(line)),
class_='error'))
else:
log.append(raw(escape(line)))
log.append(html.br())
for header, content in report.sections:
log.append(' {0} '.format(header).center(80, '-'))
log.append(html.br())
log.append(content)
if len(log) == 0:
log = html.div(class_='empty log')
log.append('No log output captured.')
additional_html.append(log)
开发者ID:redixin,项目名称:pytest-html,代码行数:27,代码来源:plugin.py
示例3: make_result_html
def make_result_html(self, data):
tc_time = (data["time"] - self.start_times.pop(data["test"])) / 1000.
additional_html = []
debug = data.get("extra", {})
links_html = []
status = status_name = data["status"]
expected = data.get("expected", status)
if status != expected:
status_name = "UNEXPECTED_" + status
elif status != "PASS":
status_name = "EXPECTED_" + status
self.test_count[status_name] += 1
if status in ['SKIP', 'FAIL', 'ERROR']:
if debug.get('screenshot'):
screenshot = 'data:image/png;base64,%s' % debug['screenshot']
additional_html.append(html.div(
html.a(html.img(src=screenshot), href="#"),
class_='screenshot'))
for name, content in debug.items():
if 'screenshot' in name:
href = '#'
else:
# use base64 to avoid that some browser (such as Firefox, Opera)
# treats '#' as the start of another link if the data URL contains.
# use 'charset=utf-8' to show special characters like Chinese.
href = 'data:text/plain;charset=utf-8;base64,%s' % base64.b64encode(content.encode('utf-8'))
links_html.append(html.a(
name.title(),
class_=name,
href=href,
target='_blank'))
links_html.append(' ')
log = html.div(class_='log')
output = data.get('stack', '').splitlines()
output.extend(data.get('message', '').splitlines())
for line in output:
separator = line.startswith(' ' * 10)
if separator:
log.append(line[:80])
else:
if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
log.append(html.span(raw(cgi.escape(line)), class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
self.result_rows.append(
html.tr([html.td(status_name, class_='col-result'),
html.td(data['test'], class_='col-name'),
html.td('%.2f' % tc_time, class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='debug')],
class_=status_name.lower() + ' results-table-row'))
开发者ID:Andrel322,项目名称:gecko-dev,代码行数:59,代码来源:html.py
示例4: _appendrow
def _appendrow(self, result, report):
time = getattr(report, 'duration', 0.0)
additional_html = []
links_html = []
for extra in getattr(report, 'extra', []):
href = None
if extra.get('format') == extras.FORMAT_IMAGE:
href = '#'
image = 'data:image/png;base64,%s' % extra.get('content')
additional_html.append(html.div(
html.a(html.img(src=image), href="#"),
class_='image'))
elif extra.get('format') == extras.FORMAT_HTML:
additional_html.append(extra.get('content'))
elif extra.get('format') == extras.FORMAT_JSON:
href = data_uri(json.dumps(extra.get('content')),
mime_type='application/json')
elif extra.get('format') == extras.FORMAT_TEXT:
href = data_uri(extra.get('content'))
elif extra.get('format') == extras.FORMAT_URL:
href = extra.get('content')
if href is not None:
links_html.append(html.a(
extra.get('name'),
class_=extra.get('format'),
href=href,
target='_blank'))
links_html.append(' ')
if 'Passed' not in result:
if report.longrepr:
log = html.div(class_='log')
for line in str(report.longrepr).splitlines():
if not PY3:
line = line.decode('utf-8')
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(escape(line)),
class_='error'))
else:
log.append(raw(escape(line)))
log.append(html.br())
additional_html.append(log)
self.test_logs.append(html.tr([
html.td(result, class_='col-result'),
html.td(report.nodeid, class_='col-name'),
html.td('%.2f' % time, class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='extra')],
class_=result.lower() + ' results-table-row'))
开发者ID:jharrowmortelliti,项目名称:pytest-html,代码行数:59,代码来源:plugin.py
示例5: _appendrow
def _appendrow(self, result, report):
time = getattr(report, 'duration', 0.0)
additional_html = []
links_html = []
if 'Passed' not in result:
for extra in getattr(report, 'extra', []):
href = None
if type(extra) is Image:
href = '#'
image = 'data:image/png;base64,%s' % extra.content
additional_html.append(html.div(
html.a(html.img(src=image), href="#"),
class_='image'))
elif type(extra) is HTML:
additional_html.append(extra.content)
elif type(extra) is Text:
href = 'data:text/plain;charset=utf-8;base64,%s' % \
b64encode(extra.content)
elif type(extra) is URL:
href = extra.content
if href is not None:
links_html.append(html.a(
extra.name,
class_=extra.__class__.__name__.lower(),
href=href,
target='_blank'))
links_html.append(' ')
if report.longrepr:
log = html.div(class_='log')
for line in str(report.longrepr).splitlines():
line = line.decode('utf-8')
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(cgi.escape(line)),
class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
self.test_logs.append(html.tr([
html.td(result, class_='col-result'),
html.td(report.nodeid, class_='col-name'),
html.td('%.2f' % time, class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='extra')],
class_=result.lower() + ' results-table-row'))
开发者ID:justinpotts,项目名称:pytest-html,代码行数:56,代码来源:pytest_html.py
示例6: _extract_html
def _extract_html(test, class_name, duration=0, text='', result='passed', debug=None):
cls_name = class_name
tc_name = unicode(test)
tc_time = duration
additional_html = []
debug = debug or {}
links_html = []
if result in ['skipped', 'failure', 'expected failure', 'error']:
if debug.get('screenshot'):
screenshot = 'data:image/png;base64,%s' % debug['screenshot']
additional_html.append(html.div(
html.a(html.img(src=screenshot), href="#"),
class_='screenshot'))
for name, content in debug.items():
try:
if 'screenshot' in name:
href = '#'
else:
# use base64 to avoid that some browser (such as Firefox, Opera)
# treats '#' as the start of another link if the data URL contains.
# use 'charset=utf-8' to show special characters like Chinese.
href = 'data:text/plain;charset=utf-8;base64,%s' % base64.b64encode(content)
links_html.append(html.a(
name.title(),
class_=name,
href=href,
target='_blank'))
links_html.append(' ')
except:
pass
log = html.div(class_='log')
for line in text.splitlines():
separator = line.startswith(' ' * 10)
if separator:
log.append(line[:80])
else:
if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
log.append(html.span(raw(cgi.escape(line)), class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
test_logs.append(html.tr([
html.td(result.title(), class_='col-result'),
html.td(cls_name, class_='col-class'),
html.td(tc_name, class_='col-name'),
html.td(tc_time, class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='debug')],
class_=result.lower() + ' results-table-row'))
开发者ID:Allan019,项目名称:gaia,代码行数:53,代码来源:runtests.py
示例7: _extract_html
def _extract_html(test, class_name, duration=0, text="", result="passed", debug=None):
cls_name = class_name
tc_name = unicode(test)
tc_time = duration
additional_html = []
debug = debug or {}
links_html = []
if result in ["skipped", "failure", "expected failure", "error"]:
if debug.get("screenshot"):
screenshot = "data:image/png;base64,%s" % debug["screenshot"]
additional_html.append(html.div(html.a(html.img(src=screenshot), href="#"), class_="screenshot"))
for name, content in debug.items():
try:
if "screenshot" in name:
href = "#"
else:
# use base64 to avoid that some browser (such as Firefox, Opera)
# treats '#' as the start of another link if the data URL contains.
# use 'charset=utf-8' to show special characters like Chinese.
href = "data:text/plain;charset=utf-8;base64,%s" % base64.b64encode(content)
links_html.append(html.a(name.title(), class_=name, href=href, target="_blank"))
links_html.append(" ")
except:
pass
log = html.div(class_="log")
for line in text.splitlines():
separator = line.startswith(" " * 10)
if separator:
log.append(line[:80])
else:
if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
log.append(html.span(raw(cgi.escape(line)), class_="error"))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
test_logs.append(
html.tr(
[
html.td(result.title(), class_="col-result"),
html.td(cls_name, class_="col-class"),
html.td(tc_name, class_="col-name"),
html.td(tc_time, class_="col-duration"),
html.td(links_html, class_="col-links"),
html.td(additional_html, class_="debug"),
],
class_=result.lower() + " results-table-row",
)
)
开发者ID:JDaniel1990,项目名称:gaia,代码行数:52,代码来源:runtests.py
示例8: _append_stacktrace_section
def _append_stacktrace_section(log, report):
log.append(html.h3('Stacktrace'))
stacktrace_p = html.p(class_='stacktrace')
for line in str(report.longrepr).splitlines():
separator = line.startswith('_ ' * 10)
if separator:
stacktrace_p.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
stacktrace_p.append(html.span(raw(escape(line)),
class_='error'))
else:
stacktrace_p.append(raw(escape(line)))
stacktrace_p.append(html.br())
log.append(stacktrace_p)
开发者ID:salsita,项目名称:shishito,代码行数:16,代码来源:junithtml.py
示例9: pytest_sessionfinish
def pytest_sessionfinish(self, session, exitstatus):
self._make_report_dir()
logfile = py.std.codecs.open(self.logfile, 'w', encoding='utf-8')
suite_stop_time = time.time()
suite_time_delta = suite_stop_time - self.suite_start_time
numtests = self.passed + self.failed
generated = datetime.datetime.now()
doc = html.html(
html.head(
html.meta(charset='utf-8'),
html.title('Test Report'),
html.link(rel='stylesheet', href='style.css'),
html.script(src='jquery.js'),
html.script(src='main.js')),
html.body(
html.p('Report generated on %s at %s ' % (
generated.strftime('%d-%b-%Y'),
generated.strftime('%H:%M:%S'),
)),
html.div([html.p(
html.span('%i tests' % numtests, class_='all clickable'),
' ran in %i seconds.' % suite_time_delta,
html.br(),
html.span('%i passed' % self.passed, class_='passed clickable'), ', ',
html.span('%i skipped' % self.skipped, class_='skipped clickable'), ', ',
html.span('%i failed' % self.failed, class_='failed clickable'), ', ',
html.span('%i errors' % self.errors, class_='error clickable'), '.',
html.br(), ),
html.span('Hide all errors', class_='clickable hide_all_errors'), ', ',
html.span('Show all errors', class_='clickable show_all_errors'),
], id='summary-wrapper'),
html.div(id='summary-space'),
html.table([
html.thead(html.tr([
html.th('Result', class_='sortable', col='result'),
html.th('Class', class_='sortable', col='class'),
html.th('Name', class_='sortable', col='name'),
html.th('Duration', class_='sortable numeric', col='duration'),
# html.th('Output')]), id='results-table-head'),
html.th('Links')]), id='results-table-head'),
html.tbody(*self.test_logs, id='results-table-body')], id='results-table')))
logfile.write(
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' + doc.unicode(
indent=2))
logfile.close()
self.process_screenshot_files()
self.process_debug_event_files()
self.process_performance_files()
开发者ID:salsita,项目名称:shishito,代码行数:50,代码来源:junithtml.py
示例10: _appendrow
def _appendrow(self, result, report):
names = mangle_testnames(report.nodeid.split("::"))
testclass = (names[:-1])
if self.prefix:
testclass.insert(0, self.prefix)
testclass = ".".join(testclass)
testmethod = names[-1]
time = getattr(report, 'duration', 0.0)
additional_html = []
if not 'Passed' in result:
if report.longrepr:
log = html.div(class_='log')
for line in str(report.longrepr).splitlines():
line = line.decode('utf8')
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(cgi.escape(line)),
class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
if not os.path.exists(self.screenshot_path):
os.makedirs(self.screenshot_path)
self.append_screenshot(testmethod, log)
additional_html.append(log)
output = self._write_captured_output(report)
info = output.split(" ")
links_html = []
for i in range(0, len(info)):
if ("http" in info[i] and "browserstack.com" in info[i]):
links_html.append(html.a("link", href=info[i], target='_blank'))
links_html.append(' ')
self.test_logs.append(html.tr([
html.td(result, class_='col-result'),
html.td(testclass, class_='col-class'),
html.td(testmethod, class_='col-name'),
html.td(round(time), class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='debug')],
class_=result.lower() + ' results-table-row'))
开发者ID:Argimon,项目名称:shishito,代码行数:47,代码来源:junithtml.py
示例11: make_errors_table
def make_errors_table(self, errors):
rows = []
for error in errors:
error_message = error.get("message", "")
log = html.div(class_='log')
for line in error_message.splitlines():
separator = line.startswith(' ' * 10)
if separator:
log.append(line[:80])
else:
if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
log.append(html.span(raw(cgi.escape(line)), class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
rows.append(html.tr(
html.td(error["level"],
class_="log_%s" % error["level"]),
html.td(log, class_='log')
))
return html.table(rows, id_="errors")
开发者ID:JJTC-PX,项目名称:fxos-certsuite,代码行数:21,代码来源:summary.py
示例12: prepare_line
def prepare_line(text, tokenizer, encoding):
""" adds html formatting to text items (list)
only processes items if they're of a string type (or unicode)
"""
ret = []
for item in text:
if type(item) in [str, unicode]:
tokens = tokenizer.tokenize(item)
for t in tokens:
if not isinstance(t.data, unicode):
data = unicode(t.data, encoding)
else:
data = t.data
if t.type in ['keyword', 'alt_keyword', 'number',
'string', 'comment']:
ret.append(html.span(data, class_=t.type))
else:
ret.append(data)
else:
ret.append(item)
return ret
开发者ID:mickg10,项目名称:DARLAB,代码行数:22,代码来源:html.py
示例13: generate_html
def generate_html(self):
generated = datetime.utcnow()
with open(os.path.join(base_path, "main.js")) as main_f:
doc = html.html(
self.head,
html.body(
html.script(raw(main_f.read())),
html.p('Report generated on %s at %s' % (
generated.strftime('%d-%b-%Y'),
generated.strftime('%H:%M:%S'))),
html.h2('Environment'),
html.table(
[html.tr(html.td(k), html.td(v)) for k, v in sorted(self.env.items()) if v],
id='environment'),
html.h2('Summary'),
html.p('%i tests ran in %.1f seconds.' % (sum(self.test_count.itervalues()),
(self.suite_times["end"] -
self.suite_times["start"]) / 1000.),
html.br(),
html.span('%i passed' % self.test_count["PASS"], class_='pass'), ', ',
html.span('%i skipped' % self.test_count["SKIP"], class_='skip'), ', ',
html.span('%i failed' % self.test_count["UNEXPECTED_FAIL"], class_='fail'), ', ',
html.span('%i errors' % self.test_count["UNEXPECTED_ERROR"], class_='error'), '.',
html.br(),
html.span('%i expected failures' % self.test_count["EXPECTED_FAIL"],
class_='expected_fail'), ', ',
html.span('%i unexpected passes' % self.test_count["UNEXPECTED_PASS"],
class_='unexpected_pass'), '.'),
html.h2('Results'),
html.table([html.thead(
html.tr([
html.th('Result', class_='sortable', col='result'),
html.th('Test', class_='sortable', col='name'),
html.th('Duration', class_='sortable numeric', col='duration'),
html.th('Links')]), id='results-table-head'),
html.tbody(self.result_rows, id='results-table-body')], id='results-table')))
return u"<!DOCTYPE html>\n" + doc.unicode(indent=2)
开发者ID:Andrel322,项目名称:gecko-dev,代码行数:39,代码来源:html.py
示例14: _appendrow
#.........这里部分代码省略.........
filename = 'networktraffic.json'
f = open(os.path.join(full_path, filename), 'wb')
f.write(report.debug['network_traffic'][-1])
links.update({'Network Traffic': os.path.join(relative_path, filename)})
if report.debug['urls']:
links.update({'Failing URL': report.debug['urls'][-1]})
if self.config.option.sauce_labs_credentials_file and hasattr(report, 'session_id'):
links['Sauce Labs Job'] = 'http://saucelabs.com/jobs/%s' % report.session_id
links_html = []
for name, path in links.iteritems():
links_html.append(html.a(name, href=path))
links_html.append(' ')
self.test_logs.append(
html.tr(html.td(result,
class_=result.lower()),
html.td(testclass),
html.td(testmethod),
html.td(round(time)),
html.td(*links_html),
class_=result.lower()))
if not 'Passed' in result:
additional_html = []
if self.config.option.sauce_labs_credentials_file and hasattr(report, 'session_id'):
flash_vars = 'config={\
"clip":{\
"url":"http%%3A//saucelabs.com/jobs/%(session_id)s/video.flv",\
"provider":"streamer",\
"autoPlay":false,\
"autoBuffering":true},\
"plugins":{\
"streamer":{\
"url":"http://saucelabs.com/flowplayer/flowplayer.pseudostreaming-3.2.5.swf"},\
"controls":{\
"mute":false,\
"volume":false,\
"backgroundColor":"rgba(0, 0, 0, 0.7)"}},\
"playerId":"player%(session_id)s",\
"playlist":[{\
"url":"http%%3A//saucelabs.com/jobs/%(session_id)s/video.flv",\
"provider":"streamer",\
"autoPlay":false,\
"autoBuffering":true}]}' % {'session_id': report.session_id}
additional_html.append(
html.div(
html.object(
html.param(value='true',
name='allowfullscreen'),
html.param(value='always',
name='allowscriptaccess'),
html.param(value='high',
name='quality'),
html.param(value='true',
name='cachebusting'),
html.param(value='#000000',
name='bgcolor'),
html.param(value=flash_vars.replace(' ', ''),
name='flashvars'),
width='100%',
height='100%',
type='application/x-shockwave-flash',
data='http://saucelabs.com/flowplayer/flowplayer-3.2.5.swf?0.2566397726976729',
name='player_api',
id='player_api'),
id='player%s' % report.session_id,
class_='video'))
if 'Screenshot' in links:
additional_html.append(
html.div(
html.a(html.img(src=links['Screenshot']),
href=links['Screenshot']),
class_='screenshot'))
if report.longrepr:
log = html.div(class_='log')
for line in str(report.longrepr).splitlines():
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(cgi.escape(line)),
class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
self.test_logs.append(
html.tr(
html.td(*additional_html,
colspan='5')))
开发者ID:klrmn,项目名称:pytest-mozwebqa,代码行数:101,代码来源:html_report.py
示例15: generate_html
def generate_html(self, results_list):
tests = sum([results.testsRun for results in results_list])
failures = sum([len(results.failures) for results in results_list])
expected_failures = sum([len(results.expectedFailures) for results in results_list])
skips = sum([len(results.skipped) for results in results_list])
errors = sum([len(results.errors) for results in results_list])
passes = sum([results.passed for results in results_list])
unexpected_passes = sum([len(results.unexpectedSuccesses) for results in results_list])
test_time = self.elapsedtime.total_seconds()
test_logs = []
def _extract_html(test, class_name, duration=0, text='', result='passed', debug=None):
cls_name = class_name
tc_name = unicode(test)
tc_time = duration
additional_html = []
debug = debug or {}
links_html = []
if result in ['skipped', 'failure', 'expected failure', 'error']:
if debug.get('screenshot'):
screenshot = 'data:image/png;base64,%s' % debug['screenshot']
additional_html.append(html.div(
html.a(html.img(src=screenshot), href="#"),
class_='screenshot'))
for name, content in debug.items():
try:
if 'screenshot' in name:
href = '#'
else:
# use base64 to avoid that some browser (such as Firefox, Opera)
# treats '#' as the start of another link if the data URL contains.
# use 'charset=utf-8' to show special characters like Chinese.
href = 'data:text/plain;charset=utf-8;base64,%s' % base64.b64encode(content)
links_html.append(html.a(
name.title(),
class_=name,
href=href,
target='_blank'))
links_html.append(' ')
except:
pass
log = html.div(class_='log')
for line in text.splitlines():
separator = line.startswith(' ' * 10)
if separator:
log.append(line[:80])
else:
if line.lower().find("error") != -1 or line.lower().find("exception") != -1:
log.append(html.span(raw(cgi.escape(line)), class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
test_logs.append(html.tr([
html.td(result.title(), class_='col-result'),
html.td(cls_name, class_='col-class'),
html.td(tc_name, class_='col-name'),
html.td(tc_time, class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='debug')],
class_=result.lower() + ' results-table-row'))
for results in results_list:
for test in results.tests_passed:
_extract_html(test.name, test.test_class)
for result in results.skipped:
_extract_html(result.name, result.test_class, text='\n'.join(result.output), result='skipped')
for result in results.failures:
_extract_html(result.name, result.test_class, text='\n'.join(result.output), result='failure', debug=result.debug)
for result in results.expectedFailures:
_extract_html(result.name, result.test_class, text='\n'.join(result.output), result='expected failure', debug=result.debug)
for test in results.unexpectedSuccesses:
_extract_html(test.name, test.test_class, result='unexpected pass')
for result in results.errors:
_extract_html(result.name, result.test_class, text='\n'.join(result.output), result='error', debug=result.debug)
generated = datetime.datetime.now()
doc = html.html(
html.head(
html.meta(charset='utf-8'),
html.title('Test Report'),
html.style(raw(pkg_resources.resource_string(
__name__, os.path.sep.join(['resources', 'report', 'style.css']))),
type='text/css')),
html.body(
html.script(raw(pkg_resources.resource_string(
__name__, os.path.sep.join(['resources', 'report', 'jquery.js']))),
type='text/javascript'),
html.script(raw(pkg_resources.resource_string(
__name__, os.path.sep.join(['resources', 'report', 'main.js']))),
type='text/javascript'),
html.p('Report generated on %s at %s by %s %s' % (
generated.strftime('%d-%b-%Y'),
generated.strftime('%H:%M:%S'),
__name__, __version__)),
html.h2('Summary'),
#.........这里部分代码省略.........
开发者ID:Allan019,项目名称:gaia,代码行数:101,代码来源:runtests.py
示例16: _appendrow
def _appendrow(self, result, report):
import pytest_mozwebqa
(testclass, testmethod) = pytest_mozwebqa.split_class_and_test_names(report.nodeid)
time = getattr(report, 'duration', 0.0)
links = {}
if hasattr(report, 'debug') and any(report.debug.values()):
(relative_path, full_path) = self._debug_paths(testclass, testmethod)
if report.debug['screenshots']:
filename = 'screenshot.png'
f = open(os.path.join(full_path, filename), 'wb')
f.write(base64.decodestring(report.debug['screenshots'][-1]))
links.update({'Screenshot': os.path.join(relative_path, filename)})
if report.debug['html']:
filename = 'html.txt'
f = open(os.path.join(full_path, filename), 'wb')
f.write(report.debug['html'][-1])
links.update({'HTML': os.path.join(relative_path, filename)})
# Log may contain passwords, etc so we only capture it for tests marked as public
if report.debug['logs'] and 'public' in report.keywords:
filename = 'log.txt'
f = open(os.path.join(full_path, filename), 'wb')
f.write(report.debug['logs'][-1])
links.update({'Log': os.path.join(relative_path, filename)})
if report.debug['network_traffic']:
filename = 'networktraffic.json'
f = open(os.path.join(full_path, filename), 'wb')
f.write(report.debug['network_traffic'][-1])
links.update({'Network Traffic': os.path.join(relative_path, filename)})
if report.debug['urls']:
links.update({'Failing URL': report.debug['urls'][-1]})
if self.config.option.sauce_labs_credentials_file and hasattr(report, 'session_id'):
self.sauce_labs_job = sauce_labs.Job(report.session_id)
if hasattr(self, 'sauce_labs_job'):
links['Sauce Labs Job'] = self.sauce_labs_job.url
links_html = []
for name, path in links.iteritems():
links_html.append(html.a(name, href=path))
links_html.append(' ')
additional_html = []
if not 'Passed' in result:
if hasattr(self, 'sauce_labs_job'):
additional_html.append(self.sauce_labs_job.video_html)
if 'Screenshot' in links:
additional_html.append(
html.div(
html.a(html.img(src=links['Screenshot']),
href=links['Screenshot']),
class_='screenshot'))
if report.longrepr:
log = html.div(class_='log')
for line in str(report.longrepr).splitlines():
separator = line.startswith('_ ' * 10)
if separator:
log.append(line[:80])
else:
exception = line.startswith("E ")
if exception:
log.append(html.span(raw(cgi.escape(line)),
class_='error'))
else:
log.append(raw(cgi.escape(line)))
log.append(html.br())
additional_html.append(log)
self.test_logs.append(html.tr([
html.td(result, class_='col-result'),
html.td(testclass, class_='col-class'),
html.td(testmethod, class_='col-name'),
html.td(round(time), class_='col-duration'),
html.td(links_html, class_='col-links'),
html.td(additional_html, class_='debug')], class_=result.lower() + ' results-table-row'))
开发者ID:RonnyPfannschmidt,项目名称:pytest-mozwebqa,代码行数:85,代码来源:html_report.py
示例17: pytest_sessionfinish
def pytest_sessionfinish(self, session, exitstatus, __multicall__):
self._make_report_dir()
logfile = py.std.codecs.open(self.logfile, 'w', encoding='utf-8')
suite_stop_time = time.time()
suite_time_delta = suite_stop_time - self.suite_start_time
numtests = self.passed + self.failed + self.xpassed + self.xfailed
server = self.config.option.sauce_labs_credentials_file and \
'Sauce Labs' or 'http://%s:%s' % (self.config.option.host, self.config.option.port)
browser = self.config.option.browser_name and \
self.config.option.browser_version and \
self.config.option.platform and \
'%s %s on %s' % (str(self.config.option.browser_name).title(),
self.config.option.browser_version,
str(self.config.option.platform).title()) or \
self.config.option.environment or \
|
请发表评论