server/test/unittest_migractions.py
changeset 3589 a5432f99f2d9
parent 3369 7b88d12b4ee2
parent 3587 5b3725f315fc
child 3720 5376aaadd16b
equal deleted inserted replaced
3536:f6c9a5df80fb 3589:a5432f99f2d9
    53         assert self.session is self.mh.session, (self.session.id, self.mh.session.id)
    53         assert self.session is self.mh.session, (self.session.id, self.mh.session.id)
    54 
    54 
    55 
    55 
    56     def test_add_attribute_int(self):
    56     def test_add_attribute_int(self):
    57         self.failIf('whatever' in self.schema)
    57         self.failIf('whatever' in self.schema)
       
    58         self.add_entity('Note')
       
    59         self.commit()
    58         orderdict = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
    60         orderdict = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
    59                                          'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
    61                                          'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
    60         self.mh.cmd_add_attribute('Note', 'whatever')
    62         self.mh.cmd_add_attribute('Note', 'whatever')
    61         self.failUnless('whatever' in self.schema)
    63         self.failUnless('whatever' in self.schema)
    62         self.assertEquals(self.schema['whatever'].subjects(), ('Note',))
    64         self.assertEquals(self.schema['whatever'].subjects(), ('Note',))
    63         self.assertEquals(self.schema['whatever'].objects(), ('Int',))
    65         self.assertEquals(self.schema['whatever'].objects(), ('Int',))
       
    66         self.assertEquals(self.schema['Note'].default('whatever'), 2)
       
    67         note = self.execute('Note X').get_entity(0, 0)
       
    68         self.assertEquals(note.whatever, 2)
    64         orderdict2 = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
    69         orderdict2 = dict(self.mh.rqlexec('Any RTN, O WHERE X name "Note", RDEF from_entity X, '
    65                                           'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
    70                                           'RDEF relation_type RT, RDEF ordernum O, RT name RTN'))
    66         whateverorder = migrschema['whatever'].rproperty('Note', 'Int', 'order')
    71         whateverorder = migrschema['whatever'].rproperty('Note', 'Int', 'order')
    67         for k, v in orderdict.iteritems():
    72         for k, v in orderdict.iteritems():
    68             if v >= whateverorder:
    73             if v >= whateverorder:
   306         eexpr = self._erqlexpr_entity('add', 'Note')
   311         eexpr = self._erqlexpr_entity('add', 'Note')
   307         self.assertEquals(eexpr.expression,
   312         self.assertEquals(eexpr.expression,
   308                           'X ecrit_part PE, U in_group G, '
   313                           'X ecrit_part PE, U in_group G, '
   309                           'PE require_permission P, P name "add_note", P require_group G')
   314                           'PE require_permission P, P name "add_note", P require_group G')
   310         self.assertEquals([et.name for et in eexpr.reverse_add_permission], ['Note'])
   315         self.assertEquals([et.name for et in eexpr.reverse_add_permission], ['Note'])
   311         self.assertEquals(eexpr.reverse_read_permission, [])
   316         self.assertEquals(eexpr.reverse_read_permission, ())
   312         self.assertEquals(eexpr.reverse_delete_permission, [])
   317         self.assertEquals(eexpr.reverse_delete_permission, ())
   313         self.assertEquals(eexpr.reverse_update_permission, [])
   318         self.assertEquals(eexpr.reverse_update_permission, ())
   314         # no more rqlexpr to delete and add para attribute
   319         # no more rqlexpr to delete and add para attribute
   315         self.failIf(self._rrqlexpr_rset('add', 'para'))
   320         self.failIf(self._rrqlexpr_rset('add', 'para'))
   316         self.failIf(self._rrqlexpr_rset('delete', 'para'))
   321         self.failIf(self._rrqlexpr_rset('delete', 'para'))
   317         # new rql expr to add ecrit_par relation
   322         # new rql expr to add ecrit_par relation
   318         rexpr = self._rrqlexpr_entity('add', 'ecrit_par')
   323         rexpr = self._rrqlexpr_entity('add', 'ecrit_par')
   319         self.assertEquals(rexpr.expression,
   324         self.assertEquals(rexpr.expression,
   320                           'O require_permission P, P name "add_note", '
   325                           'O require_permission P, P name "add_note", '
   321                           'U in_group G, P require_group G')
   326                           'U in_group G, P require_group G')
   322         self.assertEquals([rt.name for rt in rexpr.reverse_add_permission], ['ecrit_par'])
   327         self.assertEquals([rt.name for rt in rexpr.reverse_add_permission], ['ecrit_par'])
   323         self.assertEquals(rexpr.reverse_read_permission, [])
   328         self.assertEquals(rexpr.reverse_read_permission, ())
   324         self.assertEquals(rexpr.reverse_delete_permission, [])
   329         self.assertEquals(rexpr.reverse_delete_permission, ())
   325         # no more rqlexpr to delete and add travaille relation
   330         # no more rqlexpr to delete and add travaille relation
   326         self.failIf(self._rrqlexpr_rset('add', 'travaille'))
   331         self.failIf(self._rrqlexpr_rset('add', 'travaille'))
   327         self.failIf(self._rrqlexpr_rset('delete', 'travaille'))
   332         self.failIf(self._rrqlexpr_rset('delete', 'travaille'))
   328         # no more rqlexpr to delete and update Societe entity
   333         # no more rqlexpr to delete and update Societe entity
   329         self.failIf(self._erqlexpr_rset('update', 'Societe'))
   334         self.failIf(self._erqlexpr_rset('update', 'Societe'))