Skip to content

Commit

Permalink
Merge pull request #5000 from blueyed/merge-master-into-features
Browse files Browse the repository at this point in the history
Merge master into features
  • Loading branch information
nicoddemus authored Mar 26, 2019
2 parents 4148663 + e1ae469 commit ee96214
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 31 deletions.
2 changes: 1 addition & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[run]
include =
*/src/*
src/*
testing/*
*/lib/python*/site-packages/_pytest/*
*/lib/python*/site-packages/pytest.py
Expand Down
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
# Specialized factors for py37.
# Coverage for:
# - test_sys_breakpoint_interception (via pexpect).
- env: TOXENV=py37-pexpect,py37-trial PYTEST_COVERAGE=1
- env: TOXENV=py37-pexpect,py37-twisted PYTEST_COVERAGE=1
- env: TOXENV=py37-pluggymaster-xdist
- env: TOXENV=py37-freeze

Expand All @@ -86,7 +86,7 @@ jobs:
- stage: baseline
# Coverage for:
# - _pytest.unittest._handle_skip (via pexpect).
env: TOXENV=py27-pexpect,py27-trial PYTEST_COVERAGE=1
env: TOXENV=py27-pexpect,py27-twisted PYTEST_COVERAGE=1
python: '2.7'
# Use py36 here for faster baseline.
- env: TOXENV=py36-xdist
Expand Down
10 changes: 5 additions & 5 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ jobs:
# - numpy
# - pytester's LsofFdLeakChecker (being skipped)
PYTEST_COVERAGE: '1'
py27-trial:
py27-twisted:
python.version: '2.7'
tox.env: 'py27-trial'
tox.env: 'py27-twisted'
python.needs_vc: True
py27-pluggymaster-xdist:
python.version: '2.7'
tox.env: 'py27-pluggymaster-xdist'
# Coverage for:
# - except-IOError in _attempt_to_close_capture_file for py2.
# Also seen with py27-nobyte (using xdist), and py27-xdist.
# But no exception with py27-pexpect,py27-trial,py27-numpy.
# But no exception with py27-pexpect,py27-twisted,py27-numpy.
PYTEST_COVERAGE: '1'
pypy:
python.version: 'pypy'
Expand Down Expand Up @@ -76,9 +76,9 @@ jobs:
py37-linting/docs/doctesting:
python.version: '3.7'
tox.env: 'linting,docs,doctesting'
py37-trial/numpy:
py37-twisted/numpy:
python.version: '3.7'
tox.env: 'py37-trial,py37-numpy'
tox.env: 'py37-twisted,py37-numpy'
py37-pluggymaster-xdist:
python.version: '3.7'
tox.env: 'py37-pluggymaster-xdist'
Expand Down
1 change: 1 addition & 0 deletions changelog/4928.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix line offsets with ``ScopeMismatch`` errors.
4 changes: 2 additions & 2 deletions doc/en/reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -882,7 +882,7 @@ pytest_mark
**Tutorial**: :ref:`scoped-marking`

Can be declared at the **global** level in *test modules* to apply one or more :ref:`marks <marks ref>` to all
test functions and methods. Can be either a single mark or a sequence of marks.
test functions and methods. Can be either a single mark or a list of marks.

.. code-block:: python
Expand All @@ -895,7 +895,7 @@ test functions and methods. Can be either a single mark or a sequence of marks.
import pytest
pytestmark = (pytest.mark.integration, pytest.mark.slow)
pytestmark = [pytest.mark.integration, pytest.mark.slow]
PYTEST_DONT_REWRITE (module docstring)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
2 changes: 1 addition & 1 deletion src/_pytest/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -614,7 +614,7 @@ def _factorytraceback(self):
fs, lineno = getfslineno(factory)
p = self._pyfuncitem.session.fspath.bestrelpath(fs)
args = _format_args(factory)
lines.append("%s:%d: def %s%s" % (p, lineno, factory.__name__, args))
lines.append("%s:%d: def %s%s" % (p, lineno + 1, factory.__name__, args))
return lines

def _getscopeitem(self, scope):
Expand Down
1 change: 1 addition & 0 deletions src/_pytest/mark/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def pytest_addoption(parser):
"other' matches all test functions and classes whose name "
"contains 'test_method' or 'test_other', while -k 'not test_method' "
"matches those that don't contain 'test_method' in their names. "
"-k 'not test_method and not test_other' will eliminate the matches. "
"Additionally keywords are matched to classes and functions "
"containing extra names in their 'extra_keyword_matches' set, "
"as well as functions which have names assigned directly to them.",
Expand Down
5 changes: 3 additions & 2 deletions testing/python/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -1030,8 +1030,8 @@ def test_add(arg2):
result.stdout.fnmatch_lines(
[
"*ScopeMismatch*involved factories*",
"* def arg2*",
"* def arg1*",
"test_receives_funcargs_scope_mismatch.py:6: def arg2(arg1)",
"test_receives_funcargs_scope_mismatch.py:2: def arg1()",
"*1 error*",
]
)
Expand Down Expand Up @@ -1141,6 +1141,7 @@ def __init__(self, request):
values = reprec.getfailedcollections()
assert len(values) == 1

@pytest.mark.filterwarnings("ignore::pytest.PytestDeprecationWarning")
def test_request_can_be_overridden(self, testdir):
testdir.makepyfile(
"""
Expand Down
12 changes: 11 additions & 1 deletion testing/test_capture.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,22 @@ def test_unicode():
def test_collect_capturing(testdir):
p = testdir.makepyfile(
"""
import sys
print("collect %s failure" % 13)
sys.stderr.write("collect %s_stderr failure" % 13)
import xyz42123
"""
)
result = testdir.runpytest(p)
result.stdout.fnmatch_lines(["*Captured stdout*", "*collect 13 failure*"])
result.stdout.fnmatch_lines(
[
"*Captured stdout*",
"collect 13 failure",
"*Captured stderr*",
"collect 13_stderr failure",
]
)


class TestPerTestCapturing(object):
Expand Down
3 changes: 2 additions & 1 deletion testing/test_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ def __repr__(self):
class TestBrokenClass(object):
def test_explicit_bad_repr(self):
t = BrokenRepr1()
pytest.raises(Exception, 'repr(t)')
with pytest.raises(Exception, match="I'm a broken repr"):
repr(t)
def test_implicit_bad_repr1(self):
t = BrokenRepr1()
Expand Down
6 changes: 4 additions & 2 deletions testing/test_warnings.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,12 @@ def test_as_errors(testdir, pyfile_with_warnings, method):
testdir.makeini(
"""
[pytest]
filterwarnings= error
filterwarnings=error
"""
)
result = testdir.runpytest(*args)
# Use a subprocess, since changing logging level affects other threads
# (xdist).
result = testdir.runpytest_subprocess(*args)
result.stdout.fnmatch_lines(
[
"E UserWarning: user warning",
Expand Down
20 changes: 6 additions & 14 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ envlist =
py38
pypy
pypy3
{py27,py37}-{pexpect,xdist,trial,numpy,pluggymaster}
{py27,py37}-{pexpect,xdist,twisted,numpy,pluggymaster}
py27-nobyte-xdist
doctesting
py37-freeze
Expand All @@ -26,7 +26,7 @@ commands =
coverage: coverage report
passenv = USER USERNAME COVERAGE_* TRAVIS PYTEST_ADDOPTS
setenv =
_PYTEST_TOX_DEFAULT_POSARGS={env:_PYTEST_TOX_POSARGS_LSOF:} {env:_PYTEST_TOX_POSARGS_PEXPECT:} {env:_PYTEST_TOX_POSARGS_XDIST:}
_PYTEST_TOX_DEFAULT_POSARGS={env:_PYTEST_TOX_POSARGS_LSOF:} {env:_PYTEST_TOX_POSARGS_PEXPECT:} {env:_PYTEST_TOX_POSARGS_TWISTED:} {env:_PYTEST_TOX_POSARGS_XDIST:}

# Configuration to run with coverage similar to Travis/Appveyor, e.g.
# "tox -e py37-coverage".
Expand All @@ -42,12 +42,16 @@ setenv =
pexpect: _PYTEST_TOX_PLATFORM=linux|darwin
pexpect: _PYTEST_TOX_POSARGS_PEXPECT=testing/test_pdb.py testing/test_terminal.py testing/test_unittest.py

twisted: _PYTEST_TOX_POSARGS_TWISTED=testing/test_unittest.py

xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto
extras = testing
deps =
numpy: numpy
pexpect: pexpect
pluggymaster: git+https://github.com/pytest-dev/pluggy.git@master
twisted: twisted
twisted: unittest2
xdist: pytest-xdist>=1.13
{env:_PYTEST_TOX_EXTRA_DEP:}
platform = {env:_PYTEST_TOX_PLATFORM:.*}
Expand All @@ -67,18 +71,6 @@ basepython = python3
deps = pre-commit>=1.11.0
commands = pre-commit run --all-files --show-diff-on-failure

[testenv:py27-trial]
deps =
{[testenv]deps}
twisted
unittest2
commands =
{env:_PYTEST_TOX_COVERAGE_RUN:} pytest {posargs:testing/test_unittest.py}

[testenv:py37-trial]
deps = {[testenv:py27-trial]deps}
commands = {[testenv:py27-trial]commands}

[testenv:docs]
basepython = python3
usedevelop = True
Expand Down

0 comments on commit ee96214

Please sign in to comment.