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)

Managing test hierarchies

As we have seen, it is common to need to share functionality in large test suites. Because unittest is based on subclassing TestCase, it is common to put extra functionality in your TestCase subclass itself. For example, if we need to test application logic that requires a database, we might initially add functionality to the start and connect to a database in our TestCase subclass directly:

class Test(unittest.TestCase):

def setUp(self):
self.db_file = self.create_temporary_db()
self.session = self.connect_db(self.db_file)

def tearDown(self):
self.session.close()
os.remove(self.db_file)

def create_temporary_db(self):
...

def connect_db(self, db_file):
...

def create_table(self, table_name, **fields):
...

def check_row(self, table_name, **query):
...

def test1(self):
self...