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

chore(deps): update dependency pytest to v5 - autoclosed #17

Closed
wants to merge 1 commit into from

Conversation

smartway-bot[bot]
Copy link

@smartway-bot smartway-bot bot commented Jul 30, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pytest (changelog) ^3.0 -> ^5.4 age adoption passing confidence

Release Notes

pytest-dev/pytest (pytest)

v5.4.3

Compare Source

pytest 5.4.3 (2020-06-02)

Bug Fixes

  • #​6428: Paths appearing in error messages are now correct in case the current working directory has
    changed since the start of the session.
  • #​6755: Support deleting paths longer than 260 characters on windows created inside tmpdir.
  • #​6956: Prevent pytest from printing ConftestImportFailure traceback to stdout.
  • #​7150: Prevent hiding the underlying exception when ConfTestImportFailure is raised.
  • #​7215: Fix regression where running with --pdb would call the tearDown methods of unittest.TestCase
    subclasses for skipped tests.

v5.4.2

Compare Source

pytest 5.4.2 (2020-05-08)

Bug Fixes

  • #​6871: Fix crash with captured output when using the capsysbinary fixture <capsysbinary>.
  • #​6924: Ensure a unittest.IsolatedAsyncioTestCase is actually awaited.
  • #​6925: Fix TerminalRepr instances to be hashable again.
  • #​6947: Fix regression where functions registered with TestCase.addCleanup were not being called on test failures.
  • #​6951: Allow users to still set the deprecated TerminalReporter.writer attribute.
  • #​6992: Revert "tmpdir: clean up indirection via config for factories" #​6767 as it breaks pytest-xdist.
  • #​7110: Fixed regression: asyncbase.TestCase tests are executed correctly again.
  • #​7143: Fix File.from_constructor so it forwards extra keyword arguments to the constructor.
  • #​7145: Classes with broken __getattribute__ methods are displayed correctly during failures.
  • #​7180: Fix _is_setup_py for files encoded differently than locale.

v5.4.1

Compare Source

pytest 5.4.1 (2020-03-13)

Bug Fixes

  • #​6909: Revert the change introduced by #​6330, which required all arguments to @pytest.mark.parametrize to be explicitly defined in the function signature.

    The intention of the original change was to remove what was expected to be an unintended/surprising behavior, but it turns out many people relied on it, so the restriction has been reverted.

  • #​6910: Fix crash when plugins return an unknown stats while using the --reportlog option.

v5.4.0: pytest 5.4.0 (2020-03-12)

Compare Source

Breaking Changes

  • #​6316: Matching of -k EXPRESSION to test names is now case-insensitive.

  • #​6443: Plugins specified with -p are now loaded after internal plugins, which results in their hooks being called before the internal ones.

    This makes the -p behavior consistent with PYTEST_PLUGINS.

  • #​6637: Removed the long-deprecated pytest_itemstart hook.

    This hook has been marked as deprecated and not been even called by pytest for over 10 years now.

  • #​6673: Reversed / fix meaning of "+/-" in error diffs. "-" means that sth. expected is missing in the result and "+" means that there are unexpected extras in the result.

  • #​6737: The cached_result attribute of FixtureDef is now set to None when
    the result is unavailable, instead of being deleted.

    If your plugin performs checks like hasattr(fixturedef, 'cached_result'),
    for example in a pytest_fixture_post_finalizer hook implementation, replace
    it with fixturedef.cached_result is not None. If you del the attribute,
    set it to None instead.

Deprecations

  • #​3238: Option --no-print-logs is deprecated and meant to be removed in a future release. If you use --no-print-logs, please try out --show-capture and
    provide feedback.

    --show-capture command-line option was added in pytest 3.5.0 and allows to specify how to
    display captured output when tests fail: no, stdout, stderr, log or all (the default).

  • #​571: Deprecate the unused/broken [pytest_collect_directory]{.title-ref} hook.
    It was misaligned since the removal of the Directory collector in 2010
    and incorrect/unusable as soon as collection was split from test execution.

  • #​5975: Deprecate using direct constructors for Nodes.

    Instead they are new constructed via Node.from_parent.

    This transitional mechanism enables us to detangle the very intensely
    entangled Node relationships by enforcing more controlled creation/configruation patterns.

    As part of that session/config are already disallowed parameters and as we work on the details we might need disallow a few more as well.

    Subclasses are expected to use [super().from_parent]{.title-ref} if they intend to expand the creation of [Nodes]{.title-ref}.

  • #​6779: The TerminalReporter.writer attribute has been deprecated and should no longer be used. This
    was inadvertently exposed as part of the public API of that plugin and ties it too much
    with py.io.TerminalWriter.

Features

  • #​4597: New --capture=tee-sys <capture-method>{.interpreted-text role="ref"} option to allow both live printing and capturing of test output.
  • #​5712: Now all arguments to @pytest.mark.parametrize need to be explicitly declared in the function signature or via indirect.
    Previously it was possible to omit an argument if a fixture with the same name existed, which was just an accident of implementation and was not meant to be a part of the API.
  • #​6454: Changed default for [-r]{.title-ref} to [fE]{.title-ref}, which displays failures and errors in the short test summary <pytest.detailed_failed_tests_usage>{.interpreted-text role="ref"}. [-rN]{.title-ref} can be used to disable it (the old behavior).
  • #​6469: New options have been added to the junit_logging{.interpreted-text role="confval"} option: log, out-err, and all.
  • #​6834: Excess warning summaries are now collapsed per file to ensure readable display of warning summaries.

Improvements

  • #​1857: pytest.mark.parametrize accepts integers for ids again, converting it to strings.

  • #​449: Use "yellow" main color with any XPASSED tests.

  • #​4639: Revert "A warning is now issued when assertions are made for None".

    The warning proved to be less useful than initially expected and had quite a
    few false positive cases.

  • #​5686: tmpdir_factory.mktemp now fails when given absolute and non-normalized paths.

  • #​5984: The pytest_warning_captured hook now receives a location parameter with the code location that generated the warning.

  • #​6213: pytester: the testdir fixture respects environment settings from the monkeypatch fixture for inner runs.

  • #​6247: --fulltrace is honored with collection errors.

  • #​6384: Make [--showlocals]{.title-ref} work also with [--tb=short]{.title-ref}.

  • #​6653: Add support for matching lines consecutively with LineMatcher <_pytest.pytester.LineMatcher>{.interpreted-text role="attr"}'s ~_pytest.pytester.LineMatcher.fnmatch_lines{.interpreted-text role="func"} and ~_pytest.pytester.LineMatcher.re_match_lines{.interpreted-text role="func"}.

  • #​6658: Code is now highlighted in tracebacks when pygments is installed.

    Users are encouraged to install pygments into their environment and provide feedback, because
    the plan is to make pygments a regular dependency in the future.

  • #​6795: Import usage error message with invalid [-o]{.title-ref} option.

  • #​759: pytest.mark.parametrize supports iterators and generators for ids.

Bug Fixes

  • #​310: Add support for calling [pytest.xfail()]{.title-ref} and [pytest.importorskip()]{.title-ref} with doctests.

  • #​3823: --trace now works with unittests.

  • #​4445: Fixed some warning reports produced by pytest to point to the correct location of the warning in the user's code.

  • #​5301: Fix --last-failed to collect new tests from files with known failures.

  • #​5928: Report PytestUnknownMarkWarning at the level of the user's code, not pytest's.

  • #​5991: Fix interaction with --pdb and unittests: do not use unittest's TestCase.debug().

  • #​6334: Fix summary entries appearing twice when f/F and s/S report chars were used at the same time in the -r command-line option (for example -rFf).

    The upper case variants were never documented and the preferred form should be the lower case.

  • #​6409: Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.

  • #​6454: [--disable-warnings]{.title-ref} is honored with [-ra]{.title-ref} and [-rA]{.title-ref}.

  • #​6497: Fix bug in the comparison of request key with cached key in fixture.

    A construct if key == cached_key: can fail either because == is explicitly disallowed, or for, e.g., NumPy arrays, where the result of a == b cannot generally be converted to [bool]{.title-ref}.
    The implemented fix replaces [==]{.title-ref} with is.

  • #​6557: Make capture output streams .write() method return the same return value from original streams.

  • #​6566: Fix EncodedFile.writelines to call the underlying buffer's writelines method.

  • #​6575: Fix internal crash when faulthandler starts initialized
    (for example with PYTHONFAULTHANDLER=1 environment variable set) and faulthandler_timeout defined
    in the configuration file.

  • #​6597: Fix node ids which contain a parametrized empty-string variable.

  • #​6646: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's testdir.runpytest <_pytest.pytester.Testdir.runpytest>{.interpreted-text role="func"} etc.

  • #​6660: pytest.exit() <_pytest.outcomes.exit>{.interpreted-text role="func"} is handled when emitted from the pytest_sessionfinish <_pytest.hookspec.pytest_sessionfinish>{.interpreted-text role="func"} hook. This includes quitting from a debugger.

  • #​6752: When :pypytest.raises{.interpreted-text role="func"} is used as a function (as opposed to a context manager),
    a [match]{.title-ref} keyword argument is now passed through to the tested function. Previously
    it was swallowed and ignored (regression in pytest 5.1.0).

  • #​6801: Do not display empty lines inbetween traceback for unexpected exceptions with doctests.

  • #​6802: The testdir fixture <testdir>{.interpreted-text role="fixture"} works within doctests now.

Improved Documentation

  • #​6696: Add list of fixtures to start of fixture chapter.
  • #​6742: Expand first sentence on fixtures into a paragraph.

Trivial/Internal Changes

  • #​6404: Remove usage of parser module, deprecated in Python 3.9.

v5.3.5

Compare Source

pytest 5.3.5 (2020-01-29)

Bug Fixes

  • #​6517: Fix
    regression in pytest 5.3.4 causing an INTERNALERROR due to a wrong
    assertion.

v5.3.4

Compare Source

pytest 5.3.4 (2020-01-20)

Bug Fixes

  • #​6496: Revert
    #​6436:
    unfortunately this change has caused a number of regressions in many
    suites, so the team decided to revert this change and make a new
    release while we continue to look for a solution.

v5.3.3

Compare Source

pytest 5.3.3 (2020-01-16)

Bug Fixes

  • #​2780: Captured
    output during teardown is shown with -rP.
  • #​5971: Fix a
    pytest-xdist crash when dealing with exceptions raised in
    subprocesses created by the multiprocessing module.
  • #​6436:
    FixtureDef <_pytest.fixtures.FixtureDef> objects now properly
    register their finalizers with autouse and parameterized fixtures
    that execute before them in the fixture stack so they are torn down
    at the right times, and in the right order.
  • #​6532: Fix
    parsing of outcomes containing multiple errors with testdir
    results (regression in 5.3.0).

Trivial/Internal Changes

  • #​6350:
    Optimized automatic renaming of test parameter IDs.

v5.3.2

Compare Source

pytest 5.3.2 (2019-12-13)

Improvements

  • #​4639: Revert
    "A warning is now issued when assertions are made for None".

    The warning proved to be less useful than initially expected and had
    quite a few false positive cases.

Bug Fixes

  • #​5430:
    junitxml: Logs for failed test are now passed to junit report in
    case the test fails during call phase.
  • #​6290: The
    supporting files in the .pytest_cache directory are kept with
    --cache-clear, which only clears cached values now.
  • #​6301: Fix
    assertion rewriting for egg-based distributions and editable
    installs (pip install --editable).

v5.3.1

Compare Source

pytest 5.3.1 (2019-11-25)

Improvements

  • #​6231: Improve check for misspelling of pytest.mark.parametrize.
  • #​6257: Handle exit.Exception raised in notify_exception (via pytest_internalerror), e.g. when quitting pdb from post mortem.

Bug Fixes

  • #​5914: pytester: fix no_fnmatch_line when used after positive matching.
  • #​6082: Fix line detection for doctest samples inside property docstrings, as a workaround to bpo-17446.
  • #​6254: Fix compatibility with pytest-parallel (regression in pytest 5.3.0).
  • #​6255: Clear the sys.last_traceback, sys.last_type and sys.last_value attributes by deleting them instead of setting them to None. This better matches the behaviour of the Python standard library.

v5.3.0

Compare Source

pytest 5.3.0 (2019-11-19)

Deprecations

  • #​6179: The
    default value of junit_family option will change to xunit2 in
    pytest 6.0, given that this is the version supported by default in
    modern tools that manipulate this type of file.

    In order to smooth the transition, pytest will issue a warning in
    case the --junitxml option is given in the command line but
    junit_family is not explicitly configured in pytest.ini.

    For more information, see the
    docs
    .

Features

  • #​4488: The
    pytest team has created the
    pytest-reportlog
    plugin, which provides a new --report-log=FILE option that writes
    report logs into a file as the test session executes.

    Each line of the report log contains a self contained JSON object
    corresponding to a testing event, such as a collection or a test
    result report. The file is guaranteed to be flushed after writing
    each line, so systems can read and process events in real-time.

    The plugin is meant to replace the --resultlog option, which is
    deprecated and meant to be removed in a future release. If you use
    --resultlog, please try out pytest-reportlog and
    provide feedback.

  • #​4730: When
    sys.pycache_prefix (Python 3.8+) is set, it will be used by pytest
    to cache test files changed by the assertion rewriting mechanism.

    This makes it easier to benefit of cached .pyc files even on file
    systems without permissions.

  • #​5515: Allow
    selective auto-indentation of multiline log messages.

    Adds command line option --log-auto-indent, config option
    log_auto_indent and support for per-entry configuration of
    indentation behavior on calls to logging.log().

    Alters the default for auto-indention from on to off. This
    restores the older behavior that existed prior to v4.6.0. This
    reversion to earlier behavior was done because it is better to
    activate new features that may lead to broken tests explicitly
    rather than implicitly.

  • #​5914:
    pytester learned two new functions,
    no_fnmatch_line
    and
    no_re_match_line.

    The functions are used to ensure the captured text does not match
    the given pattern.

    The previous idiom was to use re.match:

    assert re.match(pat, result.stdout.str()) is None
    

    Or the in operator:

    assert text in result.stdout.str()
    

    But the new functions produce best output on failure.

  • #​6057: Added
    tolerances to complex values when printing pytest.approx.

    For example, repr(pytest.approx(3+4j)) returns
    (3+4j) ± 5e-06 ∠ ±180°. This is polar notation indicating a circle
    around the expected value, with a radius of 5e-06. For approx
    comparisons to return True, the actual value should fall within
    this circle.

  • #​6061: Added
    the pluginmanager as an argument to pytest_addoption so that hooks
    can be invoked when setting up command line options. This is useful
    for having one plugin communicate things to another plugin, such as
    default values or which set of command line options to add.

Improvements

  • #​5061: Use
    multiple colors with terminal summary statistics.

  • #​5630: Quitting
    from debuggers is now properly handled in doctest items.

  • #​5924: Improved
    verbose diff output with sequences.

    Before:

    E   AssertionError: assert ['version', '...version_info'] == ['version', '...version', ...]
    E     Right contains 3 more items, first extra item: ' '
    E     Full diff:
    E     - ['version', 'version_info', 'sys.version', 'sys.version_info']
    E     + ['version',
    E     +  'version_info',
    E     +  'sys.version',
    E     +  'sys.version_info',
    E     +  ' ',
    E     +  'sys.version',
    E     +  'sys.version_info']
    

    After:

    E   AssertionError: assert ['version', '...version_info'] == ['version', '...version', ...]
    E     Right contains 3 more items, first extra item: ' '
    E     Full diff:
    E       [
    E        'version',
    E        'version_info',
    E        'sys.version',
    E        'sys.version_info',
    E     +  ' ',
    E     +  'sys.version',
    E     +  'sys.version_info',
    E       ]
    
  • #​5936: Display
    untruncated assertion message with -vv.

  • #​5990: Fixed
    plurality mismatch in test summary (e.g. display "1 error" instead
    of "1 errors").

  • #​6008:
    Config.InvocationParams.args is now always a tuple to better
    convey that it should be immutable and avoid
    accidental modifications.

  • #​6023:
    pytest.main now returns a pytest.ExitCode instance now, except
    for when custom exit codes are used (where it returns int
    then still).

  • #​6026: Align
    prefixes in output of pytester's LineMatcher.

  • #​6059:
    Collection errors are reported as errors (and not failures
    like before) in the terminal's short test summary.

  • #​6069:
    pytester.spawn does not skip/xfail tests on FreeBSD
    anymore unconditionally.

  • #​6097: The
    "[XXX%]" indicator in the test summary is now colored according to
    the final (new) multi-colored line's main color.

  • #​6116: Added
    --co as a synonym to --collect-only.

  • #​6148:
    atomicwrites is now only used on Windows, fixing a performance
    regression with assertion rewriting on Unix.

  • #​6152: Now
    parametrization will use the __name__ attribute of any object for
    the id, if present. Previously it would only use __name__ for
    functions and classes.

  • #​6176: Improved
    failure reporting with pytester's Hookrecorder.assertoutcome.

  • #​6181: The
    reason for a stopped session, e.g. with --maxfail / -x, now gets
    reported in the test summary.

  • #​6206: Improved
    cache.set robustness and performance.

Bug Fixes

  • #​2049: Fixed
    --setup-plan showing inaccurate information about
    fixture lifetimes.

  • #​2548: Fixed
    line offset mismatch of skipped tests in terminal summary.

  • #​6039: The
    PytestDoctestRunner is now properly invalidated when unconfiguring
    the doctest plugin.

    This is important when used with pytester's runpytest_inprocess.

  • #​6047:
    BaseExceptions are now handled in saferepr, which includes
    pytest.fail.Exception etc.

  • #​6074:
    pytester: fixed order of arguments in rm_rf warning when cleaning
    up temporary directories, and do not emit warnings for errors with
    os.open.

  • #​6189: Fixed
    result of getmodpath method.

Trivial/Internal Changes

  • #​4901:
    RunResult from pytester now displays the mnemonic of the ret
    attribute when it is a valid pytest.ExitCode value.

v5.2.4

Compare Source

pytest 5.2.4 (2019-11-15)

Bug Fixes

  • #​6194: Fix
    incorrect discovery of non-test __init__.py files.
  • #​6197: Revert
    "The first test in a package (__init__.py) marked with
    @pytest.mark.skip is now correctly skipped.".

v5.2.3

Compare Source

pytest 5.2.3 (2019-11-14)

Bug Fixes

  • #​5830: The
    first test in a package (__init__.py) marked with
    @pytest.mark.skip is now correctly skipped.
  • #​6099: Fix
    --trace when used with parametrized functions.
  • #​6183: Using
    request as a parameter name in @pytest.mark.parametrize now
    produces a more user-friendly error.

v5.2.2

Compare Source

pytest 5.2.2 (2019-10-24)

Bug Fixes

  • #​5206: Fix
    --nf to not forget about known nodeids with partial
    test selection.
  • #​5906: Fix
    crash with KeyboardInterrupt during --setup-show.
  • #​5946: Fixed
    issue when parametrizing fixtures with numpy arrays (and possibly
    other sequence-like types).
  • #​6044: Properly
    ignore FileNotFoundError exceptions when trying to remove old
    temporary directories, for instance when multiple processes try to
    remove the same directory (common with pytest-xdist for example).

v5.2.1

Compare Source

pytest 5.2.1 (2019-10-06)

Bug Fixes

  • #​5902: Fix
    warnings about deprecated cmp attribute in attrs>=19.2.

v5.2.0

Compare Source

pytest 5.2.0 (2019-09-28)

Deprecations

  • #​1682: Passing
    arguments to pytest.fixture() as positional arguments is
    deprecated - pass them as a keyword argument instead.

Features

  • #​1682: The
    scope parameter of @pytest.fixture can now be a callable that
    receives the fixture name and the config object as keyword-only
    parameters. See the
    docs
    for
    more information.
  • #​5764: New
    behavior of the --pastebin option: failures to connect to the
    pastebin server are reported, without failing the pytest run

Bug Fixes

  • #​5806: Fix
    "lexer" being used when uploading to bpaste.net from --pastebin
    to "text".
  • #​5884: Fix
    --setup-only and --setup-show for custom pytest items.

Trivial/Internal Changes

  • #​5056: The
    HelpFormatter uses py.io.get_terminal_width for better
    width detection.

v5.1.3

Compare Source

pytest 5.1.3 (2019-09-18)

Bug Fixes

  • #​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 (introduced by #​5792).

v5.1.2

Compare Source

pytest 5.1.2 (2019-08-30)

Bug Fixes

  • #​2270: Fixed
    self reference in function-scoped fixtures defined plugin classes:
    previously self would be a reference to a test class, not the
    plugin class.
  • #​570: Fixed long
    standing issue where fixture scope was not respected when indirect
    fixtures were used during parametrization.
  • #​5782: Fix
    decoding error when printing an error response from --pastebin.
  • #​5786: Chained
    exceptions in test and collection reports are now correctly
    serialized, allowing plugins like pytest-xdist to display
    them properly.
  • #​5792: Windows:
    Fix error that occurs in certain circumstances when loading
    conftest.py from a working directory that has casing other than
    the one stored in the filesystem (e.g., c:\test instead of
    C:\test).

v5.1.1

Compare Source

pytest 5.1.1 (2019-08-20)

Bug Fixes

  • #​5751: Fixed
    TypeError when importing pytest on Python 3.5.0 and 3.5.1.

v5.1.0

Compare Source

pytest 5.1.0 (2019-08-15)

Removals

  • #​5180: As per
    our policy, the following features have been deprecated in the 4.X
    series and are now removed:

    • Request.getfuncargvalue: use Request.getfixturevalue
      instead.
    • pytest.raises and pytest.warns no longer support strings as
      the second argument.
    • message parameter of pytest.raises.
    • pytest.raises, pytest.warns and ParameterSet.param now use
      native keyword-only syntax. This might change the exception
      message from previous versions, but they still raise TypeError
      on unknown keyword arguments as before.
    • pytest.config global variable.
    • tmpdir_factory.ensuretemp method.
    • pytest_logwarning hook.
    • RemovedInPytest4Warning warning type.
    • request is now a reserved name for fixtures.

    For more information consult Deprecations and
    Removals
    in
    the docs.

  • #​5565: Removed
    unused support code for
    unittest2.

    The unittest2 backport module is no longer necessary since Python
    3.3+, and the small amount of code in pytest to support it also
    doesn't seem to be used: after removed, all tests still pass
    unchanged.

    Although our policy is to introduce a deprecation period before
    removing any features or support for third party libraries, because
    this code is apparently not used at all (even if unittest2 is used
    by a test suite executed by pytest), it was decided to remove it in
    this release.

    If you experience a regression because of this, please file an
    issue
    .

  • #​5615:
    pytest.fail, pytest.xfail and pytest.skip no longer support
    bytes for the message argument.

    This was supported for Python 2 where it was tempting to use
    "message" instead of u"message".

    Python 3 code is unlikely to pass bytes to these functions. If you
    do, please decode it to an str beforehand.

Features

  • #​5564: New
    Config.invocation_args attribute containing the unchanged
    arguments passed to pytest.main().
  • #​5576: New
    NUMBER
    option for doctests to ignore irrelevant differences in
    floating-point numbers. Inspired by Sébastien Boisgérault's
    numtest extension for
    doctest.

Improvements

  • #​5471: JUnit
    XML now includes a timestamp and hostname in the testsuite tag.

  • #​5707: Time
    taken to run the test suite now includes a human-readable
    representation when it takes over 60 seconds, for example:

    ===== 2 failed in 102.70s (0:01:42) =====
    

Bug Fixes

  • #​4344: Fix
    RuntimeError/StopIteration when trying to collect package with
    "__init__.py" only.
  • #​5115: Warnings
    issued during pytest_configure are explicitly not treated as
    errors, even if configured as such, because it otherwise completely
    breaks pytest.
  • #​5477: The XML
    file produced by --junitxml now correctly contain a <testsuites>
    root element.
  • #​5523: Fixed
    using multiple short options together in the command-line (for
    example -vs) in Python 3.8+.
  • #​5524: Fix
    issue where tmp_path and tmpdir would not remove directories
    containing files marked as read-only, which could lead to pytest
    crashing when executed a second time with the --basetemp option.
  • #​5537: Replace
    importlib_metadata backport with importlib.metadata from the
    standard library on Python 3.8+.
  • #​5578: Improve
    type checking for some exception-raising functions (pytest.xfail,
    pytest.skip, etc) so they provide better error messages when users
    meant to use marks (for example @pytest.xfail instead of
    @pytest.mark.xfail).
  • #​5606: Fixed
    internal error when test functions were patched with objects that
    cannot be compared for truth values against others, like numpy
    arrays.
  • #​5634:
    pytest.exit is now correctly handled in unittest cases. This
    makes unittest cases handle quit from pytest's pdb correctly.
  • #​5650: Improved
    output when parsing an ini configuration file fails.
  • #​5701: Fix
    collection of staticmethod objects defined with
    functools.partial.
  • #​5734: Skip
    async generator test functions, and update the warning message to
    refer to async def functions.

Improved Documentation

  • #​5669: Add
    docstring for Testdir.copy_example.

Trivial/Internal Changes

  • #​5095: XML
    files of the xunit2 family are now validated against the schema by
    pytest's own test suite to avoid future regressions.
  • #​5516: Cache
    node splitting function which can improve collection performance in
    very large test suites.
  • #​5603:
    Simplified internal SafeRepr class and removed some dead code.
  • #​5664: When
    invoking pytest's own testsuite with PYTHONDONTWRITEBYTECODE=1,
    the test_xfail_handling test no longer fails.
  • #​5684: Replace
    manual handling of OSError.errno in the codebase by new OSError
    subclasses (PermissionError, FileNotFoundError, etc.).

v5.0.1

Compare Source

pytest 5.0.1 (2019-07-04)

Bug Fixes

  • #​5479: Improve
    quoting in raises match failure message.
  • #​5523: Fixed
    using multiple short options together in the command-line (for
    example -vs) in Python 3.8+.
  • #​5547:
    --step-wise now handles xfail(strict=True) markers properly.

Improved Documentation

  • #​5517: Improve
    "Declaring new hooks" section in chapter "Writing Plugins"

v5.0.0

Compare Source

v4.6.11: pytest 4.6.11 (2020-06-04)

Compare Source

Bug Fixes

  • #​6334: Fix summary entries appearing twice when f/F and s/S report chars were used at the same time in the -r command-line option (for example -rFf).

    The upper case variants were never documented and the preferred form should be the lower case.

  • #​7310: Fix UnboundLocalError: local variable 'letter' referenced before assignment in _pytest.terminal.pytest_report_teststatus()
    when plugins return report objects in an unconventional state.

    This was making pytest_report_teststatus() skip
    entering if-block branches that declare the letter variable.

    The fix was to set the initial value of the letter before
    the if-block cascade so that it always has a value.

v4.6.10: pytest 4.6.10 (2020-05-08)

Compare Source

  • #​6870: New Config.invocation_args attribute containing the unchanged arguments passed to pytest.main().

    Remark: while this is technically a new feature and according to our policy it should not have been backported, we have opened an exception in this particular case because it fixes a serious interaction with pytest-xdist, so it can also be considered a bugfix.

v4.6.9

Compare Source

pytest 4.6.9 (2020-01-04)

Bug Fixes

  • #​6301: Fix
    assertion rewriting for egg-based distributions and editable
    installs (pip install --editable).

v4.6.8

Compare Source

pytest 4.6.8 (2019-12-19)

Features

  • #​5471: JUnit
    XML now includes a timestamp and hostname in the testsuite tag.

Bug Fixes

  • #​5430:
    junitxml: Logs for failed test are now passed to junit report in
    case the test fails during call phase.

Trivial/Internal Changes

  • #​6345: Pin
    colorama to 0.4.1 only for Python 3.4 so newer Python versions
    can still receive colorama updates.

v4.6.7

Compare Source

pytest 4.6.7 (2019-12-05)

Bug Fixes

  • #​5477: The XML
    file produced by --junitxml now correctly contain a <testsuites>
    root element.
  • #​6044: Properly
    ignore FileNotFoundError (OSError.errno == NOENT in Python 2)
    exceptions when trying to remove old temporary directories, for
    instance when multiple processes try to remove the same directory
    (common with pytest-xdist for example).

v4.6.6

Compare Source

pytest 4.6.6 (2019-10-11)

Bug Fixes

  • #​5523: Fixed
    using multiple short options together in the command-line (for
    example -vs) in Python 3.8+.
  • #​5537: Replace
    importlib_metadata backport with importlib.metadata from the
    standard library on Python 3.8+.
  • #​5806: Fix
    "lexer" being used when uploading to bpaste.net from --pastebin
    to "text".
  • #​5902: Fix
    warnings about deprecated cmp attribute in attrs>=19.2.

Trivial/Internal Changes

  • #​5801: Fixes
    python version checks (detected by flake8-2020) in case python4
    becomes a thing.

v4.6.5

Compare Source

Bug Fixes

  • #​4344: Fix RuntimeError/StopIteration when trying to collect package with "init.py" only.

  • #​5478: Fix encode error when using unicode strings in exceptions with pytest.raises.

  • #​5524: Fix issue where tmp_path and tmpdir would not remove directories containing files marked as read-only,
    which could lead to pytest crashing when executed a second time with the --basetemp option.

  • #​5547: --step-wise now handles xfail(strict=True) markers properly.

  • #​5650: Improved output when parsing an ini configuration file fails.

v4.6.4

Compare Source

v4.6.3

Compare Source

v4.6.2

Compare Source

v4.6.1

Compare Source

v4.6.0

Compare Source

v4.5.0

Compare Source

v4.4.2

Compare Source

v4.4.1

Compare Source

v4.4.0

Compare Source

v4.3.1

Compare Source

v4.3.0

Compare Source

v4.2.1

Compare Source

v4.2.0

Compare Source

v4.1.1

Compare Source

v4.1.0

Compare Source

v4.0.2

Compare Source

v4.0.1

Compare Source

v4.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@smartway-bot smartway-bot bot added dependencies Pull requests that update a dependency file major python labels Jul 30, 2024
@smartway-bot smartway-bot bot changed the title chore(deps): update dependency pytest to v5 chore(deps): update dependency pytest to v5 - autoclosed Jul 30, 2024
@smartway-bot smartway-bot bot closed this Jul 30, 2024
@smartway-bot smartway-bot bot deleted the renovate/pytest-5.x branch July 30, 2024 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file major python
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants