54 self.assertIsInstance(self.process('123')[1], ResultSet) |
54 self.assertIsInstance(self.process('123')[1], ResultSet) |
55 self.assertEqual(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_etype(self): |
60 """tests the rest path resolution""" |
60 """tests the rest path resolution""" |
61 ctrl, rset = self.process('CWUser') |
61 ctrl, rset = self.process('CWEType') |
62 self.assertEqual(ctrl, 'view') |
62 self.assertEqual(ctrl, 'view') |
63 self.assertEqual(rset.description[0][0], 'CWUser') |
63 self.assertEqual(rset.description[0][0], 'CWEType') |
64 self.assertEqual(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 ORDERBY AA WHERE X is CWEType, X name AA, X modification_date AB") |
|
66 |
|
67 def test_rest_path_by_attr(self): |
66 ctrl, rset = self.process('CWUser/login/admin') |
68 ctrl, rset = self.process('CWUser/login/admin') |
67 self.assertEqual(ctrl, 'view') |
69 self.assertEqual(ctrl, 'view') |
68 self.assertEqual(len(rset), 1) |
70 self.assertEqual(len(rset), 1) |
69 self.assertEqual(rset.description[0][0], 'CWUser') |
71 self.assertEqual(rset.description[0][0], 'CWUser') |
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') |
72 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') |
|
73 |
|
74 def test_rest_path_unique_attr(self): |
71 ctrl, rset = self.process('cwuser/admin') |
75 ctrl, rset = self.process('cwuser/admin') |
72 self.assertEqual(ctrl, 'view') |
76 self.assertEqual(ctrl, 'view') |
73 self.assertEqual(len(rset), 1) |
77 self.assertEqual(len(rset), 1) |
74 self.assertEqual(rset.description[0][0], 'CWUser') |
78 self.assertEqual(rset.description[0][0], 'CWUser') |
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') |
79 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]) |
80 |
|
81 def test_rest_path_eid(self): |
|
82 ctrl, rset = self.process('cwuser/eid/%s' % self.user().eid) |
77 self.assertEqual(ctrl, 'view') |
83 self.assertEqual(ctrl, 'view') |
78 self.assertEqual(len(rset), 1) |
84 self.assertEqual(len(rset), 1) |
79 self.assertEqual(rset.description[0][0], 'CWUser') |
85 self.assertEqual(rset.description[0][0], 'CWUser') |
80 self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid %s, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD' % rset[0][0]) |
86 self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid %s, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD' % rset[0][0]) |
81 # test non-ascii paths |
87 |
|
88 def test_rest_path_non_ascii_paths(self): |
82 ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe') |
89 ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe') |
83 self.assertEqual(ctrl, 'view') |
90 self.assertEqual(ctrl, 'view') |
84 self.assertEqual(len(rset), 1) |
91 self.assertEqual(len(rset), 1) |
85 self.assertEqual(rset.description[0][0], 'CWUser') |
92 self.assertEqual(rset.description[0][0], 'CWUser') |
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') |
93 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 |
94 |
|
95 def test_rest_path_quoted_paths(self): |
88 ctrl, rset = self.process('BlogEntry/title/hell%27o') |
96 ctrl, rset = self.process('BlogEntry/title/hell%27o') |
89 self.assertEqual(ctrl, 'view') |
97 self.assertEqual(ctrl, 'view') |
90 self.assertEqual(len(rset), 1) |
98 self.assertEqual(len(rset), 1) |
91 self.assertEqual(rset.description[0][0], 'BlogEntry') |
99 self.assertEqual(rset.description[0][0], 'BlogEntry') |
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') |
100 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 |
101 |
|
102 def test_rest_path_errors(self): |
94 self.assertRaises(NotFound, self.process, 'CWUser/eid/30000') |
103 self.assertRaises(NotFound, self.process, 'CWUser/eid/30000') |
95 self.assertRaises(NotFound, self.process, 'Workcases') |
104 self.assertRaises(NotFound, self.process, 'Workcases') |
96 self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe') |
105 self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe') |
97 |
106 |
98 def test_action_path(self): |
107 def test_action_path(self): |