PyConDE & PyData Berlin 2024

pytest tips and tricks for a better testsuite
2024-04-22 , A05-A06

pytest lets you write simple tests fast - but also scales to very complex scenarios: Beyond the basics of no-boilerplate test functions, this training will show various intermediate/advanced features, as well as gems and tricks.

To attend this training, you should already be familiar with the pytest basics (e.g. writing test functions, parametrize, or what a fixture is) and want to learn how to take the next step to improve your test suites.

If you're already familiar with things like fixture caching scopes, autouse, or using the built-in tmp_path/monkeypatch/... fixtures: There will probably be some slides about concepts you already know, but there are also various little hidden tricks and gems I'll be showing.


We'll cover things like:

  • Recommended pytest settings for more strictness
  • What's xfail and why is it useful?
  • How to mark an entire test file or single parameters
  • Ways to deal with parametrize IDs and syntax
  • Useful built-in pytest fixtures
  • Caching for fixtures
  • Using fixtures implicitly
  • Advanced fixture and parametrization topics
  • How to customize fixtures behavior based on markers or custom CLI arguments
  • Patching, mocking, and alternatives
  • Various useful plugins, and how to write your own
  • Short intro to property-based testing with Hypothesis

Expected audience expertise: Domain:

Intermediate

Expected audience expertise: Python:

Intermediate

Abstract as a tweet (X) or toot (Mastodon):

pytest lets you write simple tests fast - but also scales to very complex scenarios: Beyond the basics of no-boilerplate test functions, this training will show various intermediate/advanced features, as well as gems and tricks.

Public link to supporting material, e.g. videos, Github, etc.:

https://github.com/The-Compiler/pytest-tips-and-tricks

See also: Slides

Florian Bruhin ("The Compiler") is a long-time contributor and maintainer of
both the pytest framework and various plugins. He discovered pytest in 2015 -
since then, he has given talks and conducted workshops about pytest at various
conferences and companies. His primary project, qutebrowser (a keyboard-focused
web browser), has grown from a hobby to a donation-funded part-time job.