--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/data_schemareader/schema.py Tue Jan 17 14:04:56 2012 +0100
@@ -0,0 +1,11 @@
+from cubicweb.schemas.base import in_group, CWSourceSchemaConfig
+# copy __permissions__ to avoid modifying a shared dictionary
+in_group.__permissions__ = in_group.__permissions__.copy()
+in_group.__permissions__['read'] = ('managers',)
+
+cw_for_source = CWSourceSchemaConfig.get_relation('cw_for_source')
+cw_for_source.__permissions__ = {'read': ('managers', 'users'),
+ 'add': ('managers',),
+ 'delete': ('managers',)}
+
+
--- a/test/unittest_schema.py Tue Jan 17 11:49:23 2012 +0100
+++ b/test/unittest_schema.py Tue Jan 17 14:04:56 2012 +0100
@@ -265,6 +265,20 @@
schema = CubicWebSchema('Test Schema')
schema.add_entity_type(EntityType('NaN'))
+ def test_relation_perm_overriding(self):
+ loader = CubicWebSchemaLoader()
+ config = TestConfiguration('data', apphome=join(dirname(__file__), 'data_schemareader'))
+ config.bootstrap_cubes()
+ schema = loader.load(config)
+ self.assertEqual(schema['in_group'].rdefs.values()[0].permissions,
+ {'read': ('managers',),
+ 'add': ('managers',),
+ 'delete': ('managers',)})
+ self.assertEqual(schema['cw_for_source'].rdefs.values()[0].permissions,
+ {'read': ('managers', 'users'),
+ 'add': ('managers',),
+ 'delete': ('managers',)})
+
class BadSchemaTC(TestCase):
def setUp(self):