server/test/unittest_migractions.py
branch3.5
changeset 3134 3cda74b5534c
parent 3126 2a71f8ab667e
child 3163 edfe43ceaa35
child 3316 c4c07aab1c39
equal deleted inserted replaced
3132:cb310b97424e 3134:3cda74b5534c
    45         assert self.cnx is self.mh._cnx
    45         assert self.cnx is self.mh._cnx
    46         assert self.session is self.mh.session, (self.session.id, self.mh.session.id)
    46         assert self.session is self.mh.session, (self.session.id, self.mh.session.id)
    47 
    47 
    48     def test_add_attribute_int(self):
    48     def test_add_attribute_int(self):
    49         self.failIf('whatever' in self.schema)
    49         self.failIf('whatever' in self.schema)
    50         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]
    50         orderdict = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
       
    51                                          'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
    51         self.mh.cmd_add_attribute('Note', 'whatever')
    52         self.mh.cmd_add_attribute('Note', 'whatever')
    52         self.failUnless('whatever' in self.schema)
    53         self.failUnless('whatever' in self.schema)
    53         self.assertEquals(self.schema['whatever'].subjects(), ('Note',))
    54         self.assertEquals(self.schema['whatever'].subjects(), ('Note',))
    54         self.assertEquals(self.schema['whatever'].objects(), ('Int',))
    55         self.assertEquals(self.schema['whatever'].objects(), ('Int',))
    55         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]
    56         orderdict2 = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
    56         self.assertEquals(paraordernum2, paraordernum+1)
    57                                           'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
       
    58         whateverorder = migrschema['whatever'].rproperty('Note', 'Int', 'order')
       
    59         for k, v in orderdict.iteritems():
       
    60             if v >= whateverorder:
       
    61                 orderdict[k] = v+1
       
    62         orderdict['whatever'] = whateverorder
       
    63         self.assertDictEquals(orderdict, orderdict2)
    57         #self.assertEquals([r.type for r in self.schema['Note'].ordered_relations()],
    64         #self.assertEquals([r.type for r in self.schema['Note'].ordered_relations()],
    58         #                  ['modification_date', 'creation_date', 'owned_by',
    65         #                  ['modification_date', 'creation_date', 'owned_by',
    59         #                   'eid', 'ecrit_par', 'inline1', 'date', 'type',
    66         #                   'eid', 'ecrit_par', 'inline1', 'date', 'type',
    60         #                   'whatever', 'para', 'in_basket'])
    67         #                   'whatever', 'date', 'in_basket'])
    61         # NB: commit instead of rollback make following test fail with py2.5
    68         # NB: commit instead of rollback make following test fail with py2.5
    62         #     this sounds like a pysqlite/2.5 bug (the same eid is affected to
    69         #     this sounds like a pysqlite/2.5 bug (the same eid is affected to
    63         #     two different entities)
    70         #     two different entities)
    64         self.mh.rollback()
    71         self.mh.rollback()
    65 
    72