web/test/unittest_urlpublisher.py
branchstable
changeset 6340 470d8e828fda
parent 6315 8ca3ee849bee
child 6415 b0b0f097a72d
equal deleted inserted replaced
6339:bdc3dc94d744 6340:470d8e828fda
    43         req = self.req = self.request()
    43         req = self.req = self.request()
    44         return self.app.url_resolver.process(req, url)
    44         return self.app.url_resolver.process(req, url)
    45 
    45 
    46     def test_raw_path(self):
    46     def test_raw_path(self):
    47         """tests raw path resolution'"""
    47         """tests raw path resolution'"""
    48         self.assertEquals(self.process('view'), ('view', None))
    48         self.assertEqual(self.process('view'), ('view', None))
    49         self.assertEquals(self.process('edit'), ('edit', None))
    49         self.assertEqual(self.process('edit'), ('edit', None))
    50         self.assertRaises(NotFound, self.process, 'whatever')
    50         self.assertRaises(NotFound, self.process, 'whatever')
    51 
    51 
    52     def test_eid_path(self):
    52     def test_eid_path(self):
    53         """tests eid path resolution"""
    53         """tests eid path resolution"""
    54         self.assertIsInstance(self.process('123')[1], ResultSet)
    54         self.assertIsInstance(self.process('123')[1], ResultSet)
    55         self.assertEquals(len(self.process('123')[1]), 1)
    55         self.assertEqual(len(self.process('123')[1]), 1)
    56         self.assertRaises(NotFound, self.process, '123/345')
    56         self.assertRaises(NotFound, self.process, '123/345')
    57         self.assertRaises(NotFound, self.process, 'not_eid')
    57         self.assertRaises(NotFound, self.process, 'not_eid')
    58 
    58 
    59     def test_rest_path(self):
    59     def test_rest_path(self):
    60         """tests the rest path resolution"""
    60         """tests the rest path resolution"""
    61         ctrl, rset = self.process('CWUser')
    61         ctrl, rset = self.process('CWUser')
    62         self.assertEquals(ctrl, 'view')
    62         self.assertEqual(ctrl, 'view')
    63         self.assertEquals(rset.description[0][0], 'CWUser')
    63         self.assertEqual(rset.description[0][0], 'CWUser')
    64         self.assertEquals(rset.printable_rql(),
    64         self.assertEqual(rset.printable_rql(),
    65                           "Any X,AA,AB,AC,AD ORDERBY AA WHERE X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD")
    65                           "Any X,AA,AB,AC,AD ORDERBY AA WHERE X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD")
    66         ctrl, rset = self.process('CWUser/login/admin')
    66         ctrl, rset = self.process('CWUser/login/admin')
    67         self.assertEquals(ctrl, 'view')
    67         self.assertEqual(ctrl, 'view')
    68         self.assertEquals(len(rset), 1)
    68         self.assertEqual(len(rset), 1)
    69         self.assertEquals(rset.description[0][0], 'CWUser')
    69         self.assertEqual(rset.description[0][0], 'CWUser')
    70         self.assertEquals(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    70         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    71         ctrl, rset = self.process('cwuser/admin')
    71         ctrl, rset = self.process('cwuser/admin')
    72         self.assertEquals(ctrl, 'view')
    72         self.assertEqual(ctrl, 'view')
    73         self.assertEquals(len(rset), 1)
    73         self.assertEqual(len(rset), 1)
    74         self.assertEquals(rset.description[0][0], 'CWUser')
    74         self.assertEqual(rset.description[0][0], 'CWUser')
    75         self.assertEquals(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    75         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    76         ctrl, rset = self.process('cwuser/eid/%s'%rset[0][0])
    76         ctrl, rset = self.process('cwuser/eid/%s'%rset[0][0])
    77         self.assertEquals(ctrl, 'view')
    77         self.assertEqual(ctrl, 'view')
    78         self.assertEquals(len(rset), 1)
    78         self.assertEqual(len(rset), 1)
    79         self.assertEquals(rset.description[0][0], 'CWUser')
    79         self.assertEqual(rset.description[0][0], 'CWUser')
    80         self.assertEquals(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid 5, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    80         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid 5, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    81         # test non-ascii paths
    81         # test non-ascii paths
    82         ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe')
    82         ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe')
    83         self.assertEquals(ctrl, 'view')
    83         self.assertEqual(ctrl, 'view')
    84         self.assertEquals(len(rset), 1)
    84         self.assertEqual(len(rset), 1)
    85         self.assertEquals(rset.description[0][0], 'CWUser')
    85         self.assertEqual(rset.description[0][0], 'CWUser')
    86         self.assertEquals(rset.printable_rql(), u'Any X,AA,AB,AC,AD WHERE X login "\xffsa\xffe", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    86         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC,AD WHERE X login "\xffsa\xffe", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    87         # test quoted paths
    87         # test quoted paths
    88         ctrl, rset = self.process('BlogEntry/title/hell%27o')
    88         ctrl, rset = self.process('BlogEntry/title/hell%27o')
    89         self.assertEquals(ctrl, 'view')
    89         self.assertEqual(ctrl, 'view')
    90         self.assertEquals(len(rset), 1)
    90         self.assertEqual(len(rset), 1)
    91         self.assertEquals(rset.description[0][0], 'BlogEntry')
    91         self.assertEqual(rset.description[0][0], 'BlogEntry')
    92         self.assertEquals(rset.printable_rql(), u'Any X,AA,AB,AC WHERE X title "hell\'o", X is BlogEntry, X creation_date AA, X title AB, X modification_date AC')
    92         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC WHERE X title "hell\'o", X is BlogEntry, X creation_date AA, X title AB, X modification_date AC')
    93         # errors
    93         # errors
    94         self.assertRaises(NotFound, self.process, 'CWUser/eid/30000')
    94         self.assertRaises(NotFound, self.process, 'CWUser/eid/30000')
    95         self.assertRaises(NotFound, self.process, 'Workcases')
    95         self.assertRaises(NotFound, self.process, 'Workcases')
    96         self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe')
    96         self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe')
    97 
    97 
   106 
   106 
   107 
   107 
   108     def test_regexp_path(self):
   108     def test_regexp_path(self):
   109         """tests the regexp path resolution"""
   109         """tests the regexp path resolution"""
   110         ctrl, rset = self.process('add/Task')
   110         ctrl, rset = self.process('add/Task')
   111         self.assertEquals(ctrl, 'view')
   111         self.assertEqual(ctrl, 'view')
   112         self.assertEquals(rset, None)
   112         self.assertEqual(rset, None)
   113         self.assertEquals(self.req.form, {'etype' : "Task", 'vid' : "creation"})
   113         self.assertEqual(self.req.form, {'etype' : "Task", 'vid' : "creation"})
   114         self.assertRaises(NotFound, self.process, 'add/foo/bar')
   114         self.assertRaises(NotFound, self.process, 'add/foo/bar')
   115 
   115 
   116 
   116 
   117     def test_nonascii_path(self):
   117     def test_nonascii_path(self):
   118         oldrules = SimpleReqRewriter.rules
   118         oldrules = SimpleReqRewriter.rules
   119         SimpleReqRewriter.rules = [(re.compile('/\w+', re.U), dict(vid='foo')),]
   119         SimpleReqRewriter.rules = [(re.compile('/\w+', re.U), dict(vid='foo')),]
   120         try:
   120         try:
   121             path = str(FakeRequest().url_quote(u'été'))
   121             path = str(FakeRequest().url_quote(u'été'))
   122             ctrl, rset = self.process(path)
   122             ctrl, rset = self.process(path)
   123             self.assertEquals(rset, None)
   123             self.assertEqual(rset, None)
   124             self.assertEquals(self.req.form, {'vid' : "foo"})
   124             self.assertEqual(self.req.form, {'vid' : "foo"})
   125         finally:
   125         finally:
   126             SimpleReqRewriter.rules = oldrules
   126             SimpleReqRewriter.rules = oldrules
   127 
   127 
   128 
   128 
   129 if __name__ == '__main__':
   129 if __name__ == '__main__':