Skip to main content

a testfixture helper

Project description

mete0r.testfixture

a testfixture helper

Quickstart

To install:

pip install mete0r.testfixture

Let’s assume your project has following structure:

yourproject/
    setup.py
    yourpackage/
        __init__.py
        tests/
            __init__.py
            test_foo.py
            fixtures/
                foo.py
                bar.py

Define a fixture in yourpackage/tests/fixtures/foo.py:

from mete0r_testfixture.testfixture import testfixture

@testfixture('Foo')
def foo(fixtures):
    return {
        'foo': None,
    }

Define another fixture in yourpackage/tests/fixtures/bar.py:

@testfixture('Bar', 'foo')
def bar(fixtures):
    return {
        'bar': fixtures.get('Foo')
    }

Now you can use them in your tests:

# yourpackage/tests/test_foo.py
from unittest import TestCase
from mete0r_testfixture.testfixture import TestFixtures
from . import fixtures

class FooTest(TestCase):

    def test_foo(self):
        testfixtures = TestFixtures('yourpackage.tests.fixtures')
        self.assertEquals({
            'bar': {
                'foo': None,
            },
        }, testfixtures.get('Bar', 'foo')

You can also list test fixtures defined in your packages:

$ mete0r-testfixture-scan yourpackage
Foo          yourpackage.tests.fixtures.foo.foo
Bar, foo     yourpackage.tests.fixtures.bar.bar

Caveat

mete0r.testfixture uses venusian to scan fixtures, so be careful not to scan test fixtures in your main application/package. For example:

config = Configurator(...)  # pyramid configurator
...
config.scan(ignore=[b'yourpackage.tests'])

Development environment

To setup development environment:

python setup.py virtualenv
make

Changes

0.0.2 (2017-04-08)

  • Scans modules in the added order.

0.0.1 (2017-04-08)

  • Changes usage.

0.0.0 (2017-01-27)

  • Initial release.

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 mete0r.testfixture, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size mete0r.testfixture-0.0.2.tar.gz (77.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page