some internal fixes regarding the new required hook-finding prefix

--HG--
branch : trunk
This commit is contained in:
holger krekel 2010-05-02 17:10:38 +02:00
parent fd473d4002
commit 82d4aae571
2 changed files with 16 additions and 15 deletions

View File

@ -46,7 +46,8 @@ class HookRecorder:
recorder = RecordCalls()
self._recorders[hookspec] = recorder
self._registry.register(recorder)
self.hook = HookRelay(hookspecs, registry=self._registry)
self.hook = HookRelay(hookspecs, registry=self._registry,
prefix="pytest_")
def finish_recording(self):
for recorder in self._recorders.values():

View File

@ -6,25 +6,25 @@ from py._test.pluginmanager import Registry
def test_hookrecorder_basic():
rec = HookRecorder(Registry())
class ApiClass:
def xyz(self, arg):
pass
def pytest_xyz(self, arg):
"x"
rec.start_recording(ApiClass)
rec.hook.xyz(arg=123)
call = rec.popcall("xyz")
rec.hook.pytest_xyz(arg=123)
call = rec.popcall("pytest_xyz")
assert call.arg == 123
assert call._name == "xyz"
assert call._name == "pytest_xyz"
py.test.raises(ValueError, "rec.popcall('abc')")
def test_hookrecorder_basic_no_args_hook():
rec = HookRecorder(Registry())
apimod = type(os)('api')
def xyz():
pass
apimod.xyz = xyz
def pytest_xyz():
"x"
apimod.pytest_xyz = pytest_xyz
rec.start_recording(apimod)
rec.hook.xyz()
call = rec.popcall("xyz")
assert call._name == "xyz"
rec.hook.pytest_xyz()
call = rec.popcall("pytest_xyz")
assert call._name == "pytest_xyz"
def test_functional(testdir, linecomp):
reprec = testdir.inline_runsource("""
@ -33,14 +33,14 @@ def test_functional(testdir, linecomp):
pytest_plugins="_pytest"
def test_func(_pytest):
class ApiClass:
def xyz(self, arg): pass
def pytest_xyz(self, arg): "x"
hook = HookRelay([ApiClass], Registry())
rec = _pytest.gethookrecorder(hook)
class Plugin:
def xyz(self, arg):
def pytest_xyz(self, arg):
return arg + 1
rec._registry.register(Plugin())
res = rec.hook.xyz(arg=41)
res = rec.hook.pytest_xyz(arg=41)
assert res == [42]
""")
reprec.assertoutcome(passed=1)