test/unittest_schema.py
changeset 10193 a0a11be5a9cb
parent 10192 365e5a0287d6
child 10252 3b89cfd010a6
--- a/test/unittest_schema.py	Mon Feb 02 23:17:15 2015 +0100
+++ b/test/unittest_schema.py	Wed Feb 04 21:55:37 2015 +0100
@@ -298,10 +298,14 @@
             total_salary = Int(formula='Any SUM(SA) GROUPBY X WHERE '
                                        'P works_for X, P salary SA')
         good_schema = build_schema_from_namespace(vars().items())
-
+        rdef = good_schema['Company'].rdef('total_salary')
         # ensure 'X is Company' is added to the rqlst to avoid ambiguities, see #4901163
-        self.assertEqual(str(good_schema['Company'].rdef('total_salary').formula_select),
+        self.assertEqual(str(rdef.formula_select),
                          'Any SUM(SA) GROUPBY X WHERE P works_for X, P salary SA, X is Company')
+        # check relation definition permissions
+        self.assertEqual(rdef.permissions,
+                         {'add': (), 'update': (),
+                          'read': ('managers', 'users', 'guests')})
 
         class Company(EntityType):
             total_salary = String(formula='Any SUM(SA) GROUPBY X WHERE '
@@ -358,11 +362,15 @@
                          schema['produces_and_buys2'].rdefs.keys())
         self.assertEqual([('Company', 'Service'), ('Person', 'Service')],
                          schema['reproduce'].rdefs.keys())
-        # check relations as marked infered
-        self.assertTrue(
-            schema['produces_and_buys'].rdefs[('Person','Service')].infered)
+        # check relation definitions are marked infered
+        rdef = schema['produces_and_buys'].rdefs[('Person','Service')]
+        self.assertTrue(rdef.infered)
+        # and have no add/delete permissions
+        self.assertEqual(rdef.permissions,
+                         {'add': (),
+                          'delete': (),
+                          'read': ('managers', 'users', 'guests')})
 
-        del schema
         class autoname(ComputedRelation):
             rule = 'S produce X, X name O'