hooks/test/unittest_syncschema.py
changeset 9402 2c48c091b6a2
parent 9028 c88261b641a9
parent 9299 c5eed908117d
child 9463 d62e13eba033
equal deleted inserted replaced
9127:aff75b69db92 9402:2c48c091b6a2
    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 
    71         self.assertFalse(schema.has_entity('concerne2'))
    71         self.assertFalse(schema.has_entity('concerne2'))
    72         # have to commit before adding definition relations
    72         # have to commit before adding definition relations
    73         self.commit()
    73         self.commit()
    74         self.assertTrue(schema.has_entity('Societe2'))
    74         self.assertTrue(schema.has_entity('Societe2'))
    75         self.assertTrue(schema.has_relation('concerne2'))
    75         self.assertTrue(schema.has_relation('concerne2'))
    76         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval "noname", '
    76         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval %(default)s, '
    77                                '   X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
    77                                '   X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
    78                                'WHERE RT name "name", E name "Societe2", F name "String"')[0][0]
    78                                'WHERE RT name "name", E name "Societe2", F name "String"',
       
    79                                {'default': Binary.zpickle('noname')})[0][0]
    79         self._set_attr_perms(attreid)
    80         self._set_attr_perms(attreid)
    80         concerne2_rdef_eid = self.execute(
    81         concerne2_rdef_eid = self.execute(
    81             '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 '
    82             'WHERE RT name "concerne2", E name "Societe2"')[0][0]
    83             'WHERE RT name "concerne2", E name "Societe2"')[0][0]
    83         self._set_perms(concerne2_rdef_eid)
    84         self._set_perms(concerne2_rdef_eid)
   287                      'RT name "surname", E name "CWUser"')
   288                      'RT name "surname", E name "CWUser"')
   288         self.commit()
   289         self.commit()
   289 
   290 
   290 
   291 
   291     def test_add_attribute_to_base_class(self):
   292     def test_add_attribute_to_base_class(self):
   292         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 '
   293         attreid = self.execute('INSERT CWAttribute X: X cardinality "11", X defaultval %(default)s, '
   293                                'WHERE RT name "messageid", E name "BaseTransition", F name "String"')[0][0]
   294                                'X indexed TRUE, X relation_type RT, X from_entity E, X to_entity F '
       
   295                                'WHERE RT name "messageid", E name "BaseTransition", F name "String"',
       
   296                                {'default': Binary.zpickle('noname')})[0][0]
   294         assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"',
   297         assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"',
   295                      {'x': attreid})
   298                      {'x': attreid})
   296         self.commit()
   299         self.commit()
   297         self.schema.rebuild_infered_relations()
   300         self.schema.rebuild_infered_relations()
   298         self.assertTrue('Transition' in self.schema['messageid'].subjects())
   301         self.assertTrue('Transition' in self.schema['messageid'].subjects())