128 f1 = self.create_file() |
128 f1 = self.create_file() |
129 rset = self.execute('Any X,D WITH D,X BEING (' |
129 rset = self.execute('Any X,D WITH D,X BEING (' |
130 ' (Any D, X WHERE X eid %(x)s, X data D)' |
130 ' (Any D, X WHERE X eid %(x)s, X data D)' |
131 ' UNION ' |
131 ' UNION ' |
132 ' (Any D, X WHERE X eid %(x)s, X data D)' |
132 ' (Any D, X WHERE X eid %(x)s, X data D)' |
133 ')', {'x': f1.eid}, 'x') |
133 ')', {'x': f1.eid}) |
134 self.assertEquals(len(rset), 2) |
134 self.assertEquals(len(rset), 2) |
135 self.assertEquals(rset[0][0], f1.eid) |
135 self.assertEquals(rset[0][0], f1.eid) |
136 self.assertEquals(rset[1][0], f1.eid) |
136 self.assertEquals(rset[1][0], f1.eid) |
137 self.assertEquals(rset[0][1].getvalue(), 'the-data') |
137 self.assertEquals(rset[0][1].getvalue(), 'the-data') |
138 self.assertEquals(rset[1][1].getvalue(), 'the-data') |
138 self.assertEquals(rset[1][1].getvalue(), 'the-data') |
139 rset = self.execute('Any X,LENGTH(D) WHERE X eid %(x)s, X data D', |
139 rset = self.execute('Any X,LENGTH(D) WHERE X eid %(x)s, X data D', |
140 {'x': f1.eid}, 'x') |
140 {'x': f1.eid}) |
141 self.assertEquals(len(rset), 1) |
141 self.assertEquals(len(rset), 1) |
142 self.assertEquals(rset[0][0], f1.eid) |
142 self.assertEquals(rset[0][0], f1.eid) |
143 self.assertEquals(rset[0][1], len('the-data')) |
143 self.assertEquals(rset[0][1], len('the-data')) |
144 rset = self.execute('Any X,LENGTH(D) WITH D,X BEING (' |
144 rset = self.execute('Any X,LENGTH(D) WITH D,X BEING (' |
145 ' (Any D, X WHERE X eid %(x)s, X data D)' |
145 ' (Any D, X WHERE X eid %(x)s, X data D)' |
146 ' UNION ' |
146 ' UNION ' |
147 ' (Any D, X WHERE X eid %(x)s, X data D)' |
147 ' (Any D, X WHERE X eid %(x)s, X data D)' |
148 ')', {'x': f1.eid}, 'x') |
148 ')', {'x': f1.eid}) |
149 self.assertEquals(len(rset), 2) |
149 self.assertEquals(len(rset), 2) |
150 self.assertEquals(rset[0][0], f1.eid) |
150 self.assertEquals(rset[0][0], f1.eid) |
151 self.assertEquals(rset[1][0], f1.eid) |
151 self.assertEquals(rset[1][0], f1.eid) |
152 self.assertEquals(rset[0][1], len('the-data')) |
152 self.assertEquals(rset[0][1], len('the-data')) |
153 self.assertEquals(rset[1][1], len('the-data')) |
153 self.assertEquals(rset[1][1], len('the-data')) |
154 ex = self.assertRaises(QueryError, self.execute, |
154 ex = self.assertRaises(QueryError, self.execute, |
155 'Any X,UPPER(D) WHERE X eid %(x)s, X data D', |
155 'Any X,UPPER(D) WHERE X eid %(x)s, X data D', |
156 {'x': f1.eid}, 'x') |
156 {'x': f1.eid}) |
157 self.assertEquals(str(ex), 'UPPER can not be called on mapped attribute') |
157 self.assertEquals(str(ex), 'UPPER can not be called on mapped attribute') |
158 |
158 |
159 |
159 |
160 def test_bfss_fs_importing_transparency(self): |
160 def test_bfss_fs_importing_transparency(self): |
161 self.session.transaction_data['fs_importing'] = True |
161 self.session.transaction_data['fs_importing'] = True |
174 # update f1's local dict. We want the pure rql version to work |
174 # update f1's local dict. We want the pure rql version to work |
175 self.execute('SET F data %(d)s WHERE F eid %(f)s', |
175 self.execute('SET F data %(d)s WHERE F eid %(f)s', |
176 {'d': Binary('some other data'), 'f': f1.eid}) |
176 {'d': Binary('some other data'), 'f': f1.eid}) |
177 self.assertEquals(f1.data.getvalue(), 'some other data') |
177 self.assertEquals(f1.data.getvalue(), 'some other data') |
178 self.commit() |
178 self.commit() |
179 f2 = self.entity('Any F WHERE F eid %(f)s, F is File', {'f': f1.eid}) |
179 f2 = self.execute('Any F WHERE F eid %(f)s, F is File', {'f': f1.eid}).get_entity(0, 0) |
180 self.assertEquals(f2.data.getvalue(), 'some other data') |
180 self.assertEquals(f2.data.getvalue(), 'some other data') |
181 |
181 |
182 |
182 |
183 if __name__ == '__main__': |
183 if __name__ == '__main__': |
184 unittest_main() |
184 unittest_main() |