diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 06e6b16c..68a5f2f2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.ref != github.event.repository.default_branch }} + cancel-in-progress: ${{ ! contains(github.ref, github.event.repository.default_branch) }} jobs: build_docs: diff --git a/src/pytest_html/basereport.py b/src/pytest_html/basereport.py index e2f967d2..c5297375 100644 --- a/src/pytest_html/basereport.py +++ b/src/pytest_html/basereport.py @@ -246,8 +246,8 @@ def pytest_sessionstart(self, session): header_cells = Header() session.config.hook.pytest_html_results_table_header(cells=header_cells) - self._report.set_data("resultsTableHeader", header_cells.html) + self._report.set_data("headerPops", header_cells.get_pops()) self._report.set_data("runningState", "Started") self._generate_report() diff --git a/src/pytest_html/scripts/main.js b/src/pytest_html/scripts/main.js index 3f0f31b7..610b193b 100644 --- a/src/pytest_html/scripts/main.js +++ b/src/pytest_html/scripts/main.js @@ -44,6 +44,19 @@ const renderContent = (tests) => { table.querySelectorAll('.extra').forEach((item) => { item.colSpan = document.querySelectorAll('th').length }) + + const { headerPops } = manager.renderData + if (headerPops > 0) { + // remove 'headerPops' number of header columns + findAll('#results-table-head th').splice(-headerPops).forEach(column => column.remove()) + + // remove 'headerPops' number of row columns + const resultRows = findAll('.results-table-row') + resultRows.forEach((elem) => { + findAll('td:not(.extra)', elem).splice(-headerPops).forEach(column => column.remove()) + }) + } + findAll('.sortable').forEach((elem) => { elem.addEventListener('click', (evt) => { const { target: element } = evt diff --git a/src/pytest_html/scripts/sort.js b/src/pytest_html/scripts/sort.js index b3c63ed7..0349e162 100644 --- a/src/pytest_html/scripts/sort.js +++ b/src/pytest_html/scripts/sort.js @@ -29,7 +29,6 @@ const doInitSort = () => { const ascending = storageModule.getSortDirection() const list = manager.testSubset const initialOrder = ['Error', 'Failed', 'Rerun', 'XFailed', 'XPassed', 'Skipped', 'Passed'] - console.log(list) if (type?.toLowerCase() === 'original') { manager.setRender(list) } else { diff --git a/src/pytest_html/table.py b/src/pytest_html/table.py index d7b61ce7..7fc6e3a0 100644 --- a/src/pytest_html/table.py +++ b/src/pytest_html/table.py @@ -33,6 +33,7 @@ class Cell(Table): def __init__(self): super().__init__() self._append_counter = 0 + self._pop_counter = 0 self._sortables = dict() def __setitem__(self, key, value): @@ -69,10 +70,10 @@ def insert(self, index, html): self._html[index] = html def pop(self, *args): - warnings.warn( - "'pop' is deprecated and no longer supported.", - DeprecationWarning, - ) + self._pop_counter += 1 + + def get_pops(self): + return self._pop_counter def _extract_sortable(self, html): match = re.search(r'