hooks/test/unittest_syncschema.py
changeset 9675 8aabfefc8a81
parent 9674 96549de9dd70
child 9851 42a874c666b1
equal deleted inserted replaced
9674:96549de9dd70 9675:8aabfefc8a81
    80         self._set_attr_perms(attreid)
    80         self._set_attr_perms(attreid)
    81         concerne2_rdef_eid = self.execute(
    81         concerne2_rdef_eid = self.execute(
    82             'INSERT CWRelation X: X cardinality "**", X relation_type RT, X from_entity E, X to_entity E '
    82             'INSERT CWRelation X: X cardinality "**", X relation_type RT, X from_entity E, X to_entity E '
    83             'WHERE RT name "concerne2", E name "Societe2"')[0][0]
    83             'WHERE RT name "concerne2", E name "Societe2"')[0][0]
    84         self._set_perms(concerne2_rdef_eid)
    84         self._set_perms(concerne2_rdef_eid)
    85         self.assertFalse('name' in schema['Societe2'].subject_relations())
    85         self.assertNotIn('name', schema['Societe2'].subject_relations())
    86         self.assertFalse('concerne2' in schema['Societe2'].subject_relations())
    86         self.assertNotIn('concerne2', schema['Societe2'].subject_relations())
    87         self.assertFalse(self.index_exists('Societe2', 'name'))
    87         self.assertFalse(self.index_exists('Societe2', 'name'))
    88         self.commit()
    88         self.commit()
    89         self.assertIn('name', schema['Societe2'].subject_relations())
    89         self.assertIn('name', schema['Societe2'].subject_relations())
    90         self.assertIn('concerne2', schema['Societe2'].subject_relations())
    90         self.assertIn('concerne2', schema['Societe2'].subject_relations())
    91         self.assertTrue(self.index_exists('Societe2', 'name'))
    91         self.assertTrue(self.index_exists('Societe2', 'name'))
   102         self._set_perms(rdefeid)
   102         self._set_perms(rdefeid)
   103         self.commit()
   103         self.commit()
   104         self.execute('DELETE CWRelation X WHERE X eid %(x)s', {'x': concerne2_rdef_eid})
   104         self.execute('DELETE CWRelation X WHERE X eid %(x)s', {'x': concerne2_rdef_eid})
   105         self.commit()
   105         self.commit()
   106         self.assertIn('concerne2', schema['CWUser'].subject_relations())
   106         self.assertIn('concerne2', schema['CWUser'].subject_relations())
   107         self.assertFalse('concerne2' in schema['Societe2'].subject_relations())
   107         self.assertNotIn('concerne2', schema['Societe2'].subject_relations())
   108         self.assertFalse(self.execute('Any X WHERE X concerne2 Y'))
   108         self.assertFalse(self.execute('Any X WHERE X concerne2 Y'))
   109         # schema should be cleaned on delete (after commit)
   109         # schema should be cleaned on delete (after commit)
   110         self.execute('DELETE CWEType X WHERE X name "Societe2"')
   110         self.execute('DELETE CWEType X WHERE X name "Societe2"')
   111         self.execute('DELETE CWRType X WHERE X name "concerne2"')
   111         self.execute('DELETE CWRType X WHERE X name "concerne2"')
   112         self.assertTrue(self.index_exists('Societe2', 'name'))
   112         self.assertTrue(self.index_exists('Societe2', 'name'))
   114         self.assertTrue(schema.has_relation('concerne2'))
   114         self.assertTrue(schema.has_relation('concerne2'))
   115         self.commit()
   115         self.commit()
   116         self.assertFalse(self.index_exists('Societe2', 'name'))
   116         self.assertFalse(self.index_exists('Societe2', 'name'))
   117         self.assertFalse(schema.has_entity('Societe2'))
   117         self.assertFalse(schema.has_entity('Societe2'))
   118         self.assertFalse(schema.has_entity('concerne2'))
   118         self.assertFalse(schema.has_entity('concerne2'))
   119         self.assertFalse('concerne2' in schema['CWUser'].subject_relations())
   119         self.assertNotIn('concerne2', schema['CWUser'].subject_relations())
   120 
   120 
   121     def test_metartype_with_nordefs(self):
   121     def test_metartype_with_nordefs(self):
   122         META_RTYPES.add('custom_meta')
   122         META_RTYPES.add('custom_meta')
   123         self.execute('INSERT CWRType X: X name "custom_meta", X description "", '
   123         self.execute('INSERT CWRType X: X name "custom_meta", X description "", '
   124                      'X final FALSE, X symmetric FALSE')
   124                      'X final FALSE, X symmetric FALSE')
   150         is_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is ET, ET name ETN' % seid)]
   150         is_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is ET, ET name ETN' % seid)]
   151         self.assertEqual(is_etypes, ['Transition'])
   151         self.assertEqual(is_etypes, ['Transition'])
   152         instanceof_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is_instance_of ET, ET name ETN' % seid)]
   152         instanceof_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is_instance_of ET, ET name ETN' % seid)]
   153         self.assertEqual(sorted(instanceof_etypes), ['BaseTransition', 'Transition'])
   153         self.assertEqual(sorted(instanceof_etypes), ['BaseTransition', 'Transition'])
   154         snames = [name for name, in self.execute('Any N WHERE S is BaseTransition, S name N')]
   154         snames = [name for name, in self.execute('Any N WHERE S is BaseTransition, S name N')]
   155         self.assertFalse('subdiv' in snames)
   155         self.assertNotIn('subdiv', snames)
   156         snames = [name for name, in self.execute('Any N WHERE S is_instance_of BaseTransition, S name N')]
   156         snames = [name for name, in self.execute('Any N WHERE S is_instance_of BaseTransition, S name N')]
   157         self.assertIn('subdiv', snames)
   157         self.assertIn('subdiv', snames)
   158 
   158 
   159 
   159 
   160     def test_perms_synchronization_1(self):
   160     def test_perms_synchronization_1(self):