server/test/unittest_migractions.py
branchstable
changeset 6790 f4f67ea5436a
parent 6781 5062d86d6ffe
child 6795 f29d24c3d687
equal deleted inserted replaced
6789:f38963f7c91d 6790:f4f67ea5436a
   106         #     this sounds like a pysqlite/2.5 bug (the same eid is affected to
   106         #     this sounds like a pysqlite/2.5 bug (the same eid is affected to
   107         #     two different entities)
   107         #     two different entities)
   108         self.mh.rollback()
   108         self.mh.rollback()
   109 
   109 
   110     def test_add_attribute_varchar(self):
   110     def test_add_attribute_varchar(self):
       
   111         self.request().create_entity('Note')
       
   112         self.commit()
   111         self.failIf('shortpara' in self.schema)
   113         self.failIf('shortpara' in self.schema)
   112         self.mh.cmd_add_attribute('Note', 'shortpara')
   114         self.mh.cmd_add_attribute('Note', 'shortpara')
   113         self.failUnless('shortpara' in self.schema)
   115         self.failUnless('shortpara' in self.schema)
   114         self.assertEqual(self.schema['shortpara'].subjects(), ('Note', ))
   116         self.assertEqual(self.schema['shortpara'].subjects(), ('Note', ))
   115         self.assertEqual(self.schema['shortpara'].objects(), ('String', ))
   117         self.assertEqual(self.schema['shortpara'].objects(), ('String', ))
   116         # test created column is actually a varchar(64)
   118         # test created column is actually a varchar(64)
   117         notesql = self.mh.sqlexec("SELECT sql FROM sqlite_master WHERE type='table' and name='%sNote'" % SQL_PREFIX)[0][0]
   119         notesql = self.mh.sqlexec("SELECT sql FROM sqlite_master WHERE type='table' and name='%sNote'" % SQL_PREFIX)[0][0]
   118         fields = dict(x.strip().split()[:2] for x in notesql.split('(', 1)[1].rsplit(')', 1)[0].split(','))
   120         fields = dict(x.strip().split()[:2] for x in notesql.split('(', 1)[1].rsplit(')', 1)[0].split(','))
   119         self.assertEqual(fields['%sshortpara' % SQL_PREFIX], 'varchar(64)')
   121         self.assertEqual(fields['%sshortpara' % SQL_PREFIX], 'varchar(64)')
       
   122         req = self.request()
       
   123         # test default value set on existing entities
       
   124         self.assertEqual(req.execute('Note X').get_entity(0, 0).shortpara, 'hop')
       
   125         # test default value set for next entities
       
   126         self.assertEqual(req.create_entity('Note').shortpara, 'hop')
   120         self.mh.rollback()
   127         self.mh.rollback()
   121 
   128 
   122     def test_add_datetime_with_default_value_attribute(self):
   129     def test_add_datetime_with_default_value_attribute(self):
   123         self.failIf('mydate' in self.schema)
   130         self.failIf('mydate' in self.schema)
   124         self.failIf('shortpara' in self.schema)
   131         self.failIf('shortpara' in self.schema)