tests/test_urltree.py
changeset 85 fd4b9a80e602
parent 84 65dcbedaa5f5
equal deleted inserted replaced
84:65dcbedaa5f5 85:fd4b9a80e602
   566         self._test_match("quux/a/boo", self.quux_boo, xyz="a", opt="no")
   566         self._test_match("quux/a/boo", self.quux_boo, xyz="a", opt="no")
   567 
   567 
   568     def test_yes (self) :
   568     def test_yes (self) :
   569         self._test_match("quux/a/yes", self.quux_yes, xyz="a")
   569         self._test_match("quux/a/yes", self.quux_yes, xyz="a")
   570     
   570     
   571 
   571 class TestTreeHandler (unittest.TestCase) :
       
   572     def _build_handler (self, name) :
       
   573         def _handler (req, **args) :
       
   574             return name, args
       
   575         
       
   576         return _handler
       
   577 
       
   578     def setUp (self) :
       
   579         self.config = urltree.URLConfig(ignore_extra_args=True)
       
   580 
       
   581         self.root =self.config("/", self._build_handler('root'))
       
   582         self.bar = self.config("/bar", self._build_handler('bar'))
       
   583         self.quux = self.config("/quux/{xyz}", self._build_handler('quux'))
       
   584         self.quux_boo = self.config("/quux/{xyz}/boo/{opt=no}", self._build_handler('quux_boo'))
       
   585 
       
   586         self.tree = urltree.URLTree(self.config)
       
   587 
       
   588     class dummyrequest_page :
       
   589         def __init__ (self, page_name, qargs) :
       
   590             self.page_name = page_name
       
   591             self.qargs = qargs
       
   592 
       
   593         def get_page_name (self) : return self.page_name    
       
   594         def get_args (self) : return self.qargs
       
   595 
       
   596     def _test_handle (self, path, name, qargs={}, **args) :
       
   597         req = self.dummyrequest_page(path, qargs.iteritems())
       
   598 
       
   599         h_name, h_args = self.tree.handle_request(req)
       
   600 
       
   601         self.assertEqual(h_name, name)
       
   602         self.assertEqual(h_args, args)
       
   603     
       
   604     def test_root (self) :
       
   605         self._test_handle("", 'root')
       
   606 
       
   607     def test_bar (self) :
       
   608         self._test_handle("bar", 'bar')
       
   609 
       
   610     def test_quux (self) :
       
   611         self._test_handle("quux/a", 'quux', xyz='a')
       
   612 
       
   613     def test_quux_boo (self) :
       
   614         self._test_handle("quux/a/boo/b", 'quux_boo', xyz='a', opt='b')
       
   615 
       
   616     def test_quux_boo_default (self) :
       
   617         self._test_handle("quux/a/boo", 'quux_boo', xyz='a', opt='no')
       
   618 
       
   619     def test_quux_boo_qarg (self) :
       
   620         self._test_handle("quux/a/boo", 'quux_boo', dict(opt='yes'), xyz='a', opt='yes')
       
   621