summaryrefslogtreecommitdiff
path: root/tests/test_config/test_factories.py
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2018-10-14 21:11:41 -0500
committerMichael Merickel <michael@merickel.org>2018-10-14 21:11:41 -0500
commit3670c2cdb732d378ba6d38e72e7cd875ff726aa9 (patch)
tree5213452a778c992d42602efe7d3b3655a349abd5 /tests/test_config/test_factories.py
parent2b024920847481592b1a13d4006d2a9fa8881d72 (diff)
downloadpyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.tar.gz
pyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.tar.bz2
pyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.zip
move tests out of the package
Diffstat (limited to 'tests/test_config/test_factories.py')
-rw-r--r--tests/test_config/test_factories.py163
1 files changed, 163 insertions, 0 deletions
diff --git a/tests/test_config/test_factories.py b/tests/test_config/test_factories.py
new file mode 100644
index 000000000..7e6ea0476
--- /dev/null
+++ b/tests/test_config/test_factories.py
@@ -0,0 +1,163 @@
+import unittest
+
+from pyramid.tests.test_config import dummyfactory
+
+class TestFactoriesMixin(unittest.TestCase):
+ def _makeOne(self, *arg, **kw):
+ from pyramid.config import Configurator
+ config = Configurator(*arg, **kw)
+ return config
+
+ def test_set_request_factory(self):
+ from pyramid.interfaces import IRequestFactory
+ config = self._makeOne(autocommit=True)
+ factory = object()
+ config.set_request_factory(factory)
+ self.assertEqual(config.registry.getUtility(IRequestFactory), factory)
+
+ def test_set_request_factory_dottedname(self):
+ from pyramid.interfaces import IRequestFactory
+ config = self._makeOne(autocommit=True)
+ config.set_request_factory(
+ 'pyramid.tests.test_config.dummyfactory')
+ self.assertEqual(config.registry.getUtility(IRequestFactory),
+ dummyfactory)
+
+ def test_set_response_factory(self):
+ from pyramid.interfaces import IResponseFactory
+ config = self._makeOne(autocommit=True)
+ factory = lambda r: object()
+ config.set_response_factory(factory)
+ self.assertEqual(config.registry.getUtility(IResponseFactory), factory)
+
+ def test_set_response_factory_dottedname(self):
+ from pyramid.interfaces import IResponseFactory
+ config = self._makeOne(autocommit=True)
+ config.set_response_factory(
+ 'pyramid.tests.test_config.dummyfactory')
+ self.assertEqual(config.registry.getUtility(IResponseFactory),
+ dummyfactory)
+
+ def test_set_root_factory(self):
+ from pyramid.interfaces import IRootFactory
+ config = self._makeOne()
+ config.set_root_factory(dummyfactory)
+ self.assertEqual(config.registry.queryUtility(IRootFactory), None)
+ config.commit()
+ self.assertEqual(config.registry.getUtility(IRootFactory), dummyfactory)
+
+ def test_set_root_factory_as_None(self):
+ from pyramid.interfaces import IRootFactory
+ from pyramid.traversal import DefaultRootFactory
+ config = self._makeOne()
+ config.set_root_factory(None)
+ self.assertEqual(config.registry.queryUtility(IRootFactory), None)
+ config.commit()
+ self.assertEqual(config.registry.getUtility(IRootFactory),
+ DefaultRootFactory)
+
+ def test_set_root_factory_dottedname(self):
+ from pyramid.interfaces import IRootFactory
+ config = self._makeOne()
+ config.set_root_factory('pyramid.tests.test_config.dummyfactory')
+ self.assertEqual(config.registry.queryUtility(IRootFactory), None)
+ config.commit()
+ self.assertEqual(config.registry.getUtility(IRootFactory), dummyfactory)
+
+ def test_set_session_factory(self):
+ from pyramid.interfaces import ISessionFactory
+ config = self._makeOne()
+ config.set_session_factory(dummyfactory)
+ self.assertEqual(config.registry.queryUtility(ISessionFactory), None)
+ config.commit()
+ self.assertEqual(config.registry.getUtility(ISessionFactory),
+ dummyfactory)
+
+ def test_set_session_factory_dottedname(self):
+ from pyramid.interfaces import ISessionFactory
+ config = self._makeOne()
+ config.set_session_factory('pyramid.tests.test_config.dummyfactory')
+ self.assertEqual(config.registry.queryUtility(ISessionFactory), None)
+ config.commit()
+ self.assertEqual(config.registry.getUtility(ISessionFactory),
+ dummyfactory)
+
+ def test_add_request_method_with_callable(self):
+ from pyramid.interfaces import IRequestExtensions
+ config = self._makeOne(autocommit=True)
+ callable = lambda x: None
+ config.add_request_method(callable, name='foo')
+ exts = config.registry.getUtility(IRequestExtensions)
+ self.assertTrue('foo' in exts.methods)
+
+ def test_add_request_method_with_unnamed_callable(self):
+ from pyramid.interfaces import IRequestExtensions
+ config = self._makeOne(autocommit=True)
+ def foo(self): pass
+ config.add_request_method(foo)
+ exts = config.registry.getUtility(IRequestExtensions)
+ self.assertTrue('foo' in exts.methods)
+
+ def test_set_multiple_request_methods_conflict(self):
+ from pyramid.exceptions import ConfigurationConflictError
+ config = self._makeOne()
+ def foo(self): pass
+ def bar(self): pass
+ config.add_request_method(foo, name='bar')
+ config.add_request_method(bar, name='bar')
+ self.assertRaises(ConfigurationConflictError, config.commit)
+
+ def test_add_request_method_with_None_callable(self):
+ from pyramid.interfaces import IRequestExtensions
+ config = self._makeOne(autocommit=True)
+ config.add_request_method(name='foo')
+ exts = config.registry.queryUtility(IRequestExtensions)
+ self.assertTrue(exts is None)
+
+ def test_add_request_method_with_None_callable_conflict(self):
+ from pyramid.exceptions import ConfigurationConflictError
+ config = self._makeOne()
+ def bar(self): pass
+ config.add_request_method(name='foo')
+ config.add_request_method(bar, name='foo')
+ self.assertRaises(ConfigurationConflictError, config.commit)
+
+ def test_add_request_method_with_None_callable_and_no_name(self):
+ config = self._makeOne(autocommit=True)
+ self.assertRaises(AttributeError, config.add_request_method)
+
+ def test_add_request_method_with_text_type_name(self):
+ from pyramid.interfaces import IRequestExtensions
+ from pyramid.compat import text_, PY2
+ from pyramid.exceptions import ConfigurationError
+
+ config = self._makeOne(autocommit=True)
+ def boomshaka(r): pass
+
+ def get_bad_name():
+ if PY2:
+ name = text_(b'La Pe\xc3\xb1a', 'utf-8')
+ else:
+ name = b'La Pe\xc3\xb1a'
+
+ config.add_request_method(boomshaka, name=name)
+
+ self.assertRaises(ConfigurationError, get_bad_name)
+
+ def test_set_execution_policy(self):
+ from pyramid.interfaces import IExecutionPolicy
+ config = self._makeOne(autocommit=True)
+ def dummy_policy(environ, router): pass
+ config.set_execution_policy(dummy_policy)
+ registry = config.registry
+ result = registry.queryUtility(IExecutionPolicy)
+ self.assertEqual(result, dummy_policy)
+
+ def test_set_execution_policy_to_None(self):
+ from pyramid.interfaces import IExecutionPolicy
+ from pyramid.router import default_execution_policy
+ config = self._makeOne(autocommit=True)
+ config.set_execution_policy(None)
+ registry = config.registry
+ result = registry.queryUtility(IExecutionPolicy)
+ self.assertEqual(result, default_execution_policy)