Book Image

pytest Quick Start Guide

By : Bruno Oliveira
Book Image

pytest Quick Start Guide

By: Bruno Oliveira

Overview of this book

Python's standard unittest module is based on the xUnit family of frameworks, which has its origins in Smalltalk and Java, and tends to be verbose to use and not easily extensible.The pytest framework on the other hand is very simple to get started, but powerful enough to cover complex testing integration scenarios, being considered by many the true Pythonic approach to testing in Python. In this book, you will learn how to get started right away and get the most out of pytest in your daily work?ow, exploring powerful mechanisms and plugins to facilitate many common testing tasks. You will also see how to use pytest in existing unittest-based test suites and will learn some tricks to make the jump to a pytest-style test suite quickly and easily.
Table of Contents (9 chapters)

Scopes

Fixtures are always created when a test function requests them, by declaring them on the parameter list, as we've seen already. By default, each fixture is destroyed when each test finishes.

As mentioned at the beginning of this chapter, some fixtures can be costly to create or set up, and it would be helpful to be able to create as few instances of it as possible, to save time. Here are some examples:

  • Initializing database tables
  • Reading cached data from a disk, for example, large CSV data
  • Starting up external services

To help solve this issue, fixtures in pytest can have different scopes. The scope of a fixture defines when the fixture should be cleaned up. While the fixture is not cleaned up, tests requesting the fixture will receive the same fixture value.

The scope parameter of the @pytest.fixture decorator is used to set the fixture's scope:

@pytest.fixture...