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) |