| | |
| | | import unittest |
| | | import warnings |
| | | |
| | | from pyramid.testing import cleanUp |
| | | |
| | | from pyramid.compat import ( |
| | | text_, |
| | | native_, |
| | |
| | | url_quote, |
| | | PY3, |
| | | ) |
| | | |
| | | with warnings.catch_warnings(record=True) as w: |
| | | warnings.filterwarnings('always') |
| | | from pyramid.interfaces import IContextURL |
| | | assert(len(w) == 1) |
| | | |
| | | class TraversalPathTests(unittest.TestCase): |
| | | def _callFUT(self, path): |
| | |
| | | self.assertEqual(result['virtual_root_path'], ()) |
| | | |
| | | def test_call_with_environ(self): |
| | | import warnings |
| | | warnings.filterwarnings('ignore') |
| | | try: |
| | | with warnings.catch_warnings(record=True) as w: |
| | | warnings.filterwarnings('always') |
| | | policy = self._makeOne(None) |
| | | environ = self._getEnviron() |
| | | result = policy(environ) |
| | |
| | | self.assertEqual(result['root'], policy.root) |
| | | self.assertEqual(result['virtual_root'], policy.root) |
| | | self.assertEqual(result['virtual_root_path'], ()) |
| | | finally: |
| | | warnings.resetwarnings() |
| | | self.assertEqual(len(w), 1) |
| | | |
| | | class FindInterfaceTests(unittest.TestCase): |
| | | def _callFUT(self, context, iface): |
| | |
| | | result = self._callFUT(s) |
| | | self.assertEqual(result, 'abc') |
| | | |
| | | class TraversalContextURLTests(unittest.TestCase): |
| | | class ResourceURLTests(unittest.TestCase): |
| | | def _makeOne(self, context, url): |
| | | return self._getTargetClass()(context, url) |
| | | |
| | | def _getTargetClass(self): |
| | | from pyramid.traversal import TraversalContextURL |
| | | return TraversalContextURL |
| | | from pyramid.traversal import ResourceURL |
| | | return ResourceURL |
| | | |
| | | def _registerTraverser(self, traverser): |
| | | from pyramid.threadlocal import get_current_registry |
| | |
| | | |
| | | def test_class_conforms_to_IContextURL(self): |
| | | from zope.interface.verify import verifyClass |
| | | from pyramid.interfaces import IContextURL |
| | | verifyClass(IContextURL, self._getTargetClass()) |
| | | |
| | | def test_instance_conforms_to_IContextURL(self): |
| | | from zope.interface.verify import verifyObject |
| | | from pyramid.interfaces import IContextURL |
| | | context = DummyContext() |
| | | request = DummyRequest() |
| | | verifyObject(IContextURL, self._makeOne(context, request)) |
| | | |
| | | def test_instance_conforms_to_IResourceURL(self): |
| | | from pyramid.interfaces import IResourceURL |
| | | from zope.interface.verify import verifyObject |
| | | context = DummyContext() |
| | | request = DummyRequest() |
| | | verifyObject(IResourceURL, self._makeOne(context, request)) |
| | | |
| | | def test_call_withlineage(self): |
| | | baz = DummyContext() |
| | | bar = DummyContext(baz) |
| | |
| | | result = context_url() |
| | | self.assertEqual(result, 'abc') |
| | | |
| | | def test_IResourceURL_attributes_with_vroot(self): |
| | | from pyramid.interfaces import VH_ROOT_KEY |
| | | root = DummyContext() |
| | | root.__parent__ = None |
| | | root.__name__ = None |
| | | one = DummyContext() |
| | | one.__parent__ = root |
| | | one.__name__ = 'one' |
| | | two = DummyContext() |
| | | two.__parent__ = one |
| | | two.__name__ = 'two' |
| | | environ = {VH_ROOT_KEY:'/one'} |
| | | request = DummyRequest(environ) |
| | | context_url = self._makeOne(two, request) |
| | | self.assertEqual(context_url.physical_path, '/one/two/') |
| | | self.assertEqual(context_url.virtual_path, '/two/') |
| | | |
| | | def test_IResourceURL_attributes_no_vroot(self): |
| | | root = DummyContext() |
| | | root.__parent__ = None |
| | | root.__name__ = None |
| | | one = DummyContext() |
| | | one.__parent__ = root |
| | | one.__name__ = 'one' |
| | | two = DummyContext() |
| | | two.__parent__ = one |
| | | two.__name__ = 'two' |
| | | environ = {} |
| | | request = DummyRequest(environ) |
| | | context_url = self._makeOne(two, request) |
| | | self.assertEqual(context_url.physical_path, '/one/two/') |
| | | self.assertEqual(context_url.virtual_path, '/one/two/') |
| | | |
| | | class TestVirtualRoot(unittest.TestCase): |
| | | def setUp(self): |
| | | cleanUp() |
| | |
| | | return virtual_root(resource, request) |
| | | |
| | | def test_registered(self): |
| | | from pyramid.interfaces import IContextURL |
| | | from zope.interface import Interface |
| | | request = _makeRequest() |
| | | request.registry.registerAdapter(DummyContextURL, (Interface,Interface), |