Skip to main content

Simple test fixtures.

Project description

Author: Zero Piraeus

fix is a simple library to assist with the creation of fixtures for test functions, methods etc. It provides one decorator, with_fixture, which allows you to attach setup() and teardown() functions to the decorated callable, and access information defined in the fixture from within the test function.

fix was written for use with nose, but doesn’t depend on it, and may also prove useful with other test frameworks.


Here’s a basic example with setup but no teardown:

from fix import with_fixture

def setup_only(context):

    def setup():
        """Add something to the context."""
        assert context == {}
        context.squee = "kapow"

    return setup

def case(context):
    assert context == {"squee": "kapow"}

… and here’s a rather more involved one that creates some temporary files to work with, then deletes them during teardown:

import os
import shutil
import tempfile

from fix import with_fixture

def external(context, files=3):

    def setup():
        context.temp_dir = tempfile.mkdtemp()
        context.filenames = ["file_%03d" % i for i in range(files)]
        for filename in context.filenames:
            with open(os.path.join(context.temp_dir, filename), "w") as f:
                f.write("This is the file %r.\n" % filename)

    def teardown():

    return setup, teardown

@with_fixture(external, files=5)
def check_files(context):
    present = 0
    absent = 0
    for filename in context.filenames:
        if os.path.exists(os.path.join(context.temp_dir, filename)):
            present += 1
            absent += 1
    return context.temp_dir, present, absent

temp_dir, present, absent = check_files()
assert not os.path.exists(temp_dir)
assert present == 5
assert absent == 0


This should do the trick:

pip install fix


fix is released under the GNU General Public License (version 3 or later), a copy of which is included with this distribution in the file COPYING.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for fix, version 1.0.3
Filename, size File type Python version Upload date Hashes
Filename, size fix-1.0.3.tar.gz (18.7 kB) File type Source Python version None Upload date Hashes View
Filename, size fix-1.0.3-py2.py3-none-any.whl (5.6 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page