414 'PE require_permission P, P name "add_note", P require_group G') |
414 'PE require_permission P, P name "add_note", P require_group G') |
415 self.assertEqual([et.name for et in eexpr.reverse_add_permission], ['Note']) |
415 self.assertEqual([et.name for et in eexpr.reverse_add_permission], ['Note']) |
416 self.assertEqual(eexpr.reverse_read_permission, ()) |
416 self.assertEqual(eexpr.reverse_read_permission, ()) |
417 self.assertEqual(eexpr.reverse_delete_permission, ()) |
417 self.assertEqual(eexpr.reverse_delete_permission, ()) |
418 self.assertEqual(eexpr.reverse_update_permission, ()) |
418 self.assertEqual(eexpr.reverse_update_permission, ()) |
419 # no more rqlexpr to delete and add para attribute |
419 self.assertTrue(self._rrqlexpr_rset('add', 'para')) |
420 self.assertFalse(self._rrqlexpr_rset('add', 'para')) |
420 # no rqlexpr to delete para attribute |
421 self.assertFalse(self._rrqlexpr_rset('delete', 'para')) |
421 self.assertFalse(self._rrqlexpr_rset('delete', 'para')) |
422 # new rql expr to add ecrit_par relation |
422 # new rql expr to add ecrit_par relation |
423 rexpr = self._rrqlexpr_entity('add', 'ecrit_par') |
423 rexpr = self._rrqlexpr_entity('add', 'ecrit_par') |
424 self.assertEqual(rexpr.expression, |
424 self.assertEqual(rexpr.expression, |
425 'O require_permission P, P name "add_note", ' |
425 'O require_permission P, P name "add_note", ' |
443 self.assertEqual(len(self._erqlexpr_rset('add', 'Affaire')), 1) |
443 self.assertEqual(len(self._erqlexpr_rset('add', 'Affaire')), 1) |
444 # no change for rqlexpr to add and delete concerne relation |
444 # no change for rqlexpr to add and delete concerne relation |
445 self.assertEqual(len(self._rrqlexpr_rset('delete', 'concerne')), len(delete_concerne_rqlexpr)) |
445 self.assertEqual(len(self._rrqlexpr_rset('delete', 'concerne')), len(delete_concerne_rqlexpr)) |
446 self.assertEqual(len(self._rrqlexpr_rset('add', 'concerne')), len(add_concerne_rqlexpr)) |
446 self.assertEqual(len(self._rrqlexpr_rset('add', 'concerne')), len(add_concerne_rqlexpr)) |
447 # * migrschema involve: |
447 # * migrschema involve: |
448 # * 7 rqlexprs deletion (2 in (Affaire read + Societe + travaille) + 1 |
448 # * 7 erqlexprs deletions (2 in (Affaire + Societe + Note.para) + 1 Note.something |
449 # in para attribute) |
449 # * 2 rrqlexprs deletions (travaille) |
450 # * 1 update (Affaire update) |
450 # * 1 update (Affaire update) |
451 # * 2 new (Note add, ecrit_par add) |
451 # * 2 new (Note add, ecrit_par add) |
452 # * 2 implicit new for attributes update_permission (Note.para, Personne.test) |
452 # * 2 implicit new for attributes (Note.para, Person.test) |
453 # remaining orphan rql expr which should be deleted at commit (composite relation) |
453 # remaining orphan rql expr which should be deleted at commit (composite relation) |
454 self.assertEqual(cursor.execute('Any COUNT(X) WHERE X is RQLExpression, ' |
454 # unattached expressions -> pending deletion on commit |
455 'NOT ET1 read_permission X, NOT ET2 add_permission X, ' |
455 self.assertEqual(cursor.execute('Any COUNT(X) WHERE X is RQLExpression, X exprtype "ERQLExpression",' |
456 'NOT ET3 delete_permission X, NOT ET4 update_permission X')[0][0], |
456 'NOT ET1 read_permission X, NOT ET2 add_permission X, ' |
457 7+1) |
457 'NOT ET3 delete_permission X, NOT ET4 update_permission X')[0][0], |
|
458 7) |
|
459 self.assertEqual(cursor.execute('Any COUNT(X) WHERE X is RQLExpression, X exprtype "RRQLExpression",' |
|
460 'NOT ET1 read_permission X, NOT ET2 add_permission X, ' |
|
461 'NOT ET3 delete_permission X, NOT ET4 update_permission X')[0][0], |
|
462 2) |
458 # finally |
463 # finally |
459 self.assertEqual(cursor.execute('Any COUNT(X) WHERE X is RQLExpression')[0][0], |
464 self.assertEqual(cursor.execute('Any COUNT(X) WHERE X is RQLExpression')[0][0], |
460 nbrqlexpr_start + 1 + 2 + 2) |
465 nbrqlexpr_start + 1 + 2 + 2 + 2) |
461 self.mh.commit() |
466 self.mh.commit() |
462 # unique_together test |
467 # unique_together test |
463 self.assertEqual(len(self.schema.eschema('Personne')._unique_together), 1) |
468 self.assertEqual(len(self.schema.eschema('Personne')._unique_together), 1) |
464 self.assertCountEqual(self.schema.eschema('Personne')._unique_together[0], |
469 self.assertCountEqual(self.schema.eschema('Personne')._unique_together[0], |
465 ('nom', 'prenom', 'datenaiss')) |
470 ('nom', 'prenom', 'datenaiss')) |