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)

Converting asserts with unitest2pytest

Once you have changed the test runner to pytest, you can take advantage of writing plain assert statements instead of self.assert* methods.

Converting all the method calls is boring and error-prone, that's why the unittest2pytest tool exists. It converts all self.assert* method calls to plain asserts, and also converts self.assertRaises calls to the appropriate pytest idiom.

Install it using pip:

λ pip install unittest2pytest

Once installed, you can now execute it on the files you want:

λ unittest2pytest test_simple2.py
RefactoringTool: Refactored test_simple2.py
--- test_simple2.py (original)
+++ test_simple2.py (refactored)
@@ -5,6 +5,7 @@
import unittest
from collections import namedtuple
from pathlib import Path
+import pytest

DATA = """
Main Grid,48,44
@@ -49,12 +50,12 @@
self.grids = list(iter_grids_from_csv...