# HG changeset patch # User Sylvain Thénault # Date 1253116103 -7200 # Node ID 320a715e2a2240aa24602098cda272ebf5758ba8 # Parent 38ffdb284689700a4214d40f81b64f2f08c3b0c4 backport default fix diff -r 38ffdb284689 -r 320a715e2a22 server/test/data/migratedapp/schema.py --- 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')]) diff -r 38ffdb284689 -r 320a715e2a22 server/test/unittest_migractions.py --- 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)