Accepting request 428222 from devel:languages:python

update to version 3.0.2

OBS-URL: https://build.opensuse.org/request/show/428222
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=23
This commit is contained in:
Dominique Leuenberger 2016-09-20 11:23:40 +00:00 committed by Git OBS Bridge
parent e3989164ed
commit 3216e6dfdd
6 changed files with 753 additions and 146 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fc4c86be54fce08e4b85b646a736efa18c6cde7599c1d2919f4f74629e018baf
size 564943

3
pytest-3.0.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339
size 727551

View File

@ -1,3 +1,365 @@
-------------------------------------------------------------------
Fri Sep 16 14:25:04 UTC 2016 - toddrme2178@gmail.com
- Fix download url.
-------------------------------------------------------------------
Thu Sep 15 22:20:01 UTC 2016 - toddrme2178@gmail.com
- update to version 3.0.2
* Improve error message when passing non-string ids to ``pytest.mark.parametrize`` (`#1857`_).
Thanks `@okken`_ for the report and `@nicoddemus`_ for the PR.
* Add ``buffer`` attribute to stdin stub class ``pytest.capture.DontReadFromInput``
Thanks `@joguSD`_ for the PR.
* Fix ``UnicodeEncodeError`` when string comparison with unicode has failed. (`#1864`_)
Thanks `@AiOO`_ for the PR.
* ``pytest_plugins`` is now handled correctly if defined as a string (as opposed as
a sequence of strings) when modules are considered for assertion rewriting.
Due to this bug, much more modules were being rewritten than necessary
if a test suite uses ``pytest_plugins`` to load internal plugins (`#1888`_).
Thanks `@jaraco`_ for the report and `@nicoddemus`_ for the PR (`#1891`_).
* Do not call tearDown and cleanups when running tests from
``unittest.TestCase`` subclasses with ``--pdb``
enabled. This allows proper post mortem debugging for all applications
which have significant logic in their tearDown machinery (`#1890`_). Thanks
`@mbyt`_ for the PR.
* Fix use of deprecated ``getfuncargvalue`` method in the internal doctest plugin.
Thanks `@ViviCoder`_ for the report (`#1898`_).
- update to version 3.0.1
* Fix regression when ``importorskip`` is used at module level (`#1822`_).
Thanks `@jaraco`_ and `@The-Compiler`_ for the report and `@nicoddemus`_ for the PR.
* Fix parametrization scope when session fixtures are used in conjunction
with normal parameters in the same call (`#1832`_).
Thanks `@The-Compiler`_ for the report, `@Kingdread`_ and `@nicoddemus`_ for the PR.
* Fix internal error when parametrizing tests or fixtures using an empty ``ids`` argument (`#1849`_).
Thanks `@OPpuolitaival`_ for the report and `@nicoddemus`_ for the PR.
* Fix loader error when running ``pytest`` embedded in a zipfile.
Thanks `@mbachry`_ for the PR.
- update to version 3.0.0
+ Incompatible changes
* Reinterpretation mode has now been removed. Only plain and rewrite
mode are available, consequently the ``--assert=reinterp`` option is
no longer available. Thanks `@flub`_ for the PR.
* The following deprecated commandline options were removed:
* ``--genscript``: no longer supported;
> ``--no-assert``: use ``--assert=plain`` instead;
> ``--nomagic``: use ``--assert=plain`` instead;
> ``--report``: use ``-r`` instead;
* ImportErrors in plugins now are a fatal error instead of issuing a
pytest warning (`#1479`_). Thanks to `@The-Compiler`_ for the PR.
* Removed support code for Python 3 versions < 3.3 (`#1627`_).
* Removed all ``py.test-X*`` entry points. The versioned, suffixed entry points
were never documented and a leftover from a pre-virtualenv era. These entry
points also created broken entry points in wheels, so removing them also
removes a source of confusion for users (`#1632`_).
Thanks `@obestwalter`_ for the PR.
* ``pytest.skip()`` now raises an error when used to decorate a test function,
as opposed to its original intent (to imperatively skip a test inside a test function). Previously
this usage would cause the entire module to be skipped (`#607`_).
Thanks `@omarkohl`_ for the complete PR (`#1519`_).
* Exit tests if a collection error occurs. A poll indicated most users will hit CTRL-C
anyway as soon as they see collection errors, so pytest might as well make that the default behavior (`#1421`_).
A ``--continue-on-collection-errors`` option has been added to restore the previous behaviour.
Thanks `@olegpidsadnyi`_ and `@omarkohl`_ for the complete PR (`#1628`_).
* Renamed the pytest ``pdb`` module (plugin) into ``debugging`` to avoid clashes with the builtin ``pdb`` module.
* Raise a helpful failure message when requesting a parametrized fixture at runtime,
e.g. with ``request.getfixturevalue``. Previously these parameters were simply
never defined, so a fixture decorated like ``@pytest.fixture(params=[0, 1, 2])``
only ran once (`#460`_).
Thanks to `@nikratio`_ for the bug report, `@RedBeardCode`_ and `@tomviner`_ for the PR.
* ``_pytest.monkeypatch.monkeypatch`` class has been renamed to ``_pytest.monkeypatch.MonkeyPatch``
so it doesn't conflict with the ``monkeypatch`` fixture.
* ``--exitfirst / -x`` can now be overridden by a following ``--maxfail=N``
and is just a synonym for ``--maxfail=1``.
+ New Features
* Support nose-style ``__test__`` attribute on methods of classes,
including unittest-style Classes. If set to ``False``, the test will not be
collected.
* New ``doctest_namespace`` fixture for injecting names into the
namespace in which doctests run.
Thanks `@milliams`_ for the complete PR (`#1428`_).
* New ``--doctest-report`` option available to change the output format of diffs
when running (failing) doctests (implements `#1749`_).
Thanks `@hartym`_ for the PR.
* New ``name`` argument to ``pytest.fixture`` decorator which allows a custom name
for a fixture (to solve the funcarg-shadowing-fixture problem).
Thanks `@novas0x2a`_ for the complete PR (`#1444`_).
* New ``approx()`` function for easily comparing floating-point numbers in
tests.
Thanks `@kalekundert`_ for the complete PR (`#1441`_).
* Ability to add global properties in the final xunit output file by accessing
the internal ``junitxml`` plugin (experimental).
Thanks `@tareqalayan`_ for the complete PR `#1454`_).
* New ``ExceptionInfo.match()`` method to match a regular expression on the
string representation of an exception (`#372`_).
Thanks `@omarkohl`_ for the complete PR (`#1502`_).
* ``__tracebackhide__`` can now also be set to a callable which then can decide
whether to filter the traceback based on the ``ExceptionInfo`` object passed
to it. Thanks `@The-Compiler`_ for the complete PR (`#1526`_).
* New ``pytest_make_parametrize_id(config, val)`` hook which can be used by plugins to provide
friendly strings for custom types.
Thanks `@palaviv`_ for the PR.
* ``capsys`` and ``capfd`` now have a ``disabled()`` context-manager method, which
can be used to temporarily disable capture within a test.
Thanks `@nicoddemus`_ for the PR.
* New cli flag ``--fixtures-per-test``: shows which fixtures are being used
for each selected test item. Features doc strings of fixtures by default.
Can also show where fixtures are defined if combined with ``-v``.
Thanks `@hackebrot`_ for the PR.
* Introduce ``pytest`` command as recommended entry point. Note that ``py.test``
still works and is not scheduled for removal. Closes proposal
`#1629`_. Thanks `@obestwalter`_ and `@davehunt`_ for the complete PR
(`#1633`_).
* New cli flags:
> ``--setup-plan``: performs normal collection and reports
the potential setup and teardown and does not execute any fixtures and tests;
> ``--setup-only``: performs normal collection, executes setup and teardown of
fixtures and reports them;
> ``--setup-show``: performs normal test execution and additionally shows
setup and teardown of fixtures;
> ``--keep-duplicates``: py.test now ignores duplicated paths given in the command
line. To retain the previous behavior where the same test could be run multiple
times by specifying it in the command-line multiple times, pass the ``--keep-duplicates``
argument (`#1609`_);
Thanks `@d6e`_, `@kvas-it`_, `@sallner`_, `@ioggstream`_ and `@omarkohl`_ for the PRs.
* New CLI flag ``--override-ini``/``-o``: overrides values from the ini file.
For example: ``"-o xfail_strict=True"``'.
Thanks `@blueyed`_ and `@fengxx`_ for the PR.
* New hooks:
> ``pytest_fixture_setup(fixturedef, request)``: executes fixture setup;
> ``pytest_fixture_post_finalizer(fixturedef)``: called after the fixture's
finalizer and has access to the fixture's result cache.
Thanks `@d6e`_, `@sallner`_.
* Issue warnings for asserts whose test is a tuple literal. Such asserts will
never fail because tuples are always truthy and are usually a mistake
(see `#1562`_). Thanks `@kvas-it`_, for the PR.
* Allow passing a custom debugger class (e.g. ``--pdbcls=IPython.core.debugger:Pdb``).
Thanks to `@anntzer`_ for the PR.
+ Changes
* Plugins now benefit from assertion rewriting. Thanks
`@sober7`_, `@nicoddemus`_ and `@flub`_ for the PR.
* Change ``report.outcome`` for ``xpassed`` tests to ``"passed"`` in non-strict
mode and ``"failed"`` in strict mode. Thanks to `@hackebrot`_ for the PR
(`#1795`_) and `@gprasad84`_ for report (`#1546`_).
* Tests marked with ``xfail(strict=False)`` (the default) now appear in
JUnitXML reports as passing tests instead of skipped.
Thanks to `@hackebrot`_ for the PR (`#1795`_).
* Highlight path of the file location in the error report to make it easier to copy/paste.
Thanks `@suzaku`_ for the PR (`#1778`_).
* Fixtures marked with ``@pytest.fixture`` can now use ``yield`` statements exactly like
those marked with the ``@pytest.yield_fixture`` decorator. This change renders
``@pytest.yield_fixture`` deprecated and makes ``@pytest.fixture`` with ``yield`` statements
the preferred way to write teardown code (`#1461`_).
Thanks `@csaftoiu`_ for bringing this to attention and `@nicoddemus`_ for the PR.
* Explicitly passed parametrize ids do not get escaped to ascii (`#1351`_).
Thanks `@ceridwen`_ for the PR.
* Fixtures are now sorted in the error message displayed when an unknown
fixture is declared in a test function.
Thanks `@nicoddemus`_ for the PR.
* ``pytest_terminal_summary`` hook now receives the ``exitstatus``
of the test session as argument. Thanks `@blueyed`_ for the PR (`#1809`_).
* Parametrize ids can accept ``None`` as specific test id, in which case the
automatically generated id for that argument will be used.
Thanks `@palaviv`_ for the complete PR (`#1468`_).
* The parameter to xunit-style setup/teardown methods (``setup_method``,
``setup_module``, etc.) is now optional and may be omitted.
Thanks `@okken`_ for bringing this to attention and `@nicoddemus`_ for the PR.
* Improved automatic id generation selection in case of duplicate ids in
parametrize.
Thanks `@palaviv`_ for the complete PR (`#1474`_).
* Now pytest warnings summary is shown up by default. Added a new flag
``--disable-pytest-warnings`` to explicitly disable the warnings summary (`#1668`_).
* Make ImportError during collection more explicit by reminding
the user to check the name of the test module/package(s) (`#1426`_).
Thanks `@omarkohl`_ for the complete PR (`#1520`_).
* Add ``build/`` and ``dist/`` to the default ``--norecursedirs`` list. Thanks
`@mikofski`_ for the report and `@tomviner`_ for the PR (`#1544`_).
* ``pytest.raises`` in the context manager form accepts a custom
``message`` to raise when no exception occurred.
Thanks `@palaviv`_ for the complete PR (`#1616`_).
* ``conftest.py`` files now benefit from assertion rewriting; previously it
was only available for test modules. Thanks `@flub`_, `@sober7`_ and
`@nicoddemus`_ for the PR (`#1619`_).
* Text documents without any doctests no longer appear as "skipped".
Thanks `@graingert`_ for reporting and providing a full PR (`#1580`_).
* Ensure that a module within a namespace package can be found when it
is specified on the command line together with the ``--pyargs``
option. Thanks to `@taschini`_ for the PR (`#1597`_).
* Always include full assertion explanation during assertion rewriting. The previous behaviour was hiding
sub-expressions that happened to be ``False``, assuming this was redundant information.
Thanks `@bagerard`_ for reporting (`#1503`_). Thanks to `@davehunt`_ and
`@tomviner`_ for the PR.
* ``OptionGroup.addoption()`` now checks if option names were already
added before, to make it easier to track down issues like `#1618`_.
Before, you only got exceptions later from ``argparse`` library,
giving no clue about the actual reason for double-added options.
* ``yield``-based tests are considered deprecated and will be removed in pytest-4.0.
Thanks `@nicoddemus`_ for the PR.
* ``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]``
to avoid conflicts with other distutils commands (see `#567`_). ``[pytest]`` sections in
``pytest.ini`` or ``tox.ini`` files are supported and unchanged.
Thanks `@nicoddemus`_ for the PR.
* Using ``pytest_funcarg__`` prefix to declare fixtures is considered deprecated and will be
removed in pytest-4.0 (`#1684`_).
Thanks `@nicoddemus`_ for the PR.
* Passing a command-line string to ``pytest.main()`` is considered deprecated and scheduled
for removal in pytest-4.0. It is recommended to pass a list of arguments instead (`#1723`_).
* Rename ``getfuncargvalue`` to ``getfixturevalue``. ``getfuncargvalue`` is
still present but is now considered deprecated. Thanks to `@RedBeardCode`_ and `@tomviner`_
for the PR (`#1626`_).
* ``optparse`` type usage now triggers DeprecationWarnings (`#1740`_).
* ``optparse`` backward compatibility supports float/complex types (`#457`_).
* Refined logic for determining the ``rootdir``, considering only valid
paths which fixes a number of issues: `#1594`_, `#1435`_ and `#1471`_.
Updated the documentation according to current behavior. Thanks to
`@blueyed`_, `@davehunt`_ and `@matthiasha`_ for the PR.
* Always include full assertion explanation. The previous behaviour was hiding
sub-expressions that happened to be False, assuming this was redundant information.
Thanks `@bagerard`_ for reporting (`#1503`_). Thanks to `@davehunt`_ and
`@tomviner`_ for PR.
* Better message in case of not using parametrized variable (see `#1539`_).
Thanks to `@tramwaj29`_ for the PR.
* Updated docstrings with a more uniform style.
* Add stderr write for ``pytest.exit(msg)`` during startup. Previously the message was never shown.
Thanks `@BeyondEvil`_ for reporting `#1210`_. Thanks to `@JonathonSonesen`_ and
`@tomviner`_ for the PR.
* No longer display the incorrect test deselection reason (`#1372`_).
Thanks `@ronnypfannschmidt`_ for the PR.
* The ``--resultlog`` command line option has been deprecated: it is little used
and there are more modern and better alternatives (see `#830`_).
Thanks `@nicoddemus`_ for the PR.
* Improve error message with fixture lookup errors: add an 'E' to the first
line and '>' to the rest. Fixes `#717`_. Thanks `@blueyed`_ for reporting and
a PR, `@eolo999`_ for the initial PR and `@tomviner`_ for his guidance during
EuroPython2016 sprint.
+ Bug Fixes
* Parametrize now correctly handles duplicated test ids.
* Fix internal error issue when the ``method`` argument is missing for
``teardown_method()`` (`#1605`_).
* Fix exception visualization in case the current working directory (CWD) gets
deleted during testing (`#1235`_). Thanks `@bukzor`_ for reporting. PR by
`@marscher`_.
* Improve test output for logical expression with brackets (`#925`_).
Thanks `@DRMacIver`_ for reporting and `@RedBeardCode`_ for the PR.
* Create correct diff for strings ending with newlines (`#1553`_).
Thanks `@Vogtinator`_ for reporting and `@RedBeardCode`_ and
`@tomviner`_ for the PR.
* ``ConftestImportFailure`` now shows the traceback making it easier to
identify bugs in ``conftest.py`` files (`#1516`_). Thanks `@txomon`_ for
the PR.
* Text documents without any doctests no longer appear as "skipped".
Thanks `@graingert`_ for reporting and providing a full PR (`#1580`_).
* Fixed collection of classes with custom ``__new__`` method.
Fixes `#1579`_. Thanks to `@Stranger6667`_ for the PR.
* Fixed scope overriding inside metafunc.parametrize (`#634`_).
Thanks to `@Stranger6667`_ for the PR.
* Fixed the total tests tally in junit xml output (`#1798`_).
Thanks to `@cryporchild`_ for the PR.
* Fixed off-by-one error with lines from ``request.node.warn``.
Thanks to `@blueyed`_ for the PR.
- update to version 2.9.2:
* fix #510: skip tests where one parameterize dimension was empty
thanks Alex Stapleton for the Report and @RonnyPfannschmidt for
the PR
* Fix Xfail does not work with condition keyword argument. Thanks
@astraw38 for reporting the issue (#1496) and @tomviner for PR the
(#1524).
* Fix win32 path issue when puttinging custom config file with
absolute path in pytest.main("-c your_absolute_path").
* Fix maximum recursion depth detection when raised error class is
not aware of unicode/encoded bytes. Thanks @prusse-martin for the
PR (#1506).
* Fix pytest.mark.skip mark when used in strict mode. Thanks
@pquentin for the PR and @RonnyPfannschmidt for showing how to fix
the bug.
* Minor improvements and fixes to the documentation. Thanks
@omarkohl for the PR.
* Fix --fixtures to show all fixture definitions as opposed to just
one per fixture name. Thanks to @hackebrot for the PR.
- update to version 2.9.1:
* Improve error message when a plugin fails to load. Thanks
@nicoddemus for the PR.
* Fix (#1178): pytest.fail with non-ascii characters raises an
internal pytest error. Thanks @nicoddemus for the PR.
* Fix (#469): junit parses report.nodeid incorrectly, when params
IDs contain ::. Thanks @tomviner for the PR (#1431).
* Fix (#578): SyntaxErrors containing non-ascii lines at the point
of failure generated an internal py.test error. Thanks @asottile
for the report and @nicoddemus for the PR.
* Fix (#1437): When passing in a bytestring regex pattern to
parameterize attempt to decode it as utf-8 ignoring errors.
* Fix (#649): parametrized test nodes cannot be specified to run on
the command line.
- update to version 2.9.0:
* New Features
+ New pytest.mark.skip mark, which unconditionally skips marked
tests. Thanks @MichaelAquilina for the complete PR (#1040).
+ --doctest-glob may now be passed multiple times in the
command-line. Thanks @jab and @nicoddemus for the PR.
+ New -rp and -rP reporting options give the summary and full
output of passing tests, respectively. Thanks to @codewarrior0 for
the PR.
+ pytest.mark.xfail now has a strict option which makes XPASS
tests to fail the test suite, defaulting to False. Theres also a
xfail_strict ini option that can be used to configure it
project-wise. Thanks @rabbbit for the request and @nicoddemus for
the PR (#1355).
+ Parser.addini now supports options of type bool. Thanks
@nicoddemus for the PR.
+ New ALLOW_BYTES doctest option strips b prefixes from byte
strings in doctest output (similar to ALLOW_UNICODE). Thanks
@jaraco for the request and @nicoddemus for the PR (#1287).
+ give a hint on KeyboardInterrupt to use the fulltrace option to
show the errors, this fixes #1366. Thanks to @hpk42 for the report
and @RonnyPfannschmidt for the PR.
+ catch IndexError exceptions when getting exception source
location. This fixes pytest internal error for dynamically
generated code (fixtures and tests) where source lines are fake by
intention
* Changes
+ Important: py.code has been merged into the pytest repository as
pytest._code. This decision was made because py.code had very few
uses outside pytest and the fact that it was in a different
repository made it difficult to fix bugs on its code in a timely
manner. The team hopes with this to be able to better refactor out
and improve that code. This change shouldnt affect users, but it
is useful to let users aware if they encounter any strange
behavior.
+ Keep in mind that the code for pytest._code is private and
experimental, so you definitely should not import it explicitly!
+ Please note that the original py.code is still available in
pylib.
+ pytest_enter_pdb now optionally receives the pytest config
object. Thanks @nicoddemus for the PR.
+ Removed code and documentation for Python 2.5 or lower versions,
including removal of the obsolete _pytest.assertion.oldinterpret
module. Thanks @nicoddemus for the PR (#1226).
+ Comparisons now always show up in full when CI or BUILD_NUMBER
is found in the environment, even when -vv isnt used. Thanks
@The-Compiler for the PR.
+ --lf and --ff now support long names: --last-failed and
--failed-first respectively. Thanks @MichaelAquilina for the PR.
+ Added expected exceptions to pytest.raises fail message
+ Collection only displays progress (“collecting X items”) when in
a terminal. This avoids cluttering the output when using
--color=yes to obtain colors in CI integrations systems (#1397).
* Bug Fixes
+ The -s and -c options should now work under xdist;
Config.fromdictargs now represents its input much more
faithfully. Thanks to @bukzor for the complete PR (#680).
+ Fix (#1290): support Python 3.5s @ operator in assertion
rewriting. Thanks @Shinkenjoe for report with test case and
@tomviner for the PR.
+ Fix formatting utf-8 explanation messages (#1379). Thanks @biern
for the PR.
+ Fix traceback style docs to describe all of the available
options (auto/long/short/line/native/no), with auto being the
default since v2.6. Thanks @hackebrot for the PR.
+ Fix (#1422): junit record_xml_property doesnt allow multiple
records with same name.
- Move %check to -doc subpackage to avoid dependency loop
with new python3-hypothesis test dependency.
-------------------------------------------------------------------
Mon Feb 1 11:02:42 UTC 2016 - toddrme2178@gmail.com

View File

@ -17,16 +17,20 @@
Name: python-pytest-doc
Version: 2.8.7
Version: 3.0.2
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Group: Development/Languages/Python
Url: http://pytest.org
Source: http://pypi.python.org/packages/source/p/pytest/pytest-%{version}.tar.gz
Source: https://files.pythonhosted.org/packages/source/p/pytest/pytest-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-Sphinx
BuildRequires: python-py >= 1.4.22
# Test requirements:
BuildRequires: python-mock
BuildRequires: python-hypothesis
BuildRequires: python-PyYAML
%if 0%{?suse_version} && 0%{?suse_version} > 1110
BuildArch: noarch
%endif
@ -58,9 +62,12 @@ rm doc/build/html/.buildinfo
%install
# Only building documentation
%check
python setup.py test
%files
%defattr(-,root,root,-)
%doc LICENSE CHANGELOG
%doc CHANGELOG.rst LICENSE
%doc doc/build/html
%changelog

View File

@ -1,17 +1,362 @@
-------------------------------------------------------------------
Thu Sep 1 12:34:41 UTC 2016 - tbechtold@suse.com
Fri Sep 16 14:25:04 UTC 2016 - toddrme2178@gmail.com
- Use https for pypi.io Source
- Fix download url.
-------------------------------------------------------------------
Thu Sep 1 05:52:08 UTC 2016 - tbechtold@suse.com
- Fix Requires. python-py >= 1.4.29 is needed.
- Use pypi.io as Source url
-------------------------------------------------------------------
Mon Feb 1 11:02:42 UTC 2016 - toddrme2178@gmail.com
Thu Sep 15 22:20:01 UTC 2016 - toddrme2178@gmail.com
- update to version 3.0.2
* Improve error message when passing non-string ids to ``pytest.mark.parametrize`` (`#1857`_).
Thanks `@okken`_ for the report and `@nicoddemus`_ for the PR.
* Add ``buffer`` attribute to stdin stub class ``pytest.capture.DontReadFromInput``
Thanks `@joguSD`_ for the PR.
* Fix ``UnicodeEncodeError`` when string comparison with unicode has failed. (`#1864`_)
Thanks `@AiOO`_ for the PR.
* ``pytest_plugins`` is now handled correctly if defined as a string (as opposed as
a sequence of strings) when modules are considered for assertion rewriting.
Due to this bug, much more modules were being rewritten than necessary
if a test suite uses ``pytest_plugins`` to load internal plugins (`#1888`_).
Thanks `@jaraco`_ for the report and `@nicoddemus`_ for the PR (`#1891`_).
* Do not call tearDown and cleanups when running tests from
``unittest.TestCase`` subclasses with ``--pdb``
enabled. This allows proper post mortem debugging for all applications
which have significant logic in their tearDown machinery (`#1890`_). Thanks
`@mbyt`_ for the PR.
* Fix use of deprecated ``getfuncargvalue`` method in the internal doctest plugin.
Thanks `@ViviCoder`_ for the report (`#1898`_).
- update to version 3.0.1
* Fix regression when ``importorskip`` is used at module level (`#1822`_).
Thanks `@jaraco`_ and `@The-Compiler`_ for the report and `@nicoddemus`_ for the PR.
* Fix parametrization scope when session fixtures are used in conjunction
with normal parameters in the same call (`#1832`_).
Thanks `@The-Compiler`_ for the report, `@Kingdread`_ and `@nicoddemus`_ for the PR.
* Fix internal error when parametrizing tests or fixtures using an empty ``ids`` argument (`#1849`_).
Thanks `@OPpuolitaival`_ for the report and `@nicoddemus`_ for the PR.
* Fix loader error when running ``pytest`` embedded in a zipfile.
Thanks `@mbachry`_ for the PR.
- update to version 3.0.0
+ Incompatible changes
* Reinterpretation mode has now been removed. Only plain and rewrite
mode are available, consequently the ``--assert=reinterp`` option is
no longer available. Thanks `@flub`_ for the PR.
* The following deprecated commandline options were removed:
* ``--genscript``: no longer supported;
> ``--no-assert``: use ``--assert=plain`` instead;
> ``--nomagic``: use ``--assert=plain`` instead;
> ``--report``: use ``-r`` instead;
* ImportErrors in plugins now are a fatal error instead of issuing a
pytest warning (`#1479`_). Thanks to `@The-Compiler`_ for the PR.
* Removed support code for Python 3 versions < 3.3 (`#1627`_).
* Removed all ``py.test-X*`` entry points. The versioned, suffixed entry points
were never documented and a leftover from a pre-virtualenv era. These entry
points also created broken entry points in wheels, so removing them also
removes a source of confusion for users (`#1632`_).
Thanks `@obestwalter`_ for the PR.
* ``pytest.skip()`` now raises an error when used to decorate a test function,
as opposed to its original intent (to imperatively skip a test inside a test function). Previously
this usage would cause the entire module to be skipped (`#607`_).
Thanks `@omarkohl`_ for the complete PR (`#1519`_).
* Exit tests if a collection error occurs. A poll indicated most users will hit CTRL-C
anyway as soon as they see collection errors, so pytest might as well make that the default behavior (`#1421`_).
A ``--continue-on-collection-errors`` option has been added to restore the previous behaviour.
Thanks `@olegpidsadnyi`_ and `@omarkohl`_ for the complete PR (`#1628`_).
* Renamed the pytest ``pdb`` module (plugin) into ``debugging`` to avoid clashes with the builtin ``pdb`` module.
* Raise a helpful failure message when requesting a parametrized fixture at runtime,
e.g. with ``request.getfixturevalue``. Previously these parameters were simply
never defined, so a fixture decorated like ``@pytest.fixture(params=[0, 1, 2])``
only ran once (`#460`_).
Thanks to `@nikratio`_ for the bug report, `@RedBeardCode`_ and `@tomviner`_ for the PR.
* ``_pytest.monkeypatch.monkeypatch`` class has been renamed to ``_pytest.monkeypatch.MonkeyPatch``
so it doesn't conflict with the ``monkeypatch`` fixture.
* ``--exitfirst / -x`` can now be overridden by a following ``--maxfail=N``
and is just a synonym for ``--maxfail=1``.
+ New Features
* Support nose-style ``__test__`` attribute on methods of classes,
including unittest-style Classes. If set to ``False``, the test will not be
collected.
* New ``doctest_namespace`` fixture for injecting names into the
namespace in which doctests run.
Thanks `@milliams`_ for the complete PR (`#1428`_).
* New ``--doctest-report`` option available to change the output format of diffs
when running (failing) doctests (implements `#1749`_).
Thanks `@hartym`_ for the PR.
* New ``name`` argument to ``pytest.fixture`` decorator which allows a custom name
for a fixture (to solve the funcarg-shadowing-fixture problem).
Thanks `@novas0x2a`_ for the complete PR (`#1444`_).
* New ``approx()`` function for easily comparing floating-point numbers in
tests.
Thanks `@kalekundert`_ for the complete PR (`#1441`_).
* Ability to add global properties in the final xunit output file by accessing
the internal ``junitxml`` plugin (experimental).
Thanks `@tareqalayan`_ for the complete PR `#1454`_).
* New ``ExceptionInfo.match()`` method to match a regular expression on the
string representation of an exception (`#372`_).
Thanks `@omarkohl`_ for the complete PR (`#1502`_).
* ``__tracebackhide__`` can now also be set to a callable which then can decide
whether to filter the traceback based on the ``ExceptionInfo`` object passed
to it. Thanks `@The-Compiler`_ for the complete PR (`#1526`_).
* New ``pytest_make_parametrize_id(config, val)`` hook which can be used by plugins to provide
friendly strings for custom types.
Thanks `@palaviv`_ for the PR.
* ``capsys`` and ``capfd`` now have a ``disabled()`` context-manager method, which
can be used to temporarily disable capture within a test.
Thanks `@nicoddemus`_ for the PR.
* New cli flag ``--fixtures-per-test``: shows which fixtures are being used
for each selected test item. Features doc strings of fixtures by default.
Can also show where fixtures are defined if combined with ``-v``.
Thanks `@hackebrot`_ for the PR.
* Introduce ``pytest`` command as recommended entry point. Note that ``py.test``
still works and is not scheduled for removal. Closes proposal
`#1629`_. Thanks `@obestwalter`_ and `@davehunt`_ for the complete PR
(`#1633`_).
* New cli flags:
> ``--setup-plan``: performs normal collection and reports
the potential setup and teardown and does not execute any fixtures and tests;
> ``--setup-only``: performs normal collection, executes setup and teardown of
fixtures and reports them;
> ``--setup-show``: performs normal test execution and additionally shows
setup and teardown of fixtures;
> ``--keep-duplicates``: py.test now ignores duplicated paths given in the command
line. To retain the previous behavior where the same test could be run multiple
times by specifying it in the command-line multiple times, pass the ``--keep-duplicates``
argument (`#1609`_);
Thanks `@d6e`_, `@kvas-it`_, `@sallner`_, `@ioggstream`_ and `@omarkohl`_ for the PRs.
* New CLI flag ``--override-ini``/``-o``: overrides values from the ini file.
For example: ``"-o xfail_strict=True"``'.
Thanks `@blueyed`_ and `@fengxx`_ for the PR.
* New hooks:
> ``pytest_fixture_setup(fixturedef, request)``: executes fixture setup;
> ``pytest_fixture_post_finalizer(fixturedef)``: called after the fixture's
finalizer and has access to the fixture's result cache.
Thanks `@d6e`_, `@sallner`_.
* Issue warnings for asserts whose test is a tuple literal. Such asserts will
never fail because tuples are always truthy and are usually a mistake
(see `#1562`_). Thanks `@kvas-it`_, for the PR.
* Allow passing a custom debugger class (e.g. ``--pdbcls=IPython.core.debugger:Pdb``).
Thanks to `@anntzer`_ for the PR.
+ Changes
* Plugins now benefit from assertion rewriting. Thanks
`@sober7`_, `@nicoddemus`_ and `@flub`_ for the PR.
* Change ``report.outcome`` for ``xpassed`` tests to ``"passed"`` in non-strict
mode and ``"failed"`` in strict mode. Thanks to `@hackebrot`_ for the PR
(`#1795`_) and `@gprasad84`_ for report (`#1546`_).
* Tests marked with ``xfail(strict=False)`` (the default) now appear in
JUnitXML reports as passing tests instead of skipped.
Thanks to `@hackebrot`_ for the PR (`#1795`_).
* Highlight path of the file location in the error report to make it easier to copy/paste.
Thanks `@suzaku`_ for the PR (`#1778`_).
* Fixtures marked with ``@pytest.fixture`` can now use ``yield`` statements exactly like
those marked with the ``@pytest.yield_fixture`` decorator. This change renders
``@pytest.yield_fixture`` deprecated and makes ``@pytest.fixture`` with ``yield`` statements
the preferred way to write teardown code (`#1461`_).
Thanks `@csaftoiu`_ for bringing this to attention and `@nicoddemus`_ for the PR.
* Explicitly passed parametrize ids do not get escaped to ascii (`#1351`_).
Thanks `@ceridwen`_ for the PR.
* Fixtures are now sorted in the error message displayed when an unknown
fixture is declared in a test function.
Thanks `@nicoddemus`_ for the PR.
* ``pytest_terminal_summary`` hook now receives the ``exitstatus``
of the test session as argument. Thanks `@blueyed`_ for the PR (`#1809`_).
* Parametrize ids can accept ``None`` as specific test id, in which case the
automatically generated id for that argument will be used.
Thanks `@palaviv`_ for the complete PR (`#1468`_).
* The parameter to xunit-style setup/teardown methods (``setup_method``,
``setup_module``, etc.) is now optional and may be omitted.
Thanks `@okken`_ for bringing this to attention and `@nicoddemus`_ for the PR.
* Improved automatic id generation selection in case of duplicate ids in
parametrize.
Thanks `@palaviv`_ for the complete PR (`#1474`_).
* Now pytest warnings summary is shown up by default. Added a new flag
``--disable-pytest-warnings`` to explicitly disable the warnings summary (`#1668`_).
* Make ImportError during collection more explicit by reminding
the user to check the name of the test module/package(s) (`#1426`_).
Thanks `@omarkohl`_ for the complete PR (`#1520`_).
* Add ``build/`` and ``dist/`` to the default ``--norecursedirs`` list. Thanks
`@mikofski`_ for the report and `@tomviner`_ for the PR (`#1544`_).
* ``pytest.raises`` in the context manager form accepts a custom
``message`` to raise when no exception occurred.
Thanks `@palaviv`_ for the complete PR (`#1616`_).
* ``conftest.py`` files now benefit from assertion rewriting; previously it
was only available for test modules. Thanks `@flub`_, `@sober7`_ and
`@nicoddemus`_ for the PR (`#1619`_).
* Text documents without any doctests no longer appear as "skipped".
Thanks `@graingert`_ for reporting and providing a full PR (`#1580`_).
* Ensure that a module within a namespace package can be found when it
is specified on the command line together with the ``--pyargs``
option. Thanks to `@taschini`_ for the PR (`#1597`_).
* Always include full assertion explanation during assertion rewriting. The previous behaviour was hiding
sub-expressions that happened to be ``False``, assuming this was redundant information.
Thanks `@bagerard`_ for reporting (`#1503`_). Thanks to `@davehunt`_ and
`@tomviner`_ for the PR.
* ``OptionGroup.addoption()`` now checks if option names were already
added before, to make it easier to track down issues like `#1618`_.
Before, you only got exceptions later from ``argparse`` library,
giving no clue about the actual reason for double-added options.
* ``yield``-based tests are considered deprecated and will be removed in pytest-4.0.
Thanks `@nicoddemus`_ for the PR.
* ``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]``
to avoid conflicts with other distutils commands (see `#567`_). ``[pytest]`` sections in
``pytest.ini`` or ``tox.ini`` files are supported and unchanged.
Thanks `@nicoddemus`_ for the PR.
* Using ``pytest_funcarg__`` prefix to declare fixtures is considered deprecated and will be
removed in pytest-4.0 (`#1684`_).
Thanks `@nicoddemus`_ for the PR.
* Passing a command-line string to ``pytest.main()`` is considered deprecated and scheduled
for removal in pytest-4.0. It is recommended to pass a list of arguments instead (`#1723`_).
* Rename ``getfuncargvalue`` to ``getfixturevalue``. ``getfuncargvalue`` is
still present but is now considered deprecated. Thanks to `@RedBeardCode`_ and `@tomviner`_
for the PR (`#1626`_).
* ``optparse`` type usage now triggers DeprecationWarnings (`#1740`_).
* ``optparse`` backward compatibility supports float/complex types (`#457`_).
* Refined logic for determining the ``rootdir``, considering only valid
paths which fixes a number of issues: `#1594`_, `#1435`_ and `#1471`_.
Updated the documentation according to current behavior. Thanks to
`@blueyed`_, `@davehunt`_ and `@matthiasha`_ for the PR.
* Always include full assertion explanation. The previous behaviour was hiding
sub-expressions that happened to be False, assuming this was redundant information.
Thanks `@bagerard`_ for reporting (`#1503`_). Thanks to `@davehunt`_ and
`@tomviner`_ for PR.
* Better message in case of not using parametrized variable (see `#1539`_).
Thanks to `@tramwaj29`_ for the PR.
* Updated docstrings with a more uniform style.
* Add stderr write for ``pytest.exit(msg)`` during startup. Previously the message was never shown.
Thanks `@BeyondEvil`_ for reporting `#1210`_. Thanks to `@JonathonSonesen`_ and
`@tomviner`_ for the PR.
* No longer display the incorrect test deselection reason (`#1372`_).
Thanks `@ronnypfannschmidt`_ for the PR.
* The ``--resultlog`` command line option has been deprecated: it is little used
and there are more modern and better alternatives (see `#830`_).
Thanks `@nicoddemus`_ for the PR.
* Improve error message with fixture lookup errors: add an 'E' to the first
line and '>' to the rest. Fixes `#717`_. Thanks `@blueyed`_ for reporting and
a PR, `@eolo999`_ for the initial PR and `@tomviner`_ for his guidance during
EuroPython2016 sprint.
+ Bug Fixes
* Parametrize now correctly handles duplicated test ids.
* Fix internal error issue when the ``method`` argument is missing for
``teardown_method()`` (`#1605`_).
* Fix exception visualization in case the current working directory (CWD) gets
deleted during testing (`#1235`_). Thanks `@bukzor`_ for reporting. PR by
`@marscher`_.
* Improve test output for logical expression with brackets (`#925`_).
Thanks `@DRMacIver`_ for reporting and `@RedBeardCode`_ for the PR.
* Create correct diff for strings ending with newlines (`#1553`_).
Thanks `@Vogtinator`_ for reporting and `@RedBeardCode`_ and
`@tomviner`_ for the PR.
* ``ConftestImportFailure`` now shows the traceback making it easier to
identify bugs in ``conftest.py`` files (`#1516`_). Thanks `@txomon`_ for
the PR.
* Text documents without any doctests no longer appear as "skipped".
Thanks `@graingert`_ for reporting and providing a full PR (`#1580`_).
* Fixed collection of classes with custom ``__new__`` method.
Fixes `#1579`_. Thanks to `@Stranger6667`_ for the PR.
* Fixed scope overriding inside metafunc.parametrize (`#634`_).
Thanks to `@Stranger6667`_ for the PR.
* Fixed the total tests tally in junit xml output (`#1798`_).
Thanks to `@cryporchild`_ for the PR.
* Fixed off-by-one error with lines from ``request.node.warn``.
Thanks to `@blueyed`_ for the PR.
- update to version 2.9.2:
* fix #510: skip tests where one parameterize dimension was empty
thanks Alex Stapleton for the Report and @RonnyPfannschmidt for
the PR
* Fix Xfail does not work with condition keyword argument. Thanks
@astraw38 for reporting the issue (#1496) and @tomviner for PR the
(#1524).
* Fix win32 path issue when puttinging custom config file with
absolute path in pytest.main("-c your_absolute_path").
* Fix maximum recursion depth detection when raised error class is
not aware of unicode/encoded bytes. Thanks @prusse-martin for the
PR (#1506).
* Fix pytest.mark.skip mark when used in strict mode. Thanks
@pquentin for the PR and @RonnyPfannschmidt for showing how to fix
the bug.
* Minor improvements and fixes to the documentation. Thanks
@omarkohl for the PR.
* Fix --fixtures to show all fixture definitions as opposed to just
one per fixture name. Thanks to @hackebrot for the PR.
- update to version 2.9.1:
* Improve error message when a plugin fails to load. Thanks
@nicoddemus for the PR.
* Fix (#1178): pytest.fail with non-ascii characters raises an
internal pytest error. Thanks @nicoddemus for the PR.
* Fix (#469): junit parses report.nodeid incorrectly, when params
IDs contain ::. Thanks @tomviner for the PR (#1431).
* Fix (#578): SyntaxErrors containing non-ascii lines at the point
of failure generated an internal py.test error. Thanks @asottile
for the report and @nicoddemus for the PR.
* Fix (#1437): When passing in a bytestring regex pattern to
parameterize attempt to decode it as utf-8 ignoring errors.
* Fix (#649): parametrized test nodes cannot be specified to run on
the command line.
- update to version 2.9.0:
* New Features
+ New pytest.mark.skip mark, which unconditionally skips marked
tests. Thanks @MichaelAquilina for the complete PR (#1040).
+ --doctest-glob may now be passed multiple times in the
command-line. Thanks @jab and @nicoddemus for the PR.
+ New -rp and -rP reporting options give the summary and full
output of passing tests, respectively. Thanks to @codewarrior0 for
the PR.
+ pytest.mark.xfail now has a strict option which makes XPASS
tests to fail the test suite, defaulting to False. Theres also a
xfail_strict ini option that can be used to configure it
project-wise. Thanks @rabbbit for the request and @nicoddemus for
the PR (#1355).
+ Parser.addini now supports options of type bool. Thanks
@nicoddemus for the PR.
+ New ALLOW_BYTES doctest option strips b prefixes from byte
strings in doctest output (similar to ALLOW_UNICODE). Thanks
@jaraco for the request and @nicoddemus for the PR (#1287).
+ give a hint on KeyboardInterrupt to use the fulltrace option to
show the errors, this fixes #1366. Thanks to @hpk42 for the report
and @RonnyPfannschmidt for the PR.
+ catch IndexError exceptions when getting exception source
location. This fixes pytest internal error for dynamically
generated code (fixtures and tests) where source lines are fake by
intention
* Changes
+ Important: py.code has been merged into the pytest repository as
pytest._code. This decision was made because py.code had very few
uses outside pytest and the fact that it was in a different
repository made it difficult to fix bugs on its code in a timely
manner. The team hopes with this to be able to better refactor out
and improve that code. This change shouldnt affect users, but it
is useful to let users aware if they encounter any strange
behavior.
+ Keep in mind that the code for pytest._code is private and
experimental, so you definitely should not import it explicitly!
+ Please note that the original py.code is still available in
pylib.
+ pytest_enter_pdb now optionally receives the pytest config
object. Thanks @nicoddemus for the PR.
+ Removed code and documentation for Python 2.5 or lower versions,
including removal of the obsolete _pytest.assertion.oldinterpret
module. Thanks @nicoddemus for the PR (#1226).
+ Comparisons now always show up in full when CI or BUILD_NUMBER
is found in the environment, even when -vv isnt used. Thanks
@The-Compiler for the PR.
+ --lf and --ff now support long names: --last-failed and
--failed-first respectively. Thanks @MichaelAquilina for the PR.
+ Added expected exceptions to pytest.raises fail message
+ Collection only displays progress (“collecting X items”) when in
a terminal. This avoids cluttering the output when using
--color=yes to obtain colors in CI integrations systems (#1397).
* Bug Fixes
+ The -s and -c options should now work under xdist;
Config.fromdictargs now represents its input much more
faithfully. Thanks to @bukzor for the complete PR (#680).
+ Fix (#1290): support Python 3.5s @ operator in assertion
rewriting. Thanks @Shinkenjoe for report with test case and
@tomviner for the PR.
+ Fix formatting utf-8 explanation messages (#1379). Thanks @biern
for the PR.
+ Fix traceback style docs to describe all of the available
options (auto/long/short/line/native/no), with auto being the
default since v2.6. Thanks @hackebrot for the PR.
+ Fix (#1422): junit record_xml_property doesnt allow multiple
records with same name.
- update to version 2.8.7:
* fix #1338: use predictable object resolution for monkeypatch
- changes from version 2.8.6:
@ -78,200 +423,144 @@ Mon Feb 1 11:02:42 UTC 2016 - toddrme2178@gmail.com
* use pytest-runner for setuptools integration
* minor fixes for interaction with OS X El Capitan system integrity
protection (thanks Florian)
-------------------------------------------------------------------
Fri Oct 9 08:26:43 UTC 2015 - mcihar@suse.cz
- Update to 2.8.2:
2.8.2
-----
- fix #1085: proper handling of encoding errors when passing encoded byte
strings to pytest.parametrize in Python 2.
Thanks Themanwithoutaplan for the report and Bruno Oliveira for the PR.
- fix #1087: handling SystemError when passing empty byte strings to
pytest.parametrize in Python 3.
Thanks Paul Kehrer for the report and Bruno Oliveira for the PR.
- fix #995: fixed internal error when filtering tracebacks where one entry
was generated by an exec() statement.
Thanks Daniel Hahler, Ashley C Straw, Philippe Gauthier and Pavel Savchenko
for contributing and Bruno Oliveira for the PR.
2.8.1
-----
- Update to 2.8.1
- fix #1034: Add missing nodeid on pytest_logwarning call in
addhook. Thanks Simon Gomizelj for the PR.
- 'deprecated_call' is now only satisfied with a DeprecationWarning or
PendingDeprecationWarning. Before 2.8.0, it accepted any warning, and 2.8.0
made it accept only DeprecationWarning (but not PendingDeprecationWarning).
Thanks Alex Gaynor for the issue and Eric Hunsberger for the PR.
- fix issue #1073: avoid calling __getattr__ on potential plugin objects.
This fixes an incompatibility with pytest-django. Thanks Andreas Pelme,
Bruno Oliveira and Ronny Pfannschmidt for contributing and Holger Krekel
for the fix.
- Fix issue #704: handle versionconflict during plugin loading more
gracefully. Thanks Bruno Oliveira for the PR.
- Fix issue #1064: ""--junitxml" regression when used with the
"pytest-xdist" plugin, with test reports being assigned to the wrong tests.
Thanks Daniel Grunwald for the report and Bruno Oliveira for the PR.
- (experimental) adapt more SEMVER style versioning and change meaning of
master branch in git repo: "master" branch now keeps the bugfixes, changes
aimed for micro releases. "features" branch will only be be released
with minor or major pytest releases.
- Fix issue #766 by removing documentation references to distutils.
Thanks Russel Winder.
- Fix issue #1030: now byte-strings are escaped to produce item node ids
to make them always serializable.
Thanks Andy Freeland for the report and Bruno Oliveira for the PR.
- Python 2: if unicode parametrized values are convertible to ascii, their
ascii representation is used for the node id.
- Fix issue #411: Add __eq__ method to assertion comparison example.
Thanks Ben Webb.
- fix issue 877: properly handle assertion explanations with non-ascii repr
Thanks Mathieu Agopian for the report and Ronny Pfannschmidt for the PR.
- fix issue 1029: transform errors when writing cache values into pytest-warnings
2.8.0
-----------------------------
- Update to 2.8.0
- new ``--lf`` and ``-ff`` options to run only the last failing tests or
"failing tests first" from the last run. This functionality is provided
through porting the formerly external pytest-cache plugin into pytest core.
BACKWARD INCOMPAT: if you used pytest-cache's functionality to persist
data between test runs be aware that we don't serialize sets anymore.
Thanks Ronny Pfannschmidt for most of the merging work.
- "-r" option now accepts "a" to include all possible reports, similar
to passing "fEsxXw" explicitly (isse960).
Thanks Abhijeet Kasurde for the PR.
- avoid python3.5 deprecation warnings by introducing version
specific inspection helpers, thanks Michael Droettboom.
- fix issue562: @nose.tools.istest now fully respected.
- fix issue934: when string comparison fails and a diff is too large to display
without passing -vv, still show a few lines of the diff.
Thanks Florian Bruhin for the report and Bruno Oliveira for the PR.
- fix issue736: Fix a bug where fixture params would be discarded when combined
with parametrization markers.
Thanks to Markus Unterwaditzer for the PR.
- fix issue710: introduce ALLOW_UNICODE doctest option: when enabled, the
``u`` prefix is stripped from unicode strings in expected doctest output. This
allows doctests which use unicode to run in Python 2 and 3 unchanged.
Thanks Jason R. Coombs for the report and Bruno Oliveira for the PR.
- parametrize now also generates meaningful test IDs for enum, regex and class
objects (as opposed to class instances).
Thanks to Florian Bruhin for the PR.
- Add 'warns' to assert that warnings are thrown (like 'raises').
Thanks to Eric Hunsberger for the PR.
- Fix issue683: Do not apply an already applied mark. Thanks ojake for the PR.
- Deal with capturing failures better so fewer exceptions get lost to
/dev/null. Thanks David Szotten for the PR.
- fix issue730: deprecate and warn about the --genscript option.
Thanks Ronny Pfannschmidt for the report and Christian Pommranz for the PR.
- fix issue751: multiple parametrize with ids bug if it parametrizes class with
two or more test methods. Thanks Sergey Chipiga for reporting and Jan
Bednarik for PR.
- fix issue82: avoid loading conftest files from setup.cfg/pytest.ini/tox.ini
files and upwards by default (--confcutdir can still be set to override this).
Thanks Bruno Oliveira for the PR.
- fix issue768: docstrings found in python modules were not setting up session
fixtures. Thanks Jason R. Coombs for reporting and Bruno Oliveira for the PR.
- added `tmpdir_factory`, a session-scoped fixture that can be used to create
directories under the base temporary directory. Previously this object was
installed as a `_tmpdirhandler` attribute of the `config` object, but now it
is part of the official API and using `config._tmpdirhandler` is
deprecated.
Thanks Bruno Oliveira for the PR.
- fix issue808: pytest's internal assertion rewrite hook now implements the
optional PEP302 get_data API so tests can access data files next to them.
Thanks xmo-odoo for request and example and Bruno Oliveira for
the PR.
- rootdir and inifile are now displayed during usage errors to help
users diagnose problems such as unexpected ini files which add
unknown options being picked up by pytest. Thanks to Pavel Savchenko for
bringing the problem to attention in #821 and Bruno Oliveira for the PR.
- Summary bar now is colored yellow for warning
situations such as: all tests either were skipped or xpass/xfailed,
or no tests were run at all (this is a partial fix for issue500).
- fix issue812: pytest now exits with status code 5 in situations where no
tests were run at all, such as the directory given in the command line does
not contain any tests or as result of a command line option filters
all out all tests (-k for example).
Thanks Eric Siegerman (issue812) and Bruno Oliveira for the PR.
- Summary bar now is colored yellow for warning
situations such as: all tests either were skipped or xpass/xfailed,
or no tests were run at all (related to issue500).
Thanks Eric Siegerman.
- New `testpaths` ini option: list of directories to search for tests
when executing pytest from the root directory. This can be used
to speed up test collection when a project has well specified directories
for tests, being usually more practical than configuring norecursedirs for
all directories that do not contain tests.
Thanks to Adrian for idea (#694) and Bruno Oliveira for the PR.
- fix issue713: JUnit XML reports for doctest failures.
Thanks Punyashloka Biswal.
- fix issue970: internal pytest warnings now appear as "pytest-warnings" in
the terminal instead of "warnings", so it is clear for users that those
warnings are from pytest and not from the builtin "warnings" module.
Thanks Bruno Oliveira.
- Include setup and teardown in junitxml test durations.
Thanks Janne Vanhala.
- fix issue735: assertion failures on debug versions of Python 3.4+
- new option ``--import-mode`` to allow to change test module importing
behaviour to append to sys.path instead of prepending. This better allows
to run test modules against installated versions of a package even if the
package under test has the same import root. In this example::
testing/__init__.py
testing/test_pkg_under_test.py
pkg_under_test/
the tests will run against the installed version
of pkg_under_test when ``--import-mode=append`` is used whereas
by default they would always pick up the local version. Thanks Holger Krekel.
- pytester: add method ``TmpTestdir.delete_loaded_modules()``, and call it
from ``inline_run()`` to allow temporary modules to be reloaded.
Thanks Eduardo Schettino.
- internally refactor pluginmanager API and code so that there
is a clear distinction between a pytest-agnostic rather simple
pluginmanager and the PytestPluginManager which adds a lot of
@ -280,23 +569,18 @@ Fri Oct 9 08:26:43 UTC 2015 - mcihar@suse.cz
change but it might still break 3rd party plugins which relied on
details like especially the pluginmanager.add_shutdown() API.
Thanks Holger Krekel.
- pluginmanagement: introduce ``pytest.hookimpl`` and
``pytest.hookspec`` decorators for setting impl/spec
specific parameters. This substitutes the previous
now deprecated use of ``pytest.mark`` which is meant to
contain markers for test functions only.
- write/refine docs for "writing plugins" which now have their
own page and are separate from the "using/installing plugins`` page.
- fix issue732: properly unregister plugins from any hook calling
sites allowing to have temporary plugins during test execution.
- deprecate and warn about ``__multicall__`` argument in hook
implementations. Use the ``hookwrapper`` mechanism instead already
introduced with pytest-2.7.
- speed up pytest's own test suite considerably by using inprocess
tests by default (testrun can be modified with --runpytest=subprocess
to create subprocesses in many places instead). The main
@ -304,107 +588,77 @@ Fri Oct 9 08:26:43 UTC 2015 - mcihar@suse.cz
and "runpytest_inprocess" if you need a particular way of running
the test. In all cases you get back a RunResult but the inprocess
one will also have a "reprec" attribute with the recorded events/reports.
- fix monkeypatch.setattr("x.y", raising=False) to actually not raise
if "y" is not a pre-existing attribute. Thanks Florian Bruhin.
- fix issue741: make running output from testdir.run copy/pasteable
Thanks Bruno Oliveira.
- add a new ``--noconftest`` argument which ignores all ``conftest.py`` files.
- add ``file`` and ``line`` attributes to JUnit-XML output.
- fix issue890: changed extension of all documentation files from ``txt`` to
``rst``. Thanks to Abhijeet for the PR.
- fix issue714: add ability to apply indirect=True parameter on particular argnames.
Thanks Elizaveta239.
- fix issue890: changed extension of all documentation files from ``txt`` to
``rst``. Thanks to Abhijeet for the PR.
- fix issue957: "# doctest: SKIP" option will now register doctests as SKIPPED
rather than PASSED.
Thanks Thomas Grainger for the report and Bruno Oliveira for the PR.
- issue951: add new record_xml_property fixture, that supports logging
additional information on xml output. Thanks David Diaz for the PR.
- issue949: paths after normal options (for example `-s`, `-v`, etc) are now
properly used to discover `rootdir` and `ini` files.
Thanks Peter Lauri for the report and Bruno Oliveira for the PR.
2.7.3 (compared to 2.7.2)
-----------------------------
- Update to 2.7.3 (compared to 2.7.2)
- Allow 'dev', 'rc', or other non-integer version strings in `importorskip`.
Thanks to Eric Hunsberger for the PR.
- fix issue856: consider --color parameter in all outputs (for example
--fixtures). Thanks Barney Gale for the report and Bruno Oliveira for the PR.
- fix issue855: passing str objects as `plugins` argument to pytest.main
is now interpreted as a module name to be imported and registered as a
plugin, instead of silently having no effect.
Thanks xmo-odoo for the report and Bruno Oliveira for the PR.
- fix issue744: fix for ast.Call changes in Python 3.5+. Thanks
Guido van Rossum, Matthias Bussonnier, Stefan Zimmermann and
Thomas Kluyver.
- fix issue842: applying markers in classes no longer propagate this markers
to superclasses which also have markers.
Thanks xmo-odoo for the report and Bruno Oliveira for the PR.
- preserve warning functions after call to pytest.deprecated_call. Thanks
Pieter Mulder for PR.
- fix issue854: autouse yield_fixtures defined as class members of
unittest.TestCase subclasses now work as expected.
Thannks xmo-odoo for the report and Bruno Oliveira for the PR.
- fix issue833: --fixtures now shows all fixtures of collected test files, instead of just the
fixtures declared on the first one.
Thanks Florian Bruhin for reporting and Bruno Oliveira for the PR.
- fix issue863: skipped tests now report the correct reason when a skip/xfail
condition is met when using multiple markers.
Thanks Raphael Pierzina for reporting and Bruno Oliveira for the PR.
- optimized tmpdir fixture initialization, which should make test sessions
faster (specially when using pytest-xdist). The only visible effect
is that now pytest uses a subdirectory in the $TEMP directory for all
directories created by this fixture (defaults to $TEMP/pytest-$USER).
Thanks Bruno Oliveira for the PR.
2.7.2 (compared to 2.7.1)
-----------------------------
- Update to 2.7.2
- fix issue767: pytest.raises value attribute does not contain the exception
instance on Python 2.6. Thanks Eric Siegerman for providing the test
case and Bruno Oliveira for PR.
- Automatically create directory for junitxml and results log.
Thanks Aron Curzon.
- fix issue713: JUnit XML reports for doctest failures.
Thanks Punyashloka Biswal.
- fix issue735: assertion failures on debug versions of Python 3.4+
Thanks Benjamin Peterson.
- fix issue114: skipif marker reports to internal skipping plugin;
Thanks Floris Bruynooghe for reporting and Bruno Oliveira for the PR.
- fix issue748: unittest.SkipTest reports to internal pytest unittest plugin.
Thanks Thomas De Schampheleire for reporting and Bruno Oliveira for the PR.
- fix issue718: failed to create representation of sets containing unsortable
elements in python 2. Thanks Edison Gustavo Muenz.
- fix issue756, fix issue752 (and similar issues): depend on py-1.4.29
which has a refined algorithm for traceback generation.
- Move %check to -doc subpackage to avoid dependency loop
with new python3-hypothesis test dependency.
-------------------------------------------------------------------
Wed Jul 29 13:01:56 UTC 2015 - toddrme2178@gmail.com

View File

@ -15,35 +15,23 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# NOTE(saschpe): git invocation and pythonpath issues with testrepository
# enable testing with a build conditional (off by default):
%bcond_with test
Name: python-pytest
Version: 2.8.7
Version: 3.0.2
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Group: Development/Languages/Python
Url: http://pytest.org
Source: https://pypi.io/packages/source/p/pytest/pytest-%{version}.tar.gz
Source: https://files.pythonhosted.org/packages/source/p/pytest/pytest-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: unzip
BuildRequires: python-devel
BuildRequires: python-py >= 1.4.25
BuildRequires: python-setuptools
BuildRequires: unzip
# Test requirements:
BuildRequires: lsof
%if %{with test}
BuildRequires: python-mock
BuildRequires: python-pexpect
%endif
BuildRequires: python-PyYAML
BuildRequires: python-xml
Requires: python-py >= 1.4.29
Requires(post): update-alternatives
Requires(postun): update-alternatives
Requires(preun): update-alternatives
#/usr/bin/py.test imports pkg_resources
Requires: python-setuptools
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
@ -76,23 +64,18 @@ python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
rm %{buildroot}%{_bindir}/py.test
ln -s %{_bindir}/py.test-%{py_ver} %{buildroot}%{_bindir}/py.test
%if %{with test} && 0%{?suse_version} > 1110
%check
python setup.py test
%endif
%pre
# Since /usr/bin/py.test became ghosted to be used
# with update-alternatives, we have to get rid of the old binary resulting from the
# non-update-alternativies-ified package:
[ -h %{_bindir}/py.test ] || rm -f %{_bindir}/py.test
# Prepare for update-alternatives usage
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for p in py.test pytest ; do
mv %{buildroot}%{_bindir}/$p %{buildroot}%{_bindir}/$p-%{py_ver}
ln -s -f %{_sysconfdir}/alternatives/$p %{buildroot}%{_bindir}/$p
done
%post
update-alternatives \
--install %{_bindir}/py.test py.test %{_bindir}/py.test-%{py_ver} 20
--install %{_bindir}/py.test py.test %{_bindir}/py.test-%{py_ver} 20 \
--slave %{_bindir}/pytest pytest %{_bindir}/pytest-%{py_ver}
%preun
if [ $1 -eq 0 ] ; then
@ -101,12 +84,13 @@ fi
%files
%defattr(-,root,root,-)
%doc LICENSE README.rst
%if 0%{?suse_version} >= 1230
%ghost %{_sysconfdir}/alternatives/py.test
%endif
%ghost %{_bindir}/py.test
%doc AUTHORS LICENSE README.rst
%{_bindir}/py.test
%{_bindir}/pytest
%{_bindir}/py.test-%{py_ver}
%{_bindir}/pytest-%{py_ver}
%ghost %{_sysconfdir}/alternatives/py.test
%ghost %{_sysconfdir}/alternatives/pytest
%{python_sitelib}/*
%changelog