From 927acdcb1419e636a67d328084a546834aaa173d Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 10 Oct 2009 03:58:41 +0000 Subject: - Add a new ``repoze.bfg.testing`` API: ``registerRoute``, for registering routes to satisfy calls to e.g. ``repoze.bfg.url.route_url`` in unit tests. --- repoze/bfg/tests/test_testing.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'repoze/bfg/tests/test_testing.py') diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py index 938115ecd..05cddc980 100644 --- a/repoze/bfg/tests/test_testing.py +++ b/repoze/bfg/tests/test_testing.py @@ -259,6 +259,34 @@ class TestTestingFunctions(unittest.TestCase): testing.registerUtility(utility, iface, name='mudge') self.assertEqual(getUtility(iface, name='mudge')(), 'foo') + def test_registerRoute(self): + from repoze.bfg.url import route_url + from repoze.bfg.interfaces import IRoutesMapper + from repoze.bfg.testing import registerRoute + from zope.component import getSiteManager + class Factory: + def __init__(self, environ): + """ """ + class DummyRequest: + application_url = 'http://example.com' + registerRoute(':pagename', 'home', Factory) + sm = getSiteManager() + mapper = sm.getUtility(IRoutesMapper) + self.assertEqual(len(mapper.routelist), 1) + request = DummyRequest() + self.assertEqual(route_url('home', request, pagename='abc'), + 'http://example.com/abc') + +class TestDummyRootFactory(unittest.TestCase): + def _makeOne(self, environ): + from repoze.bfg.testing import DummyRootFactory + return DummyRootFactory(environ) + + def test_it(self): + environ = {'bfg.routes.matchdict':{'a':1}} + factory = self._makeOne(environ) + self.assertEqual(factory.a, 1) + class TestDummySecurityPolicy(unittest.TestCase): def _getTargetClass(self): from repoze.bfg.testing import DummySecurityPolicy -- cgit v1.2.3