summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Rukavina <marin@shinyshell.net>2012-05-02 02:55:03 +0200
committerMarin Rukavina <marin@shinyshell.net>2012-05-02 02:55:03 +0200
commit3d65afea0d2bd529a87f72d87a986c989ebffd29 (patch)
tree1d9d1bcae2ff9a5167801e275b652f5c304c3614
parent04af145ab4b19d6fe0c4a5087c1722868d6fcedc (diff)
downloadpyramid-3d65afea0d2bd529a87f72d87a986c989ebffd29.tar.gz
pyramid-3d65afea0d2bd529a87f72d87a986c989ebffd29.tar.bz2
pyramid-3d65afea0d2bd529a87f72d87a986c989ebffd29.zip
Updated tests for static files and made static.py raise all HTTP exceptions
-rw-r--r--pyramid/static.py6
-rw-r--r--pyramid/tests/test_static.py32
2 files changed, 25 insertions, 13 deletions
diff --git a/pyramid/static.py b/pyramid/static.py
index 50b274dae..63ca58597 100644
--- a/pyramid/static.py
+++ b/pyramid/static.py
@@ -108,7 +108,7 @@ class static_view(object):
resource_path ='%s/%s' % (self.docroot.rstrip('/'), path)
if resource_isdir(self.package_name, resource_path):
if not request.path_url.endswith('/'):
- return self.add_slash_redirect(request)
+ self.add_slash_redirect(request)
resource_path = '%s/%s' % (resource_path.rstrip('/'),self.index)
if not resource_exists(self.package_name, resource_path):
raise HTTPNotFound(request.url)
@@ -120,7 +120,7 @@ class static_view(object):
filepath = normcase(normpath(join(self.norm_docroot, path)))
if isdir(filepath):
if not request.path_url.endswith('/'):
- return self.add_slash_redirect(request)
+ self.add_slash_redirect(request)
filepath = join(filepath, self.index)
if not exists(filepath):
raise HTTPNotFound(request.url)
@@ -132,7 +132,7 @@ class static_view(object):
qs = request.query_string
if qs:
url = url + '?' + qs
- return HTTPMovedPermanently(url)
+ raise HTTPMovedPermanently(url)
_seps = set(['/', os.sep])
def _contains_slash(item):
diff --git a/pyramid/tests/test_static.py b/pyramid/tests/test_static.py
index 300647099..0141405e9 100644
--- a/pyramid/tests/test_static.py
+++ b/pyramid/tests/test_static.py
@@ -38,11 +38,17 @@ class Test_static_view_use_subpath_False(unittest.TestCase):
inst = self._makeOne('pyramid.tests:fixtures/static')
request = self._makeRequest({'PATH_INFO':''})
context = DummyContext()
- response = inst(context, request)
- response.prepare(request.environ)
- self.assertEqual(response.status, '301 Moved Permanently')
- self.assertTrue(b'http://example.com:6543/' in response.body)
-
+ from pyramid.httpexceptions import HTTPMovedPermanently
+ try:
+ response = inst(context, request)
+ except HTTPMovedPermanently as e:
+ self.assertEqual(e.code, 301)
+ self.assertTrue(b'http://example.com:6543/' in e.location)
+ else:
+ response.prepare(request.environ)
+ self.assertEqual(response.status, '301 Moved Permanently')
+ self.assertTrue(b'http://example.com:6543/' in response.body)
+
def test_path_info_slash_means_index_html(self):
inst = self._makeOne('pyramid.tests:fixtures/static')
request = self._makeRequest()
@@ -258,11 +264,17 @@ class Test_static_view_use_subpath_True(unittest.TestCase):
request = self._makeRequest({'PATH_INFO':''})
request.subpath = ()
context = DummyContext()
- response = inst(context, request)
- response.prepare(request.environ)
- self.assertEqual(response.status, '301 Moved Permanently')
- self.assertTrue(b'http://example.com:6543/' in response.body)
-
+ from pyramid.httpexceptions import HTTPMovedPermanently
+ try:
+ response = inst(context, request)
+ except HTTPMovedPermanently as e:
+ self.assertEqual(e.code, 301)
+ self.assertTrue(b'http://example.com:6543/' in e.location)
+ else:
+ response.prepare(request.environ)
+ self.assertEqual(response.status, '301 Moved Permanently')
+ self.assertTrue(b'http://example.com:6543/' in response.body)
+
def test_path_info_slash_means_index_html(self):
inst = self._makeOne('pyramid.tests:fixtures/static')
request = self._makeRequest()