64 """tests the rest path resolution""" |
64 """tests the rest path resolution""" |
65 with self.admin_access.web_request() as req: |
65 with self.admin_access.web_request() as req: |
66 ctrl, rset = self.process(req, 'CWEType') |
66 ctrl, rset = self.process(req, 'CWEType') |
67 self.assertEqual(ctrl, 'view') |
67 self.assertEqual(ctrl, 'view') |
68 self.assertEqual(rset.description[0][0], 'CWEType') |
68 self.assertEqual(rset.description[0][0], 'CWEType') |
69 self.assertEqual("Any X,AA,AB ORDERBY AA WHERE X is_instance_of CWEType, " |
69 self.assertEqual("Any X,AA,AB ORDERBY AB WHERE X is_instance_of CWEType, " |
70 "X name AA, X modification_date AB", |
70 "X modification_date AA, X name AB", |
71 rset.printable_rql()) |
71 rset.printable_rql()) |
72 |
72 |
73 def test_rest_path_by_attr(self): |
73 def test_rest_path_by_attr(self): |
74 with self.admin_access.web_request() as req: |
74 with self.admin_access.web_request() as req: |
75 ctrl, rset = self.process(req, 'CWUser/login/admin') |
75 ctrl, rset = self.process(req, 'CWUser/login/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('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
79 self.assertEqual('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
80 'X login AA, X firstname AB, X surname AC, ' |
80 'X firstname AA, X login AB, X modification_date AC, ' |
81 'X modification_date AD, X login "admin"', |
81 'X surname AD, X login "admin"', |
82 rset.printable_rql()) |
82 rset.printable_rql()) |
83 |
83 |
84 def test_rest_path_unique_attr(self): |
84 def test_rest_path_unique_attr(self): |
85 with self.admin_access.web_request() as req: |
85 with self.admin_access.web_request() as req: |
86 ctrl, rset = self.process(req, 'cwuser/admin') |
86 ctrl, rset = self.process(req, 'cwuser/admin') |
87 self.assertEqual(ctrl, 'view') |
87 self.assertEqual(ctrl, 'view') |
88 self.assertEqual(len(rset), 1) |
88 self.assertEqual(len(rset), 1) |
89 self.assertEqual(rset.description[0][0], 'CWUser') |
89 self.assertEqual(rset.description[0][0], 'CWUser') |
90 self.assertEqual('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
90 self.assertEqual('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
91 'X login AA, X firstname AB, X surname AC, ' |
91 'X firstname AA, X login AB, X modification_date AC, ' |
92 'X modification_date AD, X login "admin"', |
92 'X surname AD, X login "admin"', |
93 rset.printable_rql()) |
93 rset.printable_rql()) |
94 |
94 |
95 def test_rest_path_eid(self): |
95 def test_rest_path_eid(self): |
96 with self.admin_access.web_request() as req: |
96 with self.admin_access.web_request() as req: |
97 ctrl, rset = self.process(req, 'cwuser/eid/%s' % self.user(req).eid) |
97 ctrl, rset = self.process(req, 'cwuser/eid/%s' % self.user(req).eid) |
98 self.assertEqual(ctrl, 'view') |
98 self.assertEqual(ctrl, 'view') |
99 self.assertEqual(len(rset), 1) |
99 self.assertEqual(len(rset), 1) |
100 self.assertEqual(rset.description[0][0], 'CWUser') |
100 self.assertEqual(rset.description[0][0], 'CWUser') |
101 self.assertEqual('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
101 self.assertEqual('Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
102 'X login AA, X firstname AB, X surname AC, ' |
102 'X firstname AA, X login AB, X modification_date AC, ' |
103 'X modification_date AD, X eid %s' % rset[0][0], |
103 'X surname AD, X eid %s' % rset[0][0], |
104 rset.printable_rql()) |
104 rset.printable_rql()) |
105 |
105 |
106 def test_rest_path_non_ascii_paths(self): |
106 def test_rest_path_non_ascii_paths(self): |
107 with self.admin_access.web_request() as req: |
107 with self.admin_access.web_request() as req: |
108 ctrl, rset = self.process(req, 'CWUser/login/%C3%BFsa%C3%BFe') |
108 ctrl, rset = self.process(req, 'CWUser/login/%C3%BFsa%C3%BFe') |
109 self.assertEqual(ctrl, 'view') |
109 self.assertEqual(ctrl, 'view') |
110 self.assertEqual(len(rset), 1) |
110 self.assertEqual(len(rset), 1) |
111 self.assertEqual(rset.description[0][0], 'CWUser') |
111 self.assertEqual(rset.description[0][0], 'CWUser') |
112 self.assertEqual(u'Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
112 self.assertEqual(u'Any X,AA,AB,AC,AD WHERE X is_instance_of CWUser, ' |
113 u'X login AA, X firstname AB, X surname AC, ' |
113 u'X firstname AA, X login AB, X modification_date AC, ' |
114 u'X modification_date AD, X login "\xffsa\xffe"', |
114 u'X surname AD, X login "\xffsa\xffe"', |
115 rset.printable_rql()) |
115 rset.printable_rql()) |
116 |
116 |
117 def test_rest_path_quoted_paths(self): |
117 def test_rest_path_quoted_paths(self): |
118 with self.admin_access.web_request() as req: |
118 with self.admin_access.web_request() as req: |
119 ctrl, rset = self.process(req, 'BlogEntry/title/hell%27o') |
119 ctrl, rset = self.process(req, 'BlogEntry/title/hell%27o') |
120 self.assertEqual(ctrl, 'view') |
120 self.assertEqual(ctrl, 'view') |
121 self.assertEqual(len(rset), 1) |
121 self.assertEqual(len(rset), 1) |
122 self.assertEqual(rset.description[0][0], 'BlogEntry') |
122 self.assertEqual(rset.description[0][0], 'BlogEntry') |
123 self.assertEqual(u'Any X,AA,AB,AC WHERE X is_instance_of BlogEntry, ' |
123 self.assertEqual(u'Any X,AA,AB,AC WHERE X is_instance_of BlogEntry, ' |
124 'X creation_date AA, X title AB, X modification_date AC, ' |
124 'X creation_date AA, X modification_date AB, X title AC, ' |
125 'X title "hell\'o"', |
125 'X title "hell\'o"', |
126 rset.printable_rql()) |
126 rset.printable_rql()) |
127 |
127 |
128 def test_rest_path_errors(self): |
128 def test_rest_path_errors(self): |
129 with self.admin_access.web_request() as req: |
129 with self.admin_access.web_request() as req: |