summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2011-03-28 07:02:00 -0400
committerChris McDonough <chrism@plope.com>2011-03-28 07:02:00 -0400
commitd929583f7a850a5f82989b60e6ed51cb887801d9 (patch)
tree803383a451b79320d4891ec4ee1fd9dabc206c76
parentbf3cd11246c26479c921244ed7fc50d23bb82e79 (diff)
downloadpyramid-d929583f7a850a5f82989b60e6ed51cb887801d9.tar.gz
pyramid-d929583f7a850a5f82989b60e6ed51cb887801d9.tar.bz2
pyramid-d929583f7a850a5f82989b60e6ed51cb887801d9.zip
branch coverage
-rw-r--r--pyramid/config.py32
-rw-r--r--pyramid/tests/test_config.py10
-rw-r--r--pyramid/tests/test_view.py15
-rw-r--r--pyramid/tests/test_wsgi.py2
-rw-r--r--pyramid/wsgi.py8
5 files changed, 48 insertions, 19 deletions
diff --git a/pyramid/config.py b/pyramid/config.py
index 11770624d..047a9d2de 100644
--- a/pyramid/config.py
+++ b/pyramid/config.py
@@ -46,15 +46,6 @@ from pyramid.interfaces import IView
from pyramid.interfaces import IViewClassifier
from pyramid.interfaces import IViewMapperFactory
-try:
- from pyramid import chameleon_text
-except TypeError: # pragma: no cover
- chameleon_text = None # pypy
-try:
- from pyramid import chameleon_zpt
-except TypeError: # pragma: no cover
- chameleon_zpt = None # pypy
-
from pyramid import renderers
from pyramid.authorization import ACLAuthorizationPolicy
from pyramid.compat import all
@@ -89,9 +80,6 @@ from pyramid.view import default_exceptionresponse_view
from pyramid.view import render_view_to_response
from pyramid.view import is_response
-MAX_ORDER = 1 << 30
-DEFAULT_PHASH = md5().hexdigest()
-
DEFAULT_RENDERERS = (
('.mak', mako_renderer_factory),
('.mako', mako_renderer_factory),
@@ -99,10 +87,20 @@ DEFAULT_RENDERERS = (
('string', renderers.string_renderer_factory),
)
-if chameleon_text:
- DEFAULT_RENDERERS += (('.pt', chameleon_zpt.renderer_factory),)
-if chameleon_zpt:
+try:
+ from pyramid import chameleon_text
DEFAULT_RENDERERS += (('.txt', chameleon_text.renderer_factory),)
+except TypeError: # pragma: no cover
+ pass # pypy
+
+try:
+ from pyramid import chameleon_zpt
+ DEFAULT_RENDERERS += (('.pt', chameleon_zpt.renderer_factory),)
+except TypeError: # pragma: no cover
+ pass #pypy
+
+MAX_ORDER = 1 << 30
+DEFAULT_PHASH = md5().hexdigest()
def action_method(wrapped):
""" Wrapper to provide the right conflict info report data when a method
@@ -303,7 +301,9 @@ class Configurator(object):
)
def _set_settings(self, mapping):
- settings = Settings(mapping or {})
+ if not mapping:
+ mapping = {}
+ settings = Settings(mapping)
self.registry.settings = settings
return settings
diff --git a/pyramid/tests/test_config.py b/pyramid/tests/test_config.py
index 8b57e4c74..ec0a7f7de 100644
--- a/pyramid/tests/test_config.py
+++ b/pyramid/tests/test_config.py
@@ -85,6 +85,16 @@ class ConfiguratorTests(unittest.TestCase):
self.failUnless(config.registry.getUtility(IRendererFactory, '.mak'))
self.failUnless(config.registry.getUtility(IRendererFactory, '.mako'))
+ def test__set_settings_as_None(self):
+ config = self._makeOne()
+ settings = config._set_settings(None)
+ self.failUnless(settings)
+
+ def test__set_settings_as_dictwithvalues(self):
+ config = self._makeOne()
+ settings = config._set_settings({'a':'1'})
+ self.assertEqual(settings['a'], '1')
+
def test_begin(self):
from pyramid.config import Configurator
config = Configurator()
diff --git a/pyramid/tests/test_view.py b/pyramid/tests/test_view.py
index c7d90a2af..0e88351b1 100644
--- a/pyramid/tests/test_view.py
+++ b/pyramid/tests/test_view.py
@@ -399,6 +399,14 @@ class Test_append_slash_notfound_view(BaseTest, unittest.TestCase):
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
+ def test_no_route_matches(self):
+ request = self._makeRequest(PATH_INFO='/abc')
+ context = ExceptionResponse()
+ mapper = self._registerMapper(request.registry, True)
+ mapper.routelist[0].val = None
+ response = self._callFUT(context, request)
+ self.assertEqual(response.status, '404 Not Found')
+
def test_matches(self):
request = self._makeRequest(PATH_INFO='/abc')
context = ExceptionResponse()
@@ -447,9 +455,16 @@ class Test_default_exceptionresponse_view(unittest.TestCase):
result = self._callFUT(context, None)
self.failUnless(result is context)
+ def test_is_not_exception_context_is_false_still_chosen(self):
+ request = DummyRequest()
+ request.exception = 0
+ result = self._callFUT(None, request)
+ self.failUnless(result is None)
+
def test_is_not_exception_no_request_exception(self):
context = object()
request = DummyRequest()
+ request.exception = None
result = self._callFUT(context, request)
self.failUnless(result is context)
diff --git a/pyramid/tests/test_wsgi.py b/pyramid/tests/test_wsgi.py
index f1bc2f35c..f63667352 100644
--- a/pyramid/tests/test_wsgi.py
+++ b/pyramid/tests/test_wsgi.py
@@ -30,7 +30,7 @@ class WSGIApp2Tests(unittest.TestCase):
self.assertEqual(response, dummyapp)
self.assertEqual(request.environ['PATH_INFO'], '/subpath')
self.assertEqual(request.environ['SCRIPT_NAME'], '/foo/b/view_name')
-
+
def test_decorator_with_subpath_no_view_name(self):
context = DummyContext()
request = DummyRequest()
diff --git a/pyramid/wsgi.py b/pyramid/wsgi.py
index a647175db..e988a000e 100644
--- a/pyramid/wsgi.py
+++ b/pyramid/wsgi.py
@@ -63,9 +63,13 @@ def wsgiapp2(wrapped):
def decorator(context, request):
traversed = request.traversed
- vroot_path = request.virtual_root_path or ()
+ vroot_path = request.virtual_root_path
+ if not vroot_path:
+ vroot_path = ()
view_name = request.view_name
- subpath = request.subpath or ()
+ subpath = request.subpath
+ if not subpath:
+ subpath = ()
script_tuple = traversed[len(vroot_path):]
script_list = [ quote_path_segment(name) for name in script_tuple ]
if view_name: