125: pytest 6 - Anthony Sottile

125: pytest 6 - Anthony Sottile

Update: 2020-08-07
Share

Description

pytest 6 is out. Specifically, 6.0.1, as of July 31.


And there's lots to be excited about.

Anthony Sottile joins the show to discuss features, improvements, documentation updates and more.



Full release notes / changelog



Some of what we talk about:




  • How to update (at least, how I do it)


    • Run your test suites with 5.4.3 or whatever the last version you were using

    • Update to 6

    • Run again. Same output? Probably good.

    • If there are any warnings, maybe fix those.

    • You can also run with pytest -W error to turn warnings into errors.

    • Then find out all the cool stuff you can do now


  • New Features


    • pytest now supports pyproject.toml files for configuration.


      • but remember, toml syntax is different than ini files. mostly quotes are needed


    • pytest now includes inline type annotations and exposes them to user programs.


      • Most of the user-facing API is covered, as well as internal code.


    • New command-line flags --no-header and --no-summary

    • A warning is now shown when an unknown key is read from a config INI file.


      • The --strict-config flag has been added to treat these warnings as errors.


    • New required_plugins configuration option allows the user to specify a list of plugins,
      including version information, that are required for pytest to run.
      An error is raised if any required plugins are not found when running pytest.


  • Improvements


    • You can now pass output to things like less and head that close the pipe passed to them.


      • thank you!!!


    • Improved precision of test durations measurement.


      • use --durations=10 -vv to capture and show durations


    • Rich comparison for dataclasses and attrs-classes is now recursive.

    • pytest --version now displays just the pytest version,


      • while pytest --version --version displays more verbose information including plugins.


    • --junitxml now includes the exception cause in the message XML
      attribute for failures during setup and teardown.


  • Improved Documentation


    • Add a note about --strict and --strict-markers and the preference for the latter one.

    • Explain indirect parametrization and markers for fixtures.


  • Bug Fixes

  • Deprecations

  • Trivial/Internal Changes

  • Breaking Changes you might need to care about before upgrading


    • PytestDeprecationWarning are now errors by default.


    • -k and -m internals were rewritten to stop using eval(), this results in a few slight changes but overall makes them much more consistent

    • testdir.run().parseoutcomes() now always returns the parsed nouns in plural form.


      • I'd say that's an improvement



Special Guest: Anthony Sottile.

Sponsored By:

Support Test & Code : Python Testing for Software Engineering

Links:

Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

125: pytest 6 - Anthony Sottile

125: pytest 6 - Anthony Sottile

Brian Okken