--- a/hooks/test/unittest_syncschema.py Tue Jan 29 16:57:44 2013 +0100
+++ b/hooks/test/unittest_syncschema.py Mon Mar 11 14:46:09 2013 +0100
@@ -20,10 +20,12 @@
from logilab.common.testlib import TestCase, unittest_main
from cubicweb import ValidationError
+from cubicweb.schema import META_RTYPES
from cubicweb.devtools.testlib import CubicWebTC
from cubicweb.server.sqlutils import SQL_PREFIX
from cubicweb.devtools.repotest import schema_eids_idx, restore_schema_eids_idx
+
def tearDownModule(*args):
del SchemaModificationHooksTC.schema_eids
@@ -116,6 +118,33 @@
self.assertFalse(schema.has_entity('concerne2'))
self.assertFalse('concerne2' in schema['CWUser'].subject_relations())
+ def test_metartype_with_nordefs(self):
+ META_RTYPES.add('custom_meta')
+ self.execute('INSERT CWRType X: X name "custom_meta", X description "", '
+ 'X final FALSE, X symmetric FALSE')
+ self.commit()
+ eeid = self.execute('INSERT CWEType X: X name "NEWEtype", '
+ 'X description "", X final FALSE')[0][0]
+ self._set_perms(eeid)
+ self.commit()
+ META_RTYPES.remove('custom_meta')
+
+ def test_metartype_with_somerdefs(self):
+ META_RTYPES.add('custom_meta')
+ self.execute('INSERT CWRType X: X name "custom_meta", X description "", '
+ 'X final FALSE, X symmetric FALSE')
+ self.commit()
+ rdefeid = self.execute('INSERT CWRelation X: X cardinality "**", X relation_type RT, '
+ ' X from_entity E, X to_entity E '
+ 'WHERE RT name "custom_meta", E name "CWUser"')[0][0]
+ self._set_perms(rdefeid)
+ self.commit()
+ eeid = self.execute('INSERT CWEType X: X name "NEWEtype", '
+ 'X description "", X final FALSE')[0][0]
+ self._set_perms(eeid)
+ self.commit()
+ META_RTYPES.remove('custom_meta')
+
def test_is_instance_of_insertions(self):
seid = self.execute('INSERT Transition T: T name "subdiv"')[0][0]
is_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is ET, ET name ETN' % seid)]