Skip to content

Commit 2134860

Browse files
committed
Chore: General JS cleanup
1 parent f740846 commit 2134860

File tree

9 files changed

+41
-84
lines changed

9 files changed

+41
-84
lines changed

src/pytest_html/basereport.py

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,18 @@ def _asset_filename(self, test_id, extra_index, test_index, file_extension):
4646

4747
def _generate_report(self, self_contained=False):
4848
generated = datetime.datetime.now()
49-
rendered_report = self._render_html(
50-
generated.strftime("%d-%b-%Y"),
51-
generated.strftime("%H:%M:%S"),
52-
__version__,
53-
self.css,
49+
test_data = cleanup_unserializable(self._report.data)
50+
test_data = json.dumps(test_data)
51+
rendered_report = self._template.render(
52+
title=self._report.title,
53+
date=generated.strftime("%d-%b-%Y"),
54+
time=generated.strftime("%H:%M:%S"),
55+
version=__version__,
56+
styles=self.css,
5457
run_count=self._run_count(),
5558
self_contained=self_contained,
5659
outcomes=self._report.data["outcomes"],
57-
test_data=cleanup_unserializable(self._report.data),
60+
test_data=test_data,
5861
table_head=self._report.data["resultsTableHeader"],
5962
prefix=self._report.data["additionalSummary"]["prefix"],
6063
summary=self._report.data["additionalSummary"]["summary"],
@@ -118,36 +121,6 @@ def _process_extras(self, report, test_id):
118121

119122
return report_extras
120123

121-
def _render_html(
122-
self,
123-
date,
124-
time,
125-
version,
126-
styles,
127-
run_count,
128-
self_contained,
129-
outcomes,
130-
test_data,
131-
table_head,
132-
summary,
133-
prefix,
134-
postfix,
135-
):
136-
return self._template.render(
137-
date=date,
138-
time=time,
139-
version=version,
140-
styles=styles,
141-
run_count=run_count,
142-
self_contained=self_contained,
143-
outcomes=outcomes,
144-
test_data=json.dumps(test_data),
145-
table_head=table_head,
146-
summary=summary,
147-
prefix=prefix,
148-
postfix=postfix,
149-
)
150-
151124
def _write_report(self, rendered_report):
152125
with self._report_path.open("w", encoding="utf-8") as f:
153126
f.write(rendered_report)

src/pytest_html/report_data.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ def __init__(self, config):
2929
}
3030

3131
self._data = {
32-
"title": "",
3332
"collectedItems": 0,
3433
"totalDuration": 0,
3534
"runningState": "not_started",

src/pytest_html/resources/index.jinja2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8"/>
5-
<title id="head-title"></title>
5+
<title id="head-title">{{ title }}</title>
66
{%- if self_contained %}
77
<style type="text/css">
88
{{- styles|safe }}
@@ -12,7 +12,7 @@
1212
{%- endif %}
1313
</head>
1414
<body>
15-
<h1 id="title"></h1>
15+
<h1 id="title">{{ title }}</h1>
1616
<p>Report generated on {{ date }} at {{ time }} by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a>
1717
v{{ version }}</p>
1818
<div id="environment-header" class="collapser">

src/pytest_html/scripts/datamanager.js

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,21 @@ class DataManager {
1919
get allData() {
2020
return { ...this.data }
2121
}
22+
2223
resetRender() {
2324
this.renderData = { ...this.data }
2425
}
26+
2527
setRender(data) {
2628
this.renderData.tests = [...data]
2729
}
30+
2831
toggleCollapsedItem(id) {
2932
this.renderData.tests = this.renderData.tests.map((test) =>
3033
test.id === id ? { ...test, collapsed: !test.collapsed } : test,
3134
)
3235
}
36+
3337
set allCollapsed(collapsed) {
3438
this.renderData = { ...this.renderData, tests: [...this.renderData.tests.map((test) => (
3539
{ ...test, collapsed }
@@ -39,24 +43,10 @@ class DataManager {
3943
get testSubset() {
4044
return [...this.renderData.tests]
4145
}
42-
get allTests() {
43-
return [...this.data.tests]
44-
}
45-
get title() {
46-
return this.renderData.title
47-
}
46+
4847
get environment() {
4948
return this.renderData.environment
5049
}
51-
get collectedItems() {
52-
return this.renderData.collectedItems
53-
}
54-
get isFinished() {
55-
return this.data.runningState === 'Finished'
56-
}
57-
get formattedDuration() {
58-
return this.data.totalDuration.formatted
59-
}
6050
}
6151

6252
module.exports = {

src/pytest_html/scripts/dom.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const mediaViewer = require('./mediaviewer.js')
2-
const templateEnvRow = document.querySelector('#template_environment_row')
3-
const templateCollGroup = document.querySelector('#template_table-colgroup')
4-
const templateResult = document.querySelector('#template_results-table__tbody')
5-
const listHeaderEmpty = document.querySelector('#template_results-table__head--empty')
2+
const templateEnvRow = document.getElementById('template_environment_row')
3+
const templateCollGroup = document.getElementById('template_table-colgroup')
4+
const templateResult = document.getElementById('template_results-table__tbody')
5+
const listHeaderEmpty = document.getElementById('template_results-table__head--empty')
66

77
function htmlToElements(html) {
88
const temp = document.createElement('template')

src/pytest_html/scripts/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const { redraw, bindEvents, renderStatic } = require('./main.js')
22
const { doInitFilter } = require('./filter.js')
33
const { doInitSort } = require('./sort.js')
44
const { manager } = require('./datamanager.js')
5-
const data = JSON.parse(document.querySelector('#data-container').dataset.jsonblob)
5+
const data = JSON.parse(document.getElementById('data-container').dataset.jsonblob)
66

77
function init() {
88
manager.setManager(data)

src/pytest_html/scripts/main.js

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,21 @@ const removeChildren = (node) => {
1111
}
1212

1313
const renderStatic = () => {
14-
const renderTitle = () => {
15-
const title = manager.title
16-
document.querySelector('#title').innerText = title
17-
document.querySelector('#head-title').innerText = title
18-
}
1914
const renderEnvironmentTable = () => {
2015
const environment = manager.environment
2116
const rows = Object.keys(environment).map((key) => dom.getStaticRow(key, environment[key]))
22-
const table = document.querySelector('#environment')
17+
const table = document.getElementById('environment')
2318
removeChildren(table)
2419
rows.forEach((row) => table.appendChild(row))
2520
}
26-
renderTitle()
2721
renderEnvironmentTable()
2822
}
2923

3024
const renderContent = (tests) => {
3125
const sortAttr = getSort(manager.allData.initialSort)
3226
const sortAsc = JSON.parse(getSortDirection())
3327
const rows = tests.map(dom.getResultTBody)
34-
const table = document.querySelector('#results-table')
28+
const table = document.getElementById('results-table')
3529
const tableHeader = document.getElementById('template_results-table__head').content.cloneNode(true)
3630

3731
removeChildren(table)
@@ -66,7 +60,7 @@ const renderContent = (tests) => {
6660
})
6761
}
6862

69-
const renderDerived = (tests, collectedItems, isFinished, formattedDuration) => {
63+
const renderDerived = () => {
7064
const currentFilter = getVisible()
7165
possibleFilters.forEach((result) => {
7266
const input = document.querySelector(`input[data-test-result="${result}"]`)
@@ -83,9 +77,9 @@ const bindEvents = () => {
8377
redraw()
8478
}
8579

86-
const header = document.querySelector('#environment-header')
80+
const header = document.getElementById('environment-header')
8781
header.addEventListener('click', () => {
88-
const table = document.querySelector('#environment')
82+
const table = document.getElementById('environment')
8983
table.classList.toggle('hidden')
9084
header.classList.toggle('collapser')
9185
header.classList.toggle('expander')
@@ -94,21 +88,21 @@ const bindEvents = () => {
9488
findAll('input[name="filter_checkbox"]').forEach((elem) => {
9589
elem.addEventListener('click', filterColumn)
9690
})
97-
document.querySelector('#show_all_details').addEventListener('click', () => {
91+
document.getElementById('show_all_details').addEventListener('click', () => {
9892
manager.allCollapsed = false
9993
redraw()
10094
})
101-
document.querySelector('#hide_all_details').addEventListener('click', () => {
95+
document.getElementById('hide_all_details').addEventListener('click', () => {
10296
manager.allCollapsed = true
10397
redraw()
10498
})
10599
}
106100

107101
const redraw = () => {
108-
const { testSubset, allTests, collectedItems, isFinished, formattedDuration } = manager
102+
const { testSubset } = manager
109103

110104
renderContent(testSubset)
111-
renderDerived(allTests, collectedItems, isFinished, formattedDuration )
105+
renderDerived()
112106
}
113107

114108
module.exports = {

src/pytest_html/scripts/mediaviewer.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ class MediaViewer {
33
this.assets = assets
44
this.index = 0
55
}
6+
67
nextActive() {
78
this.index = this.index === this.assets.length - 1 ? 0 : this.index + 1
89
return [this.activeFile, this.index]
910
}
11+
1012
prevActive() {
1113
this.index = this.index === 0 ? this.assets.length - 1 : this.index -1
1214
return [this.activeFile, this.index]
@@ -15,6 +17,7 @@ class MediaViewer {
1517
get currentIndex() {
1618
return this.index
1719
}
20+
1821
get activeFile() {
1922
return this.assets[this.index]
2023
}

src/pytest_html/scripts/storage.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
const possibleResults = [
2-
{ result: 'passed', label: 'Passed' },
3-
{ result: 'skipped', label: 'Skipped' },
4-
{ result: 'failed', label: 'Failed' },
5-
{ result: 'error', label: 'Errors' },
6-
{ result: 'xfailed', label: 'Unexpected failures' },
7-
{ result: 'xpassed', label: 'Unexpected passes' },
8-
{ result: 'rerun', label: 'Reruns' },
1+
const possibleFilters = [
2+
'passed',
3+
'skipped',
4+
'failed',
5+
'error',
6+
'xfailed',
7+
'xpassed',
8+
'rerun',
99
]
10-
const possibleFilters = possibleResults.map((item) => item.result)
1110

1211
const getVisible = () => {
1312
const url = new URL(window.location.href)
@@ -113,5 +112,4 @@ module.exports = {
113112
setSortDirection,
114113
getCollapsedCategory,
115114
possibleFilters,
116-
possibleResults,
117115
}

0 commit comments

Comments
 (0)