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