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__': |