# HG changeset patch # User Tero Marttila # Date 1234813923 -7200 # Node ID fd4b9a80e602f9014d2fe2dd0f683c8d17901099 # Parent 65dcbedaa5f508fe3723d2d6c970aa992bc93677 coverage of urltree is fairly complete now diff -r 65dcbedaa5f5 -r fd4b9a80e602 tests/test_urltree.py --- a/tests/test_urltree.py Mon Feb 16 21:44:06 2009 +0200 +++ b/tests/test_urltree.py Mon Feb 16 21:52:03 2009 +0200 @@ -568,4 +568,54 @@ def test_yes (self) : self._test_match("quux/a/yes", self.quux_yes, xyz="a") +class TestTreeHandler (unittest.TestCase) : + def _build_handler (self, name) : + def _handler (req, **args) : + return name, args + + return _handler + def setUp (self) : + self.config = urltree.URLConfig(ignore_extra_args=True) + + self.root =self.config("/", self._build_handler('root')) + self.bar = self.config("/bar", self._build_handler('bar')) + self.quux = self.config("/quux/{xyz}", self._build_handler('quux')) + self.quux_boo = self.config("/quux/{xyz}/boo/{opt=no}", self._build_handler('quux_boo')) + + self.tree = urltree.URLTree(self.config) + + class dummyrequest_page : + def __init__ (self, page_name, qargs) : + self.page_name = page_name + self.qargs = qargs + + def get_page_name (self) : return self.page_name + def get_args (self) : return self.qargs + + def _test_handle (self, path, name, qargs={}, **args) : + req = self.dummyrequest_page(path, qargs.iteritems()) + + h_name, h_args = self.tree.handle_request(req) + + self.assertEqual(h_name, name) + self.assertEqual(h_args, args) + + def test_root (self) : + self._test_handle("", 'root') + + def test_bar (self) : + self._test_handle("bar", 'bar') + + def test_quux (self) : + self._test_handle("quux/a", 'quux', xyz='a') + + def test_quux_boo (self) : + self._test_handle("quux/a/boo/b", 'quux_boo', xyz='a', opt='b') + + def test_quux_boo_default (self) : + self._test_handle("quux/a/boo", 'quux_boo', xyz='a', opt='no') + + def test_quux_boo_qarg (self) : + self._test_handle("quux/a/boo", 'quux_boo', dict(opt='yes'), xyz='a', opt='yes') +