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