summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2017-01-24 22:52:10 -0600
committerGitHub <noreply@github.com>2017-01-24 22:52:10 -0600
commit3b5076b6b3fd7218acf445e917eb039999b61820 (patch)
tree2aab4d2f1574d36beab3e1090ba3e569a01fa2dc
parent5c71ad944e463ec1591613d018b7797b81d23eae (diff)
parentf6af107a78b36c7e428ccb58c2db939275d8fa99 (diff)
downloadpyramid-3b5076b6b3fd7218acf445e917eb039999b61820.tar.gz
pyramid-3b5076b6b3fd7218acf445e917eb039999b61820.tar.bz2
pyramid-3b5076b6b3fd7218acf445e917eb039999b61820.zip
Merge pull request #2917 from mmerickel/fix-2916
restore the registry signature and add tests to show why
-rw-r--r--pyramid/registry.py4
-rw-r--r--pyramid/tests/test_registry.py27
2 files changed, 25 insertions, 6 deletions
diff --git a/pyramid/registry.py b/pyramid/registry.py
index e2bcba9f9..20b3643e9 100644
--- a/pyramid/registry.py
+++ b/pyramid/registry.py
@@ -56,7 +56,7 @@ class Registry(Components, dict):
_settings = None
- def __init__(self, package_name=CALLER_PACKAGE):
+ def __init__(self, package_name=CALLER_PACKAGE, *args, **kw):
# add a registry-instance-specific lock, which is used when the lookup
# cache is mutated
self._lock = threading.Lock()
@@ -64,7 +64,7 @@ class Registry(Components, dict):
self._clear_view_lookup_cache()
if package_name is CALLER_PACKAGE:
package_name = caller_package().__name__
- Components.__init__(self, package_name)
+ Components.__init__(self, package_name, *args, **kw)
dict.__init__(self)
def _clear_view_lookup_cache(self):
diff --git a/pyramid/tests/test_registry.py b/pyramid/tests/test_registry.py
index 7b3357e61..aa44b5408 100644
--- a/pyramid/tests/test_registry.py
+++ b/pyramid/tests/test_registry.py
@@ -5,8 +5,8 @@ class TestRegistry(unittest.TestCase):
from pyramid.registry import Registry
return Registry
- def _makeOne(self):
- return self._getTargetClass()()
+ def _makeOne(self, *args, **kw):
+ return self._getTargetClass()(*args, **kw)
def test___nonzero__(self):
registry = self._makeOne()
@@ -24,11 +24,11 @@ class TestRegistry(unittest.TestCase):
def test_package_name(self):
package_name = 'testing'
- registry = self._getTargetClass()(package_name)
+ registry = self._makeOne(package_name)
self.assertEqual(registry.package_name, package_name)
def test_default_package_name(self):
- registry = self._getTargetClass()()
+ registry = self._makeOne()
self.assertEqual(registry.package_name, 'pyramid.tests')
def test_registerHandler_and_notify(self):
@@ -61,6 +61,25 @@ class TestRegistry(unittest.TestCase):
registry.settings = 'foo'
self.assertEqual(registry._settings, 'foo')
+ def test_init_forwards_args(self):
+ from zope.interface import Interface
+ from zope.interface.registry import Components
+ dummy = object()
+ c = Components()
+ c.registerUtility(dummy, Interface)
+ registry = self._makeOne('foo', (c,))
+ self.assertEqual(registry.__name__, 'foo')
+ self.assertEqual(registry.getUtility(Interface), dummy)
+
+ def test_init_forwards_kw(self):
+ from zope.interface import Interface
+ from zope.interface.registry import Components
+ dummy = object()
+ c = Components()
+ c.registerUtility(dummy, Interface)
+ registry = self._makeOne(bases=(c,))
+ self.assertEqual(registry.getUtility(Interface), dummy)
+
class TestIntrospector(unittest.TestCase):
def _getTargetClass(slf):
from pyramid.registry import Introspector