# HG changeset patch # User Sylvain Thénault # Date 1326805496 -3600 # Node ID 41ec579e27c4024374cefb8b4114804a4de30d31 # Parent 20809488fe566c18f98df24553472acffe387a99 [test] test/demonstrate relation permissions overriding diff -r 20809488fe56 -r 41ec579e27c4 test/data_schemareader/schema.py --- /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',)} + + diff -r 20809488fe56 -r 41ec579e27c4 test/unittest_schema.py --- 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):