--- a/server/test/data/migratedapp/schema.py Wed Sep 16 17:46:30 2009 +0200
+++ b/server/test/data/migratedapp/schema.py Wed Sep 16 17:48:23 2009 +0200
@@ -50,9 +50,9 @@
'PE require_permission P, P name "add_note", '
'P require_group G'),)}
+ whatever = Int() # keep it before `date` for unittest_migraction.test_add_attribute_int
date = Datetime()
type = String(maxsize=1)
- whatever = Int()
mydate = Date(default='TODAY')
shortpara = String(maxsize=64)
ecrit_par = SubjectRelation('Personne', constraints=[RQLConstraint('S concerne A, O concerne A')])
--- a/server/test/unittest_migractions.py Wed Sep 16 17:46:30 2009 +0200
+++ b/server/test/unittest_migractions.py Wed Sep 16 17:48:23 2009 +0200
@@ -45,19 +45,27 @@
assert self.cnx is self.mh._cnx
assert self.session is self.mh.session, (self.session.id, self.mh.session.id)
+
def test_add_attribute_int(self):
self.failIf('whatever' in self.schema)
- paraordernum = self.mh.rqlexec('Any O WHERE X name "Note", RT name "para", RDEF from_entity X, RDEF relation_type RT, RDEF ordernum O')[0][0]
+ orderdict = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
+ 'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
self.mh.cmd_add_attribute('Note', 'whatever')
self.failUnless('whatever' in self.schema)
self.assertEquals(self.schema['whatever'].subjects(), ('Note',))
self.assertEquals(self.schema['whatever'].objects(), ('Int',))
- paraordernum2 = self.mh.rqlexec('Any O WHERE X name "Note", RT name "para", RDEF from_entity X, RDEF relation_type RT, RDEF ordernum O')[0][0]
- self.assertEquals(paraordernum2, paraordernum+1)
+ orderdict2 = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
+ 'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
+ whateverorder = migrschema['whatever'].rproperty('Note', 'Int', 'order')
+ for k, v in orderdict.iteritems():
+ if v >= whateverorder:
+ orderdict[k] = v+1
+ orderdict['whatever'] = whateverorder
+ self.assertDictEquals(orderdict, orderdict2)
#self.assertEquals([r.type for r in self.schema['Note'].ordered_relations()],
# ['modification_date', 'creation_date', 'owned_by',
# 'eid', 'ecrit_par', 'inline1', 'date', 'type',
- # 'whatever', 'para', 'in_basket'])
+ # 'whatever', 'date', 'in_basket'])
# NB: commit instead of rollback make following test fail with py2.5
# this sounds like a pysqlite/2.5 bug (the same eid is affected to
# two different entities)