Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update pytest to 3.4.1 #36

Closed
wants to merge 1 commit into from
Closed

Conversation

pyup-bot
Copy link
Contributor

There's a new version of pytest available.
You are currently using 3.2.5. I have updated it to 3.4.1

These links might come in handy: PyPI | Changelog | Repo | Homepage

Changelog

3.4.1

=========================

Bug Fixes

  • Move import of doctest.UnexpectedException to top-level to avoid possible
    errors when using --pdb. (1810 <https://github.com/pytest-dev/pytest/issues/1810>_)
  • Added printing of captured stdout/stderr before entering pdb, and improved a
    test which was giving false negatives about output capturing. (3052 <https://github.com/pytest-dev/pytest/issues/3052>_)
  • Fix ordering of tests using parametrized fixtures which can lead to fixtures
    being created more than necessary. (3161 <https://github.com/pytest-dev/pytest/issues/3161>_)
  • Fix bug where logging happening at hooks outside of "test run" hooks would
    cause an internal error. (3184 <https://github.com/pytest-dev/pytest/issues/3184>_)
  • Detect arguments injected by unittest.mock.patch decorator correctly when
    pypi mock.patch is installed and imported. (3206 <https://github.com/pytest-dev/pytest/issues/3206>_)
  • Errors shown when a pytest.raises() with match= fails are now cleaner
    on what happened: When no exception was raised, the "matching '...'" part got
    removed as it falsely implies that an exception was raised but it didn't
    match. When a wrong exception was raised, it's now thrown (like
    pytest.raised() without match= would) instead of complaining about
    the unmatched text. (3222 <https://github.com/pytest-dev/pytest/issues/3222>_)
  • Fixed output capture handling in doctests on macOS. (985 <https://github.com/pytest-dev/pytest/issues/985>_)

Improved Documentation

  • Add Sphinx parameter docs for match and message args to
    pytest.raises. (3202 <https://github.com/pytest-dev/pytest/issues/3202>_)

Trivial/Internal Changes

  • pytest has changed the publication procedure and is now being published to
    PyPI directly from Travis. (3060 <https://github.com/pytest-dev/pytest/issues/3060>_)
  • Rename ParameterSet._for_parameterize() to _for_parametrize() in
    order to comply with the naming convention. (3166 <https://github.com/pytest-dev/pytest/issues/3166>_)
  • Skip failing pdb/doctest test on mac. (985 <https://github.com/pytest-dev/pytest/issues/985>_)

3.4.0

=========================

Deprecations and Removals

  • All pytest classes now subclass object for better Python 2/3 compatibility.
    This should not affect user code except in very rare edge cases. (2147 <https://github.com/pytest-dev/pytest/issues/2147>_)

Features

  • Introduce empty_parameter_set_mark ini option to select which mark to
    apply when pytest.mark.parametrize is given an empty set of parameters.
    Valid options are skip (default) and xfail. Note that it is planned
    to change the default to xfail in future releases as this is considered
    less error prone. (2527 <https://github.com/pytest-dev/pytest/issues/2527>_)
  • Incompatible change: after community feedback the logging <https://docs.pytest.org/en/latest/logging.html>_ functionality has
    undergone some changes. Please consult the logging documentation <https://docs.pytest.org/en/latest/logging.htmlincompatible-changes-in-pytest-3-4>_
    for details. (3013 <https://github.com/pytest-dev/pytest/issues/3013>_)
  • Console output falls back to "classic" mode when capturing is disabled (-s),
    otherwise the output gets garbled to the point of being useless. (3038 <https://github.com/pytest-dev/pytest/issues/3038>_)
  • New pytest_runtest_logfinish <https://docs.pytest.org/en/latest/writing_plugins.html_pytest.hookspec.pytest_runtest_logfinish>_
    hook which is called when a test item has finished executing, analogous to
    pytest_runtest_logstart <https://docs.pytest.org/en/latest/writing_plugins.html_pytest.hookspec.pytest_runtest_start>.
    (3101 <https://github.com/pytest-dev/pytest/issues/3101>
    )
  • Improve performance when collecting tests using many fixtures. (3107 <https://github.com/pytest-dev/pytest/issues/3107>_)
  • New caplog.get_records(when) method which provides access to the captured
    records for the "setup", "call" and "teardown"
    testing stages. (3117 <https://github.com/pytest-dev/pytest/issues/3117>_)
  • New fixture record_xml_attribute that allows modifying and inserting
    attributes on the <testcase> xml node in JUnit reports. (3130 <https://github.com/pytest-dev/pytest/issues/3130>_)
  • The default cache directory has been renamed from .cache to
    .pytest_cache after community feedback that the name .cache did not
    make it clear that it was used by pytest. (3138 <https://github.com/pytest-dev/pytest/issues/3138>_)
  • Colorize the levelname column in the live-log output. (3142 <https://github.com/pytest-dev/pytest/issues/3142>_)

Bug Fixes

  • Fix hanging pexpect test on MacOS by using flush() instead of wait().
    (2022 <https://github.com/pytest-dev/pytest/issues/2022>_)
  • Fix restoring Python state after in-process pytest runs with the
    pytester plugin; this may break tests using multiple inprocess
    pytest runs if later ones depend on earlier ones leaking global interpreter
    changes. (3016 <https://github.com/pytest-dev/pytest/issues/3016>_)
  • Fix skipping plugin reporting hook when test aborted before plugin setup
    hook. (3074 <https://github.com/pytest-dev/pytest/issues/3074>_)
  • Fix progress percentage reported when tests fail during teardown. (3088 <https://github.com/pytest-dev/pytest/issues/3088>_)
  • Incompatible change: -o/--override option no longer eats all the
    remaining options, which can lead to surprising behavior: for example,
    pytest -o foo=1 /path/to/test.py would fail because /path/to/test.py
    would be considered as part of the -o command-line argument. One
    consequence of this is that now multiple configuration overrides need
    multiple -o flags: pytest -o foo=1 -o bar=2. (3103 <https://github.com/pytest-dev/pytest/issues/3103>_)

Improved Documentation

  • Document hooks (defined with historic=True) which cannot be used with
    hookwrapper=True. (2423 <https://github.com/pytest-dev/pytest/issues/2423>_)
  • Clarify that warning capturing doesn't change the warning filter by default.
    (2457 <https://github.com/pytest-dev/pytest/issues/2457>_)
  • Clarify a possible confusion when using pytest_fixture_setup with fixture
    functions that return None. (2698 <https://github.com/pytest-dev/pytest/issues/2698>_)
  • Fix the wording of a sentence on doctest flags used in pytest. (3076 <https://github.com/pytest-dev/pytest/issues/3076>_)
  • Prefer https://*.readthedocs.io over http://*.rtfd.org for links in
    the documentation. (3092 <https://github.com/pytest-dev/pytest/issues/3092>_)
  • Improve readability (wording, grammar) of Getting Started guide (3131 <https://github.com/pytest-dev/pytest/issues/3131>_)
  • Added note that calling pytest.main multiple times from the same process is
    not recommended because of import caching. (3143 <https://github.com/pytest-dev/pytest/issues/3143>_)

Trivial/Internal Changes

  • Show a simple and easy error when keyword expressions trigger a syntax error
    (for example, "-k foo and import" will show an error that you can not use
    the import keyword in expressions). (2953 <https://github.com/pytest-dev/pytest/issues/2953>_)
  • Change parametrized automatic test id generation to use the __name__
    attribute of functions instead of the fallback argument name plus counter.
    (2976 <https://github.com/pytest-dev/pytest/issues/2976>_)
  • Replace py.std with stdlib imports. (3067 <https://github.com/pytest-dev/pytest/issues/3067>_)
  • Corrected 'you' to 'your' in logging docs. (3129 <https://github.com/pytest-dev/pytest/issues/3129>_)

3.3.2

=========================

Bug Fixes

  • pytester: ignore files used to obtain current user metadata in the fd leak
    detector. (2784 <https://github.com/pytest-dev/pytest/issues/2784>_)
  • Fix memory leak where objects returned by fixtures were never destructed
    by the garbage collector. (2981 <https://github.com/pytest-dev/pytest/issues/2981>_)
  • Fix conversion of pyargs to filename to not convert symlinks on Python 2. (2985 <https://github.com/pytest-dev/pytest/issues/2985>_)
  • PYTEST_DONT_REWRITE is now checked for plugins too rather than only for
    test modules. (2995 <https://github.com/pytest-dev/pytest/issues/2995>_)

Improved Documentation

  • Add clarifying note about behavior of multiple parametrized arguments (3001 <https://github.com/pytest-dev/pytest/issues/3001>_)

Trivial/Internal Changes

  • Code cleanup. (3015 <https://github.com/pytest-dev/pytest/issues/3015>,
    3021 <https://github.com/pytest-dev/pytest/issues/3021>
    )
  • Clean up code by replacing imports and references of _ast to ast. (3018 <https://github.com/pytest-dev/pytest/issues/3018>_)

3.3.1

=========================

Bug Fixes

  • Fix issue about -p no:<plugin> having no effect. (2920 <https://github.com/pytest-dev/pytest/issues/2920>_)
  • Fix regression with warnings that contained non-strings in their arguments in
    Python 2. (2956 <https://github.com/pytest-dev/pytest/issues/2956>_)
  • Always escape null bytes when setting PYTEST_CURRENT_TEST. (2957 <https://github.com/pytest-dev/pytest/issues/2957>_)
  • Fix ZeroDivisionError when using the testmon plugin when no tests
    were actually collected. (2971 <https://github.com/pytest-dev/pytest/issues/2971>_)
  • Bring back TerminalReporter.writer as an alias to
    TerminalReporter._tw. This alias was removed by accident in the 3.3.0
    release. (2984 <https://github.com/pytest-dev/pytest/issues/2984>_)
  • The pytest-capturelog plugin is now also blacklisted, avoiding errors when
    running pytest with it still installed. (3004 <https://github.com/pytest-dev/pytest/issues/3004>_)

Improved Documentation

  • Fix broken link to plugin pytest-localserver. (2963 <https://github.com/pytest-dev/pytest/issues/2963>_)

Trivial/Internal Changes

  • Update github "bugs" link in CONTRIBUTING.rst (2949 <https://github.com/pytest-dev/pytest/issues/2949>_)

3.3.0

=========================

Deprecations and Removals

  • Pytest no longer supports Python 2.6 and 3.3. Those Python versions
    are EOL for some time now and incur maintenance and compatibility costs on
    the pytest core team, and following up with the rest of the community we
    decided that they will no longer be supported starting on this version. Users
    which still require those versions should pin pytest to <3.3. (2812 <https://github.com/pytest-dev/pytest/issues/2812>_)
  • Remove internal _preloadplugins() function. This removal is part of the
    pytest_namespace() hook deprecation. (2636 <https://github.com/pytest-dev/pytest/issues/2636>_)
  • Internally change CallSpec2 to have a list of marks instead of a broken
    mapping of keywords. This removes the keywords attribute of the internal
    CallSpec2 class. (2672 <https://github.com/pytest-dev/pytest/issues/2672>_)
  • Remove ParameterSet.deprecated_arg_dict - its not a public api and the lack
    of the underscore was a naming error. (2675 <https://github.com/pytest-dev/pytest/issues/2675>_)
  • Remove the internal multi-typed attribute Node._evalskip and replace it
    with the boolean Node._skipped_by_mark. (2767 <https://github.com/pytest-dev/pytest/issues/2767>_)
  • The params list passed to pytest.fixture is now for
    all effects considered immutable and frozen at the moment of the pytest.fixture
    call. Previously the list could be changed before the first invocation of the fixture
    allowing for a form of dynamic parametrization (for example, updated from command-line options),
    but this was an unwanted implementation detail which complicated the internals and prevented
    some internal cleanup. See issue 2959 <https://github.com/pytest-dev/pytest/issues/2959>_
    for details and a recommended workaround.

Features

  • pytest_fixture_post_finalizer hook can now receive a request
    argument. (2124 <https://github.com/pytest-dev/pytest/issues/2124>_)
  • Replace the old introspection code in compat.py that determines the available
    arguments of fixtures with inspect.signature on Python 3 and
    funcsigs.signature on Python 2. This should respect __signature__
    declarations on functions. (2267 <https://github.com/pytest-dev/pytest/issues/2267>_)
  • Report tests with global pytestmark variable only once. (2549 <https://github.com/pytest-dev/pytest/issues/2549>_)
  • Now pytest displays the total progress percentage while running tests. The
    previous output style can be set by configuring the console_output_style
    setting to classic. (2657 <https://github.com/pytest-dev/pytest/issues/2657>_)
  • Match warns signature to raises by adding match keyword. (2708 <https://github.com/pytest-dev/pytest/issues/2708>_)
  • Pytest now captures and displays output from the standard logging module.
    The user can control the logging level to be captured by specifying options
    in pytest.ini, the command line and also during individual tests using
    markers. Also, a caplog fixture is available that enables users to test
    the captured log during specific tests (similar to capsys for example).
    For more information, please see the logging docs <https://docs.pytest.org/en/latest/logging.html>. This feature was
    introduced by merging the popular pytest-catchlog <https://pypi.org/project/pytest-catchlog/>
    plugin, thanks to Thomas Hisch <https://github.com/thisch>. Be advised that during the merging the
    backward compatibility interface with the defunct pytest-capturelog has
    been dropped. (2794 <https://github.com/pytest-dev/pytest/issues/2794>
    )
  • Add allow_module_level kwarg to pytest.skip(), enabling to skip the
    whole module. (2808 <https://github.com/pytest-dev/pytest/issues/2808>_)
  • Allow setting file_or_dir, -c, and -o in PYTEST_ADDOPTS. (2824 <https://github.com/pytest-dev/pytest/issues/2824>_)
  • Return stdout/stderr capture results as a namedtuple, so out and
    err can be accessed by attribute. (2879 <https://github.com/pytest-dev/pytest/issues/2879>_)
  • Add capfdbinary, a version of capfd which returns bytes from
    readouterr(). (2923 <https://github.com/pytest-dev/pytest/issues/2923>_)
  • Add capsysbinary a version of capsys which returns bytes from
    readouterr(). (2934 <https://github.com/pytest-dev/pytest/issues/2934>_)
  • Implement feature to skip setup.py files when run with
    --doctest-modules. (502 <https://github.com/pytest-dev/pytest/issues/502>_)

Bug Fixes

  • Resume output capturing after capsys/capfd.disabled() context manager.
    (1993 <https://github.com/pytest-dev/pytest/issues/1993>_)
  • pytest_fixture_setup and pytest_fixture_post_finalizer hooks are now
    called for all conftest.py files. (2124 <https://github.com/pytest-dev/pytest/issues/2124>_)
  • If an exception happens while loading a plugin, pytest no longer hides the
    original traceback. In Python 2 it will show the original traceback with a new
    message that explains in which plugin. In Python 3 it will show 2 canonized
    exceptions, the original exception while loading the plugin in addition to an
    exception that pytest throws about loading a plugin. (2491 <https://github.com/pytest-dev/pytest/issues/2491>_)
  • capsys and capfd can now be used by other fixtures. (2709 <https://github.com/pytest-dev/pytest/issues/2709>_)
  • Internal pytester plugin properly encodes bytes arguments to
    utf-8. (2738 <https://github.com/pytest-dev/pytest/issues/2738>_)
  • testdir now uses use the same method used by tmpdir to create its
    temporary directory. This changes the final structure of the testdir
    directory slightly, but should not affect usage in normal scenarios and
    avoids a number of potential problems. (2751 <https://github.com/pytest-dev/pytest/issues/2751>_)
  • Pytest no longer complains about warnings with unicode messages being
    non-ascii compatible even for ascii-compatible messages. As a result of this,
    warnings with unicode messages are converted first to an ascii representation
    for safety. (2809 <https://github.com/pytest-dev/pytest/issues/2809>_)
  • Change return value of pytest command when --maxfail is reached from
    2 (interrupted) to 1 (failed). (2845 <https://github.com/pytest-dev/pytest/issues/2845>_)
  • Fix issue in assertion rewriting which could lead it to rewrite modules which
    should not be rewritten. (2939 <https://github.com/pytest-dev/pytest/issues/2939>_)
  • Handle marks without description in pytest.ini. (2942 <https://github.com/pytest-dev/pytest/issues/2942>_)

Trivial/Internal Changes

  • pytest now depends on attrs <https://pypi.org/project/attrs/>_ for internal
    structures to ease code maintainability. (2641 <https://github.com/pytest-dev/pytest/issues/2641>_)
  • Refactored internal Python 2/3 compatibility code to use six. (2642 <https://github.com/pytest-dev/pytest/issues/2642>_)
  • Stop vendoring pluggy - we're missing out on its latest changes for not
    much benefit (2719 <https://github.com/pytest-dev/pytest/issues/2719>_)
  • Internal refactor: simplify ascii string escaping by using the
    backslashreplace error handler in newer Python 3 versions. (2734 <https://github.com/pytest-dev/pytest/issues/2734>_)
  • Remove unnecessary mark evaluator in unittest plugin (2767 <https://github.com/pytest-dev/pytest/issues/2767>_)
  • Calls to Metafunc.addcall now emit a deprecation warning. This function
    is scheduled to be removed in pytest-4.0. (2876 <https://github.com/pytest-dev/pytest/issues/2876>_)
  • Internal move of the parameterset extraction to a more maintainable place.
    (2877 <https://github.com/pytest-dev/pytest/issues/2877>_)
  • Internal refactoring to simplify scope node lookup. (2910 <https://github.com/pytest-dev/pytest/issues/2910>_)
  • Configure pytest to prevent pip from installing pytest in unsupported
    Python versions. (2922 <https://github.com/pytest-dev/pytest/issues/2922>_)

Got merge conflicts? Close this PR and delete the branch. I'll create a new PR for you.

Happy merging! 🤖

@pyup-bot pyup-bot mentioned this pull request Feb 21, 2018
@coveralls
Copy link

Coverage Status

Coverage remained the same at 100.0% when pulling 4e7fafc on pyup-update-pytest-3.2.5-to-3.4.1 into 666faca on master.

@pyup-bot
Copy link
Contributor Author

pyup-bot commented Mar 6, 2018

Closing this in favor of #38

@pyup-bot pyup-bot closed this Mar 6, 2018
@XayOn XayOn deleted the pyup-update-pytest-3.2.5-to-3.4.1 branch March 6, 2018 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants