Fix self reference in function scoped fixtures

This commit is contained in:
Robert Holt
2019-08-19 15:57:39 -04:00
parent 307652202c
commit 62381125e7
4 changed files with 35 additions and 0 deletions

View File

@@ -3945,6 +3945,35 @@ class TestScopeOrdering:
reprec = testdir.inline_run()
reprec.assertoutcome(passed=2)
def test_class_fixture_self_instance(self, testdir):
testdir.makeconftest(
"""
import pytest
def pytest_configure(config):
config.pluginmanager.register(MyPlugin())
class MyPlugin():
def __init__(self):
self.arg = 1
@pytest.fixture(scope='function')
def myfix(self):
assert isinstance(self, MyPlugin)
return self.arg
"""
)
testdir.makepyfile(
"""
class TestClass(object):
def test_1(self, myfix):
assert myfix == 1
"""
)
reprec = testdir.inline_run()
reprec.assertoutcome(passed=1)
def test_call_fixture_function_error():
"""Check if an error is raised if a fixture function is called directly (#4545)"""