Skip to content

Commit

Permalink
Prove that PluginManger.register() ignores non-routines
Browse files Browse the repository at this point in the history
This proves that pytest-dev#91 is a problem in `pytest` and not `pluggy`.
Thanks to @RonnyPfannschmidt for the fix about a year ago ;)
  • Loading branch information
Tyler Goodlet committed Nov 12, 2017
1 parent 4fb708b commit 8115d61
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions testing/test_pluginmanager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import pytest
import imp

from pluggy import (PluginValidationError,
HookCallError, HookimplMarker, HookspecMarker)
Expand Down Expand Up @@ -350,3 +351,20 @@ def m(self, __multicall__, x):
def test_add_hookspecs_nohooks(pm):
with pytest.raises(ValueError):
pm.add_hookspecs(10)


def test_reject_prefixed_module(pm):
"""Verify that a module type attribute that contains the project
prefix in its name (in this case `'example_*'` isn't collected
when registering a module which imports it.
"""
pm._implprefix = 'example'
conftest = imp.new_module("conftest")
# note project prefix for ``pm`` is 'example'
conftest.example_blah = imp.new_module("example_blah")

# import pdb; pdb.set_trace()
name = pm.register(conftest)
assert name == 'conftest'
assert getattr(pm.hook, 'example_blah', None) is None
assert pm.parse_hookimpl_opts(conftest, 'example_blah') is None

0 comments on commit 8115d61

Please sign in to comment.