From 0970432b72d8f4360b69dc58223ea0725d747d36 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 28 Nov 2009 01:18:25 +0000 Subject: - Turn paths into resource specs in ZCML directives that use context.path. --- repoze/bfg/tests/test_zcml.py | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 1954adf64..1f6703d5d 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -896,6 +896,49 @@ class TestRolledUpFactory(unittest.TestCase): result = factory(True) self.assertEqual(result, True) +class Test_path_spec(unittest.TestCase): + def _callFUT(self, context, path): + from repoze.bfg.zcml import path_spec + return path_spec(context, path) + + def test_no_package_attr(self): + context = DummyContext() + path = '/thepath' + result = self._callFUT(context, path) + self.assertEqual(result, path) + + def test_package_attr_None(self): + context = DummyContext() + context.package = None + path = '/thepath' + result = self._callFUT(context, path) + self.assertEqual(result, path) + + def test_package_path_doesnt_start_with_abspath(self): + context = DummyContext() + context.package = DummyPackage('repoze.bfg.tests') + path = '/thepath' + result = self._callFUT(context, path) + self.assertEqual(result, path) + + def test_package_path_starts_with_abspath(self): + import pkg_resources + import os + context = DummyContext() + package = DummyPackage('repoze.bfg.tests') + package_path = pkg_resources.resource_filename('repoze.bfg.tests', '') + template_path = os.path.join(package_path, 'templates/foo.pt') + context.package = package + result = self._callFUT(context, template_path) + self.assertEqual(result, 'repoze.bfg.tests:templates/foo.pt') + + def test_package_name_is___main__(self): + context = DummyContext() + package = DummyPackage('__main__') + context.package = package + result = self._callFUT(context, '/foo.pt') + self.assertEqual(result, '/foo.pt') + class IDummy(Interface): pass @@ -952,3 +995,7 @@ class DummyRequest: def copy(self): return self +class DummyPackage(object): + def __init__(self, name): + self.__name__ = name + -- cgit v1.2.3