Hello community,
here is the log from the commit of package python-pytest for openSUSE:Factory checked in at 2019-09-30 15:50:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest (Old)
and /work/SRC/openSUSE:Factory/.python-pytest.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest"
Mon Sep 30 15:50:03 2019 rev:49 rq:732742 version:5.1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest/python-pytest.changes 2019-09-23 12:03:17.189946224 +0200
+++ /work/SRC/openSUSE:Factory/.python-pytest.new.2352/python-pytest.changes 2019-09-30 15:50:07.586697227 +0200
@@ -1,0 +2,8 @@
+Mon Sep 23 12:30:16 UTC 2019 - Tomáš Chvátal
+
+- Update to 5.1.3:
+ * #5807: Fix pypy3.6 (nightly) on windows.
+ * #5811: Handle --fulltrace correctly with pytest.raises.
+ * #5819: Windows: Fix regression with conftest whose qualified name contains uppercase characters
+
+-------------------------------------------------------------------
Old:
----
pytest-5.1.2.tar.gz
New:
----
pytest-5.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest.spec ++++++
--- /var/tmp/diff_new_pack.0s1WA0/_old 2019-09-30 15:50:09.430692320 +0200
+++ /var/tmp/diff_new_pack.0s1WA0/_new 2019-09-30 15:50:09.434692309 +0200
@@ -27,7 +27,7 @@
%endif
%define skip_python2 1
Name: python-pytest%{psuffix}
-Version: 5.1.2
+Version: 5.1.3
Release: 0
Summary: Python testing tool with autodiscovery and detailed asserts
License: MIT
@@ -53,12 +53,23 @@
Obsoletes: python-pytest-doc
BuildArch: noarch
%if %{with test}
+BuildRequires: %{python_module Jinja2}
+BuildRequires: %{python_module Twisted}
+BuildRequires: %{python_module decorator}
BuildRequires: %{python_module hypothesis}
BuildRequires: %{python_module importlib_metadata >= 0.12}
+BuildRequires: %{python_module mock}
+BuildRequires: %{python_module nose}
+BuildRequires: %{python_module numpy}
+BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pygments-pytest}
BuildRequires: %{python_module pytest >= %{version}}
+BuildRequires: %{python_module pytest-forked}
+BuildRequires: %{python_module pytest-xdist}
+BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module xmlschema}
+BuildRequires: lsof
%endif
%if %{python3_version_nodots} < 36
Requires: python-pathlib2 >= 2.2.0
++++++ pytest-5.1.2.tar.gz -> pytest-5.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/.travis.yml new/pytest-5.1.3/.travis.yml
--- old/pytest-5.1.2/.travis.yml 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/.travis.yml 2019-09-21 15:49:40.000000000 +0200
@@ -42,9 +42,8 @@
- env: TOXENV=pypy3-xdist
python: 'pypy3'
- - env: TOXENV=py35
- dist: trusty
- python: '3.5.0'
+ - env: TOXENV=py35-xdist
+ python: '3.5'
# Coverage for:
# - pytester's LsofFdLeakChecker
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/AUTHORS new/pytest-5.1.3/AUTHORS
--- old/pytest-5.1.2/AUTHORS 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/AUTHORS 2019-09-21 15:49:40.000000000 +0200
@@ -98,6 +98,7 @@
Florian Bruhin
Floris Bruynooghe
Gabriel Reis
+Gene Wood
George Kussumoto
Georgy Dyuldin
Graham Horler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/CHANGELOG.rst new/pytest-5.1.3/CHANGELOG.rst
--- old/pytest-5.1.2/CHANGELOG.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/CHANGELOG.rst 2019-09-21 15:49:40.000000000 +0200
@@ -18,6 +18,22 @@
.. towncrier release notes start
+pytest 5.1.3 (2019-09-18)
+=========================
+
+Bug Fixes
+---------
+
+- `#5807 https://github.com/pytest-dev/pytest/issues/5807`_: Fix pypy3.6 (nightly) on windows.
+
+
+- `#5811 https://github.com/pytest-dev/pytest/issues/5811`_: Handle ``--fulltrace`` correctly with ``pytest.raises``.
+
+
+- `#5819 https://github.com/pytest-dev/pytest/issues/5819`_: Windows: Fix regression with conftest whose qualified name contains uppercase
+ characters (introduced by #5792).
+
+
pytest 5.1.2 (2019-08-30)
=========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/PKG-INFO new/pytest-5.1.3/PKG-INFO
--- old/pytest-5.1.2/PKG-INFO 2019-08-30 21:02:53.000000000 +0200
+++ new/pytest-5.1.3/PKG-INFO 2019-09-21 15:49:57.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest
-Version: 5.1.2
+Version: 5.1.3
Summary: pytest: simple powerful testing with Python
Home-page: https://docs.pytest.org/en/latest/
Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/Makefile new/pytest-5.1.3/doc/en/Makefile
--- old/pytest-5.1.2/doc/en/Makefile 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/Makefile 2019-09-21 15:49:40.000000000 +0200
@@ -16,7 +16,7 @@
--normalize "/[ \t]+\n/\n/" \
--normalize "~\$$REGENDOC_TMPDIR~/home/sweet/project~" \
--normalize "~/path/to/example~/home/sweet/project~" \
- --normalize "/in \d+.\d+s ==/in 0.12s ==/" \
+ --normalize "/in \d.\d\ds/in 0.12s/" \
--normalize "@/tmp/pytest-of-.*/pytest-\d+@PYTEST_TMPDIR@" \
--normalize "@pytest-(\d+)\\.[^ ,]+@pytest-\1.x.y@" \
--normalize "@(This is pytest version )(\d+)\\.[^ ,]+@\1\2.x.y@" \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/announce/index.rst new/pytest-5.1.3/doc/en/announce/index.rst
--- old/pytest-5.1.2/doc/en/announce/index.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/announce/index.rst 2019-09-21 15:49:40.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 2
+ release-5.1.3
release-5.1.2
release-5.1.1
release-5.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/announce/release-5.1.3.rst new/pytest-5.1.3/doc/en/announce/release-5.1.3.rst
--- old/pytest-5.1.2/doc/en/announce/release-5.1.3.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-5.1.3/doc/en/announce/release-5.1.3.rst 2019-09-21 15:49:40.000000000 +0200
@@ -0,0 +1,23 @@
+pytest-5.1.3
+=======================================
+
+pytest 5.1.3 has just been released to PyPI.
+
+This is a bug-fix release, being a drop-in replacement. To upgrade::
+
+ pip install --upgrade pytest
+
+The full changelog is available at https://docs.pytest.org/en/latest/changelog.html.
+
+Thanks to all who contributed to this release, among them:
+
+* Anthony Sottile
+* Bruno Oliveira
+* Christian Neumüller
+* Daniel Hahler
+* Gene Wood
+* Hugo
+
+
+Happy testing,
+The pytest Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/assert.rst new/pytest-5.1.3/doc/en/assert.rst
--- old/pytest-5.1.2/doc/en/assert.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/assert.rst 2019-09-21 15:49:40.000000000 +0200
@@ -279,7 +279,7 @@
E vals: 1 != 2
test_foocompare.py:12: AssertionError
- 1 failed in 0.02s
+ 1 failed in 0.12s
.. _assert-details:
.. _`assert introspection`:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/builtin.rst new/pytest-5.1.3/doc/en/builtin.rst
--- old/pytest-5.1.2/doc/en/builtin.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/builtin.rst 2019-09-21 15:49:40.000000000 +0200
@@ -160,7 +160,7 @@
in python < 3.6 this is a pathlib2.Path
- no tests ran in 0.00s
+ no tests ran in 0.12s
You can also interactively ask for help, e.g. by typing on the Python interactive prompt something like:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/cache.rst new/pytest-5.1.3/doc/en/cache.rst
--- old/pytest-5.1.2/doc/en/cache.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/cache.rst 2019-09-21 15:49:40.000000000 +0200
@@ -75,7 +75,7 @@
E Failed: bad luck
test_50.py:7: Failed
- 2 failed, 48 passed in 0.07s
+ 2 failed, 48 passed in 0.12s
If you then run it with ``--lf``:
@@ -230,7 +230,7 @@
test_caching.py:20: AssertionError
-------------------------- Captured stdout setup ---------------------------
running expensive computation...
- 1 failed in 0.02s
+ 1 failed in 0.12s
If you run it a second time, the value will be retrieved from
the cache and nothing will be printed:
@@ -249,7 +249,7 @@
E assert 42 == 23
test_caching.py:20: AssertionError
- 1 failed in 0.02s
+ 1 failed in 0.12s
See the :ref:`cache-api` for more details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/customize.rst new/pytest-5.1.3/doc/en/customize.rst
--- old/pytest-5.1.2/doc/en/customize.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/customize.rst 2019-09-21 15:49:40.000000000 +0200
@@ -107,8 +107,8 @@
# first look for pytest.ini files
path/pytest.ini
- path/setup.cfg # must also contain [tool:pytest] section to match
path/tox.ini # must also contain [pytest] section to match
+ path/setup.cfg # must also contain [tool:pytest] section to match
pytest.ini
... # all the way down to the root
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/example/markers.rst new/pytest-5.1.3/doc/en/example/markers.rst
--- old/pytest-5.1.2/doc/en/example/markers.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/example/markers.rst 2019-09-21 15:49:40.000000000 +0200
@@ -499,7 +499,7 @@
$ pytest -q -s
Mark(name='my_marker', args=(,), kwargs={})
.
- 1 passed in 0.01s
+ 1 passed in 0.12s
We can see that the custom marker has its argument set extended with the function ``hello_world``. This is the key difference between creating a custom marker as a callable, which invokes ``__call__`` behind the scenes, and using ``with_args``.
@@ -551,7 +551,7 @@
glob args=('class',) kwargs={'x': 2}
glob args=('module',) kwargs={'x': 1}
.
- 1 passed in 0.02s
+ 1 passed in 0.12s
marking platform specific tests with pytest
--------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/example/parametrize.rst new/pytest-5.1.3/doc/en/example/parametrize.rst
--- old/pytest-5.1.2/doc/en/example/parametrize.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/example/parametrize.rst 2019-09-21 15:49:40.000000000 +0200
@@ -54,7 +54,7 @@
$ pytest -q test_compute.py
.. [100%]
- 2 passed in 0.01s
+ 2 passed in 0.12s
We run only two computations, so we see two dots.
let's run the full monty:
@@ -73,7 +73,7 @@
E assert 4 < 4
test_compute.py:4: AssertionError
- 1 failed, 4 passed in 0.02s
+ 1 failed, 4 passed in 0.12s
As expected when running the full range of ``param1`` values
we'll get an error on the last one.
@@ -343,7 +343,7 @@
E Failed: deliberately failing for demo purposes
test_backends.py:8: Failed
- 1 failed, 1 passed in 0.02s
+ 1 failed, 1 passed in 0.12s
The first invocation with ``db == "DB1"`` passed while the second with ``db == "DB2"`` failed. Our ``db`` fixture function has instantiated each of the DB values during the setup phase while the ``pytest_generate_tests`` generated two according calls to the ``test_db_initialized`` during the collection phase.
@@ -454,7 +454,7 @@
E assert 1 == 2
test_parametrize.py:21: AssertionError
- 1 failed, 2 passed in 0.03s
+ 1 failed, 2 passed in 0.12s
Indirect parametrization with multiple fixtures
--------------------------------------------------------------
@@ -479,7 +479,7 @@
========================= short test summary info ==========================
SKIPPED [12] $REGENDOC_TMPDIR/CWD/multipython.py:30: 'python3.5' not found
SKIPPED [12] $REGENDOC_TMPDIR/CWD/multipython.py:30: 'python3.7' not found
- 3 passed, 24 skipped in 0.24s
+ 3 passed, 24 skipped in 0.12s
Indirect parametrization of optional implementations/imports
--------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/example/simple.rst new/pytest-5.1.3/doc/en/example/simple.rst
--- old/pytest-5.1.2/doc/en/example/simple.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/example/simple.rst 2019-09-21 15:49:40.000000000 +0200
@@ -65,7 +65,7 @@
test_sample.py:6: AssertionError
--------------------------- Captured stdout call ---------------------------
first
- 1 failed in 0.02s
+ 1 failed in 0.12s
And now with supplying a command line option:
@@ -89,7 +89,7 @@
test_sample.py:6: AssertionError
--------------------------- Captured stdout call ---------------------------
second
- 1 failed in 0.02s
+ 1 failed in 0.12s
You can see that the command line option arrived in our test. This
completes the basic pattern. However, one often rather wants to process
@@ -261,7 +261,7 @@
E Failed: not configured: 42
test_checkconfig.py:11: Failed
- 1 failed in 0.02s
+ 1 failed in 0.12s
If you only want to hide certain exceptions, you can set ``__tracebackhide__``
to a callable which gets the ``ExceptionInfo`` object. You can for example use
@@ -445,7 +445,7 @@
========================= slowest 3 test durations =========================
0.30s call test_some_are_slow.py::test_funcslow2
- 0.20s call test_some_are_slow.py::test_funcslow1
+ 0.21s call test_some_are_slow.py::test_funcslow1
0.10s call test_some_are_slow.py::test_funcfast
============================ 3 passed in 0.12s =============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/example/special.rst new/pytest-5.1.3/doc/en/example/special.rst
--- old/pytest-5.1.2/doc/en/example/special.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/example/special.rst 2019-09-21 15:49:40.000000000 +0200
@@ -81,4 +81,4 @@
.test other
.test_unit1 method called
.
- 4 passed in 0.01s
+ 4 passed in 0.12s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/fixture.rst new/pytest-5.1.3/doc/en/fixture.rst
--- old/pytest-5.1.2/doc/en/fixture.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/fixture.rst 2019-09-21 15:49:40.000000000 +0200
@@ -361,7 +361,7 @@
$ pytest -s -q --tb=no
FFteardown smtp
- 2 failed in 0.79s
+ 2 failed in 0.12s
We see that the ``smtp_connection`` instance is finalized after the two
tests finished execution. Note that if we decorated our fixture
@@ -515,7 +515,7 @@
$ pytest -s -q --tb=no
FFfinalizing (smtp.gmail.com)
- 2 failed in 0.77s
+ 2 failed in 0.12s
Let's quickly create another test module that actually sets the
server URL in its module namespace:
@@ -692,7 +692,7 @@
test_module.py:13: AssertionError
------------------------- Captured stdout teardown -------------------------
finalizing
- 4 failed in 1.69s
+ 4 failed in 0.12s
We see that our two test functions each ran twice, against the different
``smtp_connection`` instances. Note also, that with the ``mail.python.org``
@@ -1043,7 +1043,7 @@
$ pytest -q
.. [100%]
- 2 passed in 0.01s
+ 2 passed in 0.12s
You can specify multiple fixtures like this:
@@ -1151,7 +1151,7 @@
$ pytest -q
.. [100%]
- 2 passed in 0.01s
+ 2 passed in 0.12s
Here is how autouse fixtures work in other scopes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/getting-started.rst new/pytest-5.1.3/doc/en/getting-started.rst
--- old/pytest-5.1.2/doc/en/getting-started.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/getting-started.rst 2019-09-21 15:49:40.000000000 +0200
@@ -108,7 +108,7 @@
$ pytest -q test_sysexit.py
. [100%]
- 1 passed in 0.01s
+ 1 passed in 0.12s
Group multiple tests in a class
--------------------------------------------------------------
@@ -145,7 +145,7 @@
E + where False = hasattr('hello', 'check')
test_class.py:8: AssertionError
- 1 failed, 1 passed in 0.02s
+ 1 failed, 1 passed in 0.12s
The first test passed and the second failed. You can easily see the intermediate values in the assertion to help you understand the reason for the failure.
@@ -180,7 +180,7 @@
test_tmpdir.py:3: AssertionError
--------------------------- Captured stdout call ---------------------------
PYTEST_TMPDIR/test_needsfiles0
- 1 failed in 0.02s
+ 1 failed in 0.12s
More info on tmpdir handling is available at :ref:`Temporary directories and files <tmpdir handling>`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/goodpractices.rst new/pytest-5.1.3/doc/en/goodpractices.rst
--- old/pytest-5.1.2/doc/en/goodpractices.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/goodpractices.rst 2019-09-21 15:49:40.000000000 +0200
@@ -88,7 +88,7 @@
.. note::
- See :ref:`pythonpath` for more information about the difference between calling ``pytest`` and
+ See :ref:`pytest vs python -m pytest` for more information about the difference between calling ``pytest`` and
``python -m pytest``.
Note that using this scheme your test files must have **unique names**, because
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/parametrize.rst new/pytest-5.1.3/doc/en/parametrize.rst
--- old/pytest-5.1.2/doc/en/parametrize.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/parametrize.rst 2019-09-21 15:49:40.000000000 +0200
@@ -205,7 +205,7 @@
$ pytest -q --stringinput="hello" --stringinput="world" test_strings.py
.. [100%]
- 2 passed in 0.01s
+ 2 passed in 0.12s
Let's also run with a stringinput that will lead to a failing test:
@@ -225,7 +225,7 @@
E + where = '!'.isalpha
test_strings.py:4: AssertionError
- 1 failed in 0.02s
+ 1 failed in 0.12s
As expected our test function fails.
@@ -239,7 +239,7 @@
s [100%]
========================= short test summary info ==========================
SKIPPED [1] test_strings.py: got empty parameter set ['stringinput'], function test_valid_string at $REGENDOC_TMPDIR/test_strings.py:2
- 1 skipped in 0.00s
+ 1 skipped in 0.12s
Note that when calling ``metafunc.parametrize`` multiple times with different parameter sets, all parameter names across
those sets cannot be duplicated, otherwise an error will be raised.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/pythonpath.rst new/pytest-5.1.3/doc/en/pythonpath.rst
--- old/pytest-5.1.2/doc/en/pythonpath.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/pythonpath.rst 2019-09-21 15:49:40.000000000 +0200
@@ -72,6 +72,8 @@
This is also discussed in details in :ref:`test discovery`.
+.. _`pytest vs python -m pytest`:
+
Invoking ``pytest`` versus ``python -m pytest``
-----------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/reference.rst new/pytest-5.1.3/doc/en/reference.rst
--- old/pytest-5.1.2/doc/en/reference.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/reference.rst 2019-09-21 15:49:40.000000000 +0200
@@ -59,7 +59,7 @@
**Tutorial**: :ref:`assertraises`.
-.. autofunction:: pytest.raises(expected_exception: Exception, [match], [message])
+.. autofunction:: pytest.raises(expected_exception: Exception, [match])
:with: excinfo
pytest.deprecated_call
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/unittest.rst new/pytest-5.1.3/doc/en/unittest.rst
--- old/pytest-5.1.2/doc/en/unittest.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/unittest.rst 2019-09-21 15:49:40.000000000 +0200
@@ -219,7 +219,7 @@
$ pytest -q test_unittest_cleandir.py
. [100%]
- 1 passed in 0.01s
+ 1 passed in 0.12s
... gives us one passed test because the ``initdir`` fixture function
was executed ahead of the ``test_method``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/doc/en/warnings.rst new/pytest-5.1.3/doc/en/warnings.rst
--- old/pytest-5.1.2/doc/en/warnings.rst 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/doc/en/warnings.rst 2019-09-21 15:49:40.000000000 +0200
@@ -64,7 +64,7 @@
E UserWarning: api v1, should use functions from v2
test_show_warnings.py:5: UserWarning
- 1 failed in 0.02s
+ 1 failed in 0.12s
The same option can be set in the ``pytest.ini`` file using the ``filterwarnings`` ini option.
For example, the configuration below will ignore all user warnings, but will transform
@@ -407,7 +407,7 @@
class Test:
-- Docs: https://docs.pytest.org/en/latest/warnings.html
- 1 warnings in 0.00s
+ 1 warnings in 0.12s
These warnings might be filtered using the same builtin mechanisms used to filter other types of warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/_pytest/_version.py new/pytest-5.1.3/src/_pytest/_version.py
--- old/pytest-5.1.2/src/_pytest/_version.py 2019-08-30 21:02:52.000000000 +0200
+++ new/pytest-5.1.3/src/_pytest/_version.py 2019-09-21 15:49:56.000000000 +0200
@@ -1,4 +1,4 @@
# coding: utf-8
# file generated by setuptools_scm
# don't change, don't track in version control
-version = '5.1.2'
+version = '5.1.3'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/_pytest/capture.py new/pytest-5.1.3/src/_pytest/capture.py
--- old/pytest-5.1.2/src/_pytest/capture.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/src/_pytest/capture.py 2019-09-21 15:49:40.000000000 +0200
@@ -789,7 +789,11 @@
See https://github.com/pytest-dev/py/issues/103
"""
- if not sys.platform.startswith("win32") or sys.version_info[:2] < (3, 6):
+ if (
+ not sys.platform.startswith("win32")
+ or sys.version_info[:2] < (3, 6)
+ or hasattr(sys, "pypy_version_info")
+ ):
return
# bail out if ``stream`` doesn't seem like a proper ``io`` stream (#2666)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/_pytest/config/__init__.py new/pytest-5.1.3/src/_pytest/config/__init__.py
--- old/pytest-5.1.2/src/_pytest/config/__init__.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/src/_pytest/config/__init__.py 2019-09-21 15:49:40.000000000 +0200
@@ -30,7 +30,6 @@
from _pytest.compat import importlib_metadata
from _pytest.outcomes import fail
from _pytest.outcomes import Skipped
-from _pytest.pathlib import unique_path
from _pytest.warning_types import PytestConfigWarning
hookimpl = HookimplMarker("pytest")
@@ -367,7 +366,7 @@
"""
current = py.path.local()
self._confcutdir = (
- unique_path(current.join(namespace.confcutdir, abs=True))
+ current.join(namespace.confcutdir, abs=True)
if namespace.confcutdir
else None
)
@@ -406,13 +405,11 @@
else:
directory = path
- directory = unique_path(directory)
-
# XXX these days we may rather want to use config.rootdir
# and allow users to opt into looking into the rootdir parent
# directories instead of requiring to specify confcutdir
clist = []
- for parent in directory.parts():
+ for parent in directory.realpath().parts():
if self._confcutdir and self._confcutdir.relto(parent):
continue
conftestpath = parent.join("conftest.py")
@@ -432,12 +429,14 @@
raise KeyError(name)
def _importconftest(self, conftestpath):
- # Use realpath to avoid loading the same conftest twice
+ # Use a resolved Path object as key to avoid loading the same conftest twice
# with build systems that create build directories containing
# symlinks to actual files.
- conftestpath = unique_path(conftestpath)
+ # Using Path().resolve() is better than py.path.realpath because
+ # it resolves to the correct path/drive in case-insensitive file systems (#5792)
+ key = Path(str(conftestpath)).resolve()
try:
- return self._conftestpath2mod[conftestpath]
+ return self._conftestpath2mod[key]
except KeyError:
pkgpath = conftestpath.pypkgpath()
if pkgpath is None:
@@ -454,7 +453,7 @@
raise ConftestImportFailure(conftestpath, sys.exc_info())
self._conftest_plugins.add(mod)
- self._conftestpath2mod[conftestpath] = mod
+ self._conftestpath2mod[key] = mod
dirpath = conftestpath.dirpath()
if dirpath in self._dirpath2confmods:
for path, mods in self._dirpath2confmods.items():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/_pytest/nodes.py new/pytest-5.1.3/src/_pytest/nodes.py
--- old/pytest-5.1.2/src/_pytest/nodes.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/src/_pytest/nodes.py 2019-09-21 15:49:40.000000000 +0200
@@ -245,7 +245,6 @@
fm = self.session._fixturemanager
if excinfo.errisinstance(fm.FixtureLookupError):
return excinfo.value.formatrepr()
- tbfilter = True
if self.config.getoption("fulltrace", False):
style = "long"
else:
@@ -253,7 +252,6 @@
self._prunetraceback(excinfo)
if len(excinfo.traceback) == 0:
excinfo.traceback = tb
- tbfilter = False # prunetraceback already does it
if style == "auto":
style = "long"
# XXX should excinfo.getrepr record all data and toterminal() process it?
@@ -279,7 +277,7 @@
abspath=abspath,
showlocals=self.config.getoption("showlocals", False),
style=style,
- tbfilter=tbfilter,
+ tbfilter=False, # pruned already, or in --fulltrace mode.
truncate_locals=truncate_locals,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/_pytest/pathlib.py new/pytest-5.1.3/src/_pytest/pathlib.py
--- old/pytest-5.1.2/src/_pytest/pathlib.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/src/_pytest/pathlib.py 2019-09-21 15:49:40.000000000 +0200
@@ -11,7 +11,6 @@
from os.path import expanduser
from os.path import expandvars
from os.path import isabs
-from os.path import normcase
from os.path import sep
from posixpath import sep as posix_sep
@@ -335,12 +334,3 @@
def parts(s):
parts = s.split(sep)
return {sep.join(parts[: i + 1]) or sep for i in range(len(parts))}
-
-
-def unique_path(path):
- """Returns a unique path in case-insensitive (but case-preserving) file
- systems such as Windows.
-
- This is needed only for ``py.path.local``; ``pathlib.Path`` handles this
- natively with ``resolve()``."""
- return type(path)(normcase(str(path.realpath())))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/pytest.egg-info/PKG-INFO new/pytest-5.1.3/src/pytest.egg-info/PKG-INFO
--- old/pytest-5.1.2/src/pytest.egg-info/PKG-INFO 2019-08-30 21:02:52.000000000 +0200
+++ new/pytest-5.1.3/src/pytest.egg-info/PKG-INFO 2019-09-21 15:49:57.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest
-Version: 5.1.2
+Version: 5.1.3
Summary: pytest: simple powerful testing with Python
Home-page: https://docs.pytest.org/en/latest/
Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/src/pytest.egg-info/SOURCES.txt new/pytest-5.1.3/src/pytest.egg-info/SOURCES.txt
--- old/pytest-5.1.2/src/pytest.egg-info/SOURCES.txt 2019-08-30 21:02:52.000000000 +0200
+++ new/pytest-5.1.3/src/pytest.egg-info/SOURCES.txt 2019-09-21 15:49:57.000000000 +0200
@@ -208,6 +208,7 @@
doc/en/announce/release-5.1.0.rst
doc/en/announce/release-5.1.1.rst
doc/en/announce/release-5.1.2.rst
+doc/en/announce/release-5.1.3.rst
doc/en/announce/sprint2016.rst
doc/en/example/attic.rst
doc/en/example/conftest.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/testing/code/test_excinfo.py new/pytest-5.1.3/testing/code/test_excinfo.py
--- old/pytest-5.1.2/testing/code/test_excinfo.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/testing/code/test_excinfo.py 2019-09-21 15:49:40.000000000 +0200
@@ -399,6 +399,13 @@
result = testdir.runpytest()
assert result.ret != 0
result.stdout.fnmatch_lines(["*AssertionError*Pattern*[123]*not found*"])
+ assert "__tracebackhide__ = True" not in result.stdout.str()
+
+ result = testdir.runpytest("--fulltrace")
+ assert result.ret != 0
+ result.stdout.fnmatch_lines(
+ ["*__tracebackhide__ = True*", "*AssertionError*Pattern*[123]*not found*"]
+ )
class TestFormattedExcinfo:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/testing/test_conftest.py new/pytest-5.1.3/testing/test_conftest.py
--- old/pytest-5.1.2/testing/test_conftest.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/testing/test_conftest.py 2019-09-21 15:49:40.000000000 +0200
@@ -1,12 +1,12 @@
-import os.path
+import os
import textwrap
+from pathlib import Path
import py
import pytest
from _pytest.config import PytestPluginManager
from _pytest.main import ExitCode
-from _pytest.pathlib import unique_path
def ConftestWithSetinitial(path):
@@ -143,11 +143,11 @@
# but we can still import a conftest directly
conftest._importconftest(conf)
values = conftest._getconftestmodules(conf.dirpath())
- assert values[0].__file__.startswith(str(unique_path(conf)))
+ assert values[0].__file__.startswith(str(conf))
# and all sub paths get updated properly
values = conftest._getconftestmodules(p)
assert len(values) == 1
- assert values[0].__file__.startswith(str(unique_path(conf)))
+ assert values[0].__file__.startswith(str(conf))
def test_conftestcutdir_inplace_considered(testdir):
@@ -156,7 +156,7 @@
conftest_setinitial(conftest, [conf.dirpath()], confcutdir=conf.dirpath())
values = conftest._getconftestmodules(conf.dirpath())
assert len(values) == 1
- assert values[0].__file__.startswith(str(unique_path(conf)))
+ assert values[0].__file__.startswith(str(conf))
@pytest.mark.parametrize("name", "test tests whatever .dotdir".split())
@@ -165,11 +165,12 @@
subconftest = sub.ensure("conftest.py")
conftest = PytestPluginManager()
conftest_setinitial(conftest, [sub.dirpath()], confcutdir=testdir.tmpdir)
+ key = Path(str(subconftest)).resolve()
if name not in ("whatever", ".dotdir"):
- assert unique_path(subconftest) in conftest._conftestpath2mod
+ assert key in conftest._conftestpath2mod
assert len(conftest._conftestpath2mod) == 1
else:
- assert subconftest not in conftest._conftestpath2mod
+ assert key not in conftest._conftestpath2mod
assert len(conftest._conftestpath2mod) == 0
@@ -282,7 +283,7 @@
reason="only relevant for case insensitive file systems",
)
def test_conftest_badcase(testdir):
- """Check conftest.py loading when directory casing is wrong."""
+ """Check conftest.py loading when directory casing is wrong (#5792)."""
testdir.tmpdir.mkdir("JenkinsRoot").mkdir("test")
source = {"setup.py": "", "test/__init__.py": "", "test/conftest.py": ""}
testdir.makepyfile(**{"JenkinsRoot/%s" % k: v for k, v in source.items()})
@@ -291,6 +292,16 @@
result = testdir.runpytest()
assert result.ret == ExitCode.NO_TESTS_COLLECTED
+
+def test_conftest_uppercase(testdir):
+ """Check conftest.py whose qualified name contains uppercase characters (#5819)"""
+ source = {"__init__.py": "", "Foo/conftest.py": "", "Foo/__init__.py": ""}
+ testdir.makepyfile(**source)
+
+ testdir.tmpdir.chdir()
+ result = testdir.runpytest()
+ assert result.ret == ExitCode.NO_TESTS_COLLECTED
+
def test_no_conftest(testdir):
testdir.makeconftest("assert 0")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-5.1.2/testing/test_pdb.py new/pytest-5.1.3/testing/test_pdb.py
--- old/pytest-5.1.2/testing/test_pdb.py 2019-08-30 21:02:33.000000000 +0200
+++ new/pytest-5.1.3/testing/test_pdb.py 2019-09-21 15:49:40.000000000 +0200
@@ -853,7 +853,7 @@
Test that supports breakpoint global marks on Python 3.7+ and not on
CPython 3.5, 2.7
"""
- if sys.version_info.major == 3 and sys.version_info.minor >= 7:
+ if sys.version_info >= (3, 7):
assert SUPPORTS_BREAKPOINT_BUILTIN is True
if sys.version_info.major == 3 and sys.version_info.minor == 5:
assert SUPPORTS_BREAKPOINT_BUILTIN is False