pytest tips and tricks for a better testsuite

  • 2023-07-18 , Club E
  • 2023-07-18 , Club E

All times in Europe/Prague

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:

advanced

Florian Bruhin ("The Compiler") is a long-time
contributor and maintainer of both the pytest
framework and various plugins. In 2013, he started the
qutebrowser project, a keyboard-focused web
browser based on Python and Qt. In 2015, he discovered pytest - since then, he
has given talks and conducted workshops about pytest at various conferences and
companies.