summaryrefslogtreecommitdiff
path: root/repoze
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-08-25 01:30:40 +0000
committerChris McDonough <chrism@agendaless.com>2009-08-25 01:30:40 +0000
commit3d1abbd5be1d1bc0f27e488059ccf7aaca225f31 (patch)
treea47ad780bc4122d557ef139f812983b7bc3700e5 /repoze
parent241390d911639cb658bbbbbf1bf3d8c21e0c0270 (diff)
downloadpyramid-3d1abbd5be1d1bc0f27e488059ccf7aaca225f31.tar.gz
pyramid-3d1abbd5be1d1bc0f27e488059ccf7aaca225f31.tar.bz2
pyramid-3d1abbd5be1d1bc0f27e488059ccf7aaca225f31.zip
- The ``repoze.bfg.view.static`` class now accepts a string as its
first argument ("root_dir") that represents a package-relative name e.g. ``somepackage:foo/bar/static``. This is now the preferred mechanism for spelling package-relative static paths using this class. A ``package_name`` keyword argument has been left around for backwards compatibility. If it is supplied, it will be honored. - Fixed documentation for ``repoze.bfg.view.static`` (in narrative ``Views`` chapter).
Diffstat (limited to 'repoze')
-rw-r--r--repoze/bfg/tests/test_view.py18
-rw-r--r--repoze/bfg/view.py12
-rw-r--r--repoze/bfg/zcml.py2
3 files changed, 27 insertions, 5 deletions
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index a35930f69..3c7d6f853 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -351,7 +351,23 @@ class TestStaticView(unittest.TestCase, BaseTest):
def test_relpath_withpackage(self):
import os
path = 'fixtures'
- view = self._makeOne(path, package_name='another')
+ view = self._makeOne('another:fixtures')
+ context = DummyContext()
+ request = DummyRequest()
+ request.subpath = ['__init__.py']
+ request.environ = self._makeEnviron()
+ response = view(context, request)
+ self.assertEqual(request.copied, True)
+ here = os.path.abspath(os.path.dirname(__file__))
+ self.assertEqual(response.root_resource, 'fixtures')
+ self.assertEqual(response.resource_name, 'fixtures')
+ self.assertEqual(response.package_name, 'another')
+ self.assertEqual(response.cache_max_age, 3600)
+
+ def test_relpath_withpackage_name(self):
+ import os
+ path = 'fixtures'
+ view = self._makeOne('fixtures', package_name='another')
context = DummyContext()
request = DummyRequest()
request.subpath = ['__init__.py']
diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py
index 4e5418175..3fd5a8499 100644
--- a/repoze/bfg/view.py
+++ b/repoze/bfg/view.py
@@ -161,14 +161,20 @@ class static(object):
"""
def __init__(self, root_dir, cache_max_age=3600, level=2,
package_name=None):
+ # package_name is for bw compat; it is preferred to pass in a
+ # package-relative path as root_dir
+ # (e.g. ``anotherpackage:foo/static``).
if os.path.isabs(root_dir):
- root_dir = caller_path(root_dir, level=level)
self.app = StaticURLParser(root_dir, cache_max_age=cache_max_age)
+ return
+ if ':' in root_dir:
+ package_name, root_dir = root_dir.split(':', 1)
else:
if package_name is None:
package_name = caller_package().__name__
- self.app = PackageURLParser(package_name, root_dir,
- cache_max_age=cache_max_age)
+
+ self.app = PackageURLParser(package_name, root_dir,
+ cache_max_age=cache_max_age)
def __call__(self, context, request):
subpath = '/'.join(request.subpath)
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py
index e38fd3449..e0c8d2e8e 100644
--- a/repoze/bfg/zcml.py
+++ b/repoze/bfg/zcml.py
@@ -354,7 +354,7 @@ class IStaticDirective(Interface):
required=True)
cache_max_age = Int(
- title=u"Cache maximum age",
+ title=u"Cache maximum age in seconds",
required=False,
default=None)