fix: upgrade pip before running tox (#522)
* fix: upgrade pip before running tox * Use "-X utf8" to solve encoding issues on Windows * Disable pypy3.8 on windows
This commit is contained in:
parent
3fbfd2518f
commit
ea89db8e02
|
@ -63,9 +63,10 @@ jobs:
|
|||
name: pypy3-ubuntu
|
||||
python-version: pypy-3.8
|
||||
|
||||
- os: windows-latest
|
||||
name: pypy3-windows
|
||||
python-version: pypy-3.8
|
||||
# TODO: This test takes 10(!) times as long as the regular py38 on Windows
|
||||
# - os: windows-latest
|
||||
# name: pypy3-windows
|
||||
# python-version: pypy-3.8
|
||||
|
||||
# https://github.com/pytest-dev/pytest-html/issues/482
|
||||
- os: macOS-latest
|
||||
|
@ -79,27 +80,37 @@ jobs:
|
|||
steps:
|
||||
- name: Set Newline Behavior
|
||||
run : git config --global core.autocrlf false
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: ${{ matrix['python-version'] }}
|
||||
|
||||
- name: Upgrade pip
|
||||
run: python -m pip install --upgrade pip
|
||||
|
||||
- name: Install tox
|
||||
run: python -m pip install --upgrade tox
|
||||
|
||||
- name: Get Tox Environment Name From Matrix Name
|
||||
uses: rishabhgupta/split-by@v1
|
||||
id: split-matrix-name
|
||||
with:
|
||||
string: '${{ matrix.name }}'
|
||||
split-by: '-'
|
||||
|
||||
- name: Test with coverage
|
||||
if: "! contains(matrix.name, 'pypy3')"
|
||||
run: python -m tox -e ${{ steps.split-matrix-name.outputs._0}}-cov
|
||||
run: python -m tox -rvv -e ${{ steps.split-matrix-name.outputs._0}}-cov
|
||||
|
||||
- name: Test without coverage
|
||||
if: "contains(matrix.name, 'pypy3')"
|
||||
run: python -m tox -e ${{ steps.split-matrix-name.outputs._0}}
|
||||
|
||||
# TODO: https://github.com/pytest-dev/pytest-html/issues/481
|
||||
# - name: Upload coverage to codecov
|
||||
# if: github.event.schedule == ''
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
import builtins
|
||||
import json
|
||||
import os
|
||||
import random
|
||||
|
@ -13,28 +12,6 @@ import pytest
|
|||
|
||||
pytest_plugins = ("pytester",)
|
||||
|
||||
if os.name == "nt":
|
||||
# Force a utf-8 encoding on file io (since by default windows does not). See
|
||||
# https://github.com/pytest-dev/pytest-html/issues/336
|
||||
# If we drop support for Python 3.6 and earlier could use python -X utf8 instead.
|
||||
_real_open = builtins.open
|
||||
|
||||
def _open(file, mode="r", buffering=-1, encoding=None, *args, **kwargs):
|
||||
if mode in ("r", "w") and encoding is None:
|
||||
encoding = "utf-8"
|
||||
|
||||
return _real_open(file, mode, buffering, encoding, *args, **kwargs)
|
||||
|
||||
builtins.open = _open
|
||||
|
||||
|
||||
def remove_deprecation_from_recwarn(recwarn):
|
||||
# TODO: Temporary hack until they fix
|
||||
# https://github.com/pytest-dev/pytest/issues/6936
|
||||
return [
|
||||
item for item in recwarn if "TerminalReporter.writer" not in repr(item.message)
|
||||
]
|
||||
|
||||
|
||||
def run(testdir, path="report.html", *args):
|
||||
path = testdir.tmpdir.join(path)
|
||||
|
@ -972,12 +949,12 @@ class TestHTML:
|
|||
assert result.ret == 0
|
||||
assert not re.search(r"\[[\d;]+m", html)
|
||||
|
||||
@pytest.mark.parametrize("content", [("'foo'"), ("u'\u0081'")])
|
||||
@pytest.mark.parametrize("content", ["'foo'", "u'\u0081'"])
|
||||
def test_utf8_longrepr(self, testdir, content):
|
||||
testdir.makeconftest(
|
||||
f"""
|
||||
import pytest
|
||||
@pytest.hookimpl(hookwrapper=True)
|
||||
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
|
||||
def pytest_runtest_makereport(item, call):
|
||||
outcome = yield
|
||||
report = outcome.get_result()
|
||||
|
@ -1021,8 +998,6 @@ class TestHTML:
|
|||
cssargs.extend(["--css", path])
|
||||
result, html = run(testdir, "report.html", "--self-contained-html", *cssargs)
|
||||
assert result.ret == 0
|
||||
warnings = remove_deprecation_from_recwarn(recwarn)
|
||||
assert len(warnings) == 0
|
||||
for k, v in css.items():
|
||||
assert str(v["path"]) in html
|
||||
assert v["style"] in html
|
||||
|
|
4
tox.ini
4
tox.ini
|
@ -16,8 +16,8 @@ deps =
|
|||
ansi2html # soft-dependency
|
||||
cov: pytest-cov
|
||||
commands =
|
||||
!cov: pytest -v -r a --color=yes --html={envlogdir}/report.html --self-contained-html {posargs}
|
||||
cov: pytest -v -r a --color=yes --html={envlogdir}/report.html --self-contained-html --cov={envsitepackagesdir}/pytest_html --cov-report=term --cov-report=xml {posargs}
|
||||
!cov: python -X utf8 -m pytest -v -r a --color=yes --html={envlogdir}/report.html --self-contained-html {posargs}
|
||||
cov: python -X utf8 -m pytest -v -r a --color=yes --html={envlogdir}/report.html --self-contained-html --cov={envsitepackagesdir}/pytest_html --cov-report=term --cov-report=xml {posargs}
|
||||
|
||||
[testenv:linting]
|
||||
skip_install = True
|
||||
|
|
Loading…
Reference in New Issue