Skip to content

Instantly share code, notes, and snippets.

@magixx
Created January 9, 2015 20:42
Show Gist options
  • Save magixx/cdc5aac3bfd7930dc6fb to your computer and use it in GitHub Desktop.
Save magixx/cdc5aac3bfd7930dc6fb to your computer and use it in GitHub Desktop.
Fixtures as Fixture Paramaters
import pytest
@pytest.fixture(scope="class")
def resource_a(request):
r = {'name': 'A'}
def fin():
print ("\nteardown " + r['name'])
request.addfinalizer(fin)
return r
@pytest.fixture(scope="class")
def resource_b(request):
r = {'name': 'B'}
def fin():
print ("\nteardown " + r['name'])
request.addfinalizer(fin)
return r
@pytest.fixture(scope="class", params=[resource_a, resource_b])
def resource_multi(request):
r = request.param(request)
def fin():
print ("\nMulti teardown " + r['name'])
request.addfinalizer(fin)
return r
class TestSomeFixtures(object):
def test_single_fix(self, resource_multi):
resource = resource_multi
print '\nResource Test ' + resource['name']
assert resource
------------------------------------------------------------------------------------------
$ py.test -s -q --tb=no test_fixtures.py [14:32:08]
Resource Test A
.
Multi teardown A
teardown A
Resource Test B
.
Multi teardown B
teardown B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment