hooks/test/unittest_syncschema.py
changeset 9299 c5eed908117d
parent 8947 3bbd416b09ec
child 9402 2c48c091b6a2
equal deleted inserted replaced
9296:8a4175557426 9299:c5eed908117d
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    18 """cubicweb.server.hooks.syncschema unit and functional tests"""
    18 """cubicweb.server.hooks.syncschema unit and functional tests"""
    19 
    19 
    20 from logilab.common.testlib import TestCase, unittest_main
    20 from logilab.common.testlib import TestCase, unittest_main
    21 
    21 
    22 from cubicweb import ValidationError
    22 from cubicweb import ValidationError, Binary
    23 from cubicweb.schema import META_RTYPES
    23 from cubicweb.schema import META_RTYPES
    24 from cubicweb.devtools.testlib import CubicWebTC
    24 from cubicweb.devtools.testlib import CubicWebTC
    25 from cubicweb.server.sqlutils import SQL_PREFIX
    25 from cubicweb.server.sqlutils import SQL_PREFIX
    26 from cubicweb.devtools.repotest import schema_eids_idx, restore_schema_eids_idx
    26 from cubicweb.devtools.repotest import schema_eids_idx, restore_schema_eids_idx
    27 
    27 
    72         self.assertFalse(schema.has_entity('concerne2'))
    72         self.assertFalse(schema.has_entity('concerne2'))
    73         # have to commit before adding definition relations
    73         # have to commit before adding definition relations
    74         self.commit()
    74         self.commit()
    75         self.assertTrue(schema.has_entity('Societe2'))
    75         self.assertTrue(schema.has_entity('Societe2'))
    76         self.assertTrue(schema.has_relation('concerne2'))
    76         self.assertTrue(schema.has_relation('concerne2'))
    77         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval "noname", '
    77         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval %(default)s, '
    78                                '   X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
    78                                '   X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
    79                                'WHERE RT name "name", E name "Societe2", F name "String"')[0][0]
    79                                'WHERE RT name "name", E name "Societe2", F name "String"',
       
    80                                {'default': Binary.zpickle('noname')})[0][0]
    80         self._set_attr_perms(attreid)
    81         self._set_attr_perms(attreid)
    81         concerne2_rdef_eid = self.execute(
    82         concerne2_rdef_eid = self.execute(
    82             'INSERT CWRelation X: X cardinality "**", X relation_type RT, X from_entity E, X to_entity E '
    83             '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]
    84             'WHERE RT name "concerne2", E name "Societe2"')[0][0]
    84         self._set_perms(concerne2_rdef_eid)
    85         self._set_perms(concerne2_rdef_eid)
   288                      'RT name "surname", E name "CWUser"')
   289                      'RT name "surname", E name "CWUser"')
   289         self.commit()
   290         self.commit()
   290 
   291 
   291 
   292 
   292     def test_add_attribute_to_base_class(self):
   293     def test_add_attribute_to_base_class(self):
   293         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval "noname", X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
   294         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval %(default)s, '
   294                                'WHERE RT name "messageid", E name "BaseTransition", F name "String"')[0][0]
   295                                'X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
       
   296                                'WHERE RT name "messageid", E name "BaseTransition", F name "String"',
       
   297                                {'default': Binary.zpickle('noname')})[0][0]
   295         assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"',
   298         assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"',
   296                      {'x': attreid})
   299                      {'x': attreid})
   297         self.commit()
   300         self.commit()
   298         self.schema.rebuild_infered_relations()
   301         self.schema.rebuild_infered_relations()
   299         self.assertTrue('Transition' in self.schema['messageid'].subjects())
   302         self.assertTrue('Transition' in self.schema['messageid'].subjects())