server/test/unittest_storage.py
changeset 5174 78438ad513ca
parent 5131 88b5ca8da928
child 5196 d14bfd477c44
equal deleted inserted replaced
5173:73760bbb66bd 5174:78438ad513ca
   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()