test/unittest_schema.py
branchstable
changeset 5179 f08943f22334
parent 4611 599189430c0e
child 5421 8167de96c523
equal deleted inserted replaced
5178:42285e33b01c 5179:f08943f22334
   239     def test_fulltext_container(self):
   239     def test_fulltext_container(self):
   240         schema = loader.load(config)
   240         schema = loader.load(config)
   241         self.failUnless('has_text' in schema['CWUser'].subject_relations())
   241         self.failUnless('has_text' in schema['CWUser'].subject_relations())
   242         self.failIf('has_text' in schema['EmailAddress'].subject_relations())
   242         self.failIf('has_text' in schema['EmailAddress'].subject_relations())
   243 
   243 
       
   244     def test_permission_settings(self):
       
   245         schema = loader.load(config)
       
   246         aschema = schema['TrInfo'].rdef('comment')
       
   247         self.assertEquals(aschema.get_groups('read'),
       
   248                           set(('managers', 'users', 'guests')))
       
   249         self.assertEquals(aschema.get_rqlexprs('read'),
       
   250                           ())
       
   251         self.assertEquals(aschema.get_groups('update'),
       
   252                           set(('managers',)))
       
   253         self.assertEquals([x.expression for x in aschema.get_rqlexprs('update')],
       
   254                           ['U has_update_permission X'])
   244 
   255 
   245 class BadSchemaRQLExprTC(TestCase):
   256 class BadSchemaRQLExprTC(TestCase):
   246     def setUp(self):
   257     def setUp(self):
   247         self.loader = CubicWebSchemaLoader()
   258         self.loader = CubicWebSchemaLoader()
   248         self.loader.defined = {}
   259         self.loader.defined = {}
   255         ex = self.assertRaises(BadSchemaDefinition,
   266         ex = self.assertRaises(BadSchemaDefinition,
   256                                self.loader._build_schema, 'toto', False)
   267                                self.loader._build_schema, 'toto', False)
   257         self.assertEquals(str(ex), msg)
   268         self.assertEquals(str(ex), msg)
   258 
   269 
   259     def test_rrqlexpr_on_etype(self):
   270     def test_rrqlexpr_on_etype(self):
   260         self._test('rrqlexpr_on_eetype.py', "can't use RRQLExpression on ToTo, use an ERQLExpression")
   271         self._test('rrqlexpr_on_eetype.py',
       
   272                    "can't use RRQLExpression on ToTo, use an ERQLExpression")
   261 
   273 
   262     def test_erqlexpr_on_rtype(self):
   274     def test_erqlexpr_on_rtype(self):
   263         self._test('erqlexpr_on_ertype.py', "can't use ERQLExpression on relation ToTo toto TuTu, use a RRQLExpression")
   275         self._test('erqlexpr_on_ertype.py',
       
   276                    "can't use ERQLExpression on relation ToTo toto TuTu, use a RRQLExpression")
   264 
   277 
   265     def test_rqlexpr_on_rtype_read(self):
   278     def test_rqlexpr_on_rtype_read(self):
   266         self._test('rqlexpr_on_ertype_read.py', "can't use rql expression for read permission of relation ToTo toto TuTu")
   279         self._test('rqlexpr_on_ertype_read.py',
       
   280                    "can't use rql expression for read permission of relation ToTo toto TuTu")
   267 
   281 
   268     def test_rrqlexpr_on_attr(self):
   282     def test_rrqlexpr_on_attr(self):
   269         self._test('rrqlexpr_on_attr.py', "can't use RRQLExpression on attribute ToTo.attr[String], use an ERQLExpression")
   283         self._test('rrqlexpr_on_attr.py',
       
   284                    "can't use RRQLExpression on attribute ToTo.attr[String], use an ERQLExpression")
   270 
   285 
   271 
   286 
   272 class NormalizeExpressionTC(TestCase):
   287 class NormalizeExpressionTC(TestCase):
   273 
   288 
   274     def test(self):
   289     def test(self):
   275         self.assertEquals(normalize_expression('X  bla Y,Y blur Z  ,  Z zigoulou   X '),
   290         self.assertEquals(normalize_expression('X  bla Y,Y blur Z  ,  Z zigoulou   X '),
   276                                                'X bla Y, Y blur Z, Z zigoulou X')
   291                                                'X bla Y, Y blur Z, Z zigoulou X')
   277 
   292 
   278 class RQLExpressionTC(TestCase):
   293 class RQLExpressionTC(TestCase):
   279     def test_comparison(self):
   294     def test_comparison(self):
   280         self.assertEquals(ERQLExpression('X is CWUser', 'X', 0), ERQLExpression('X is CWUser', 'X', 0))
   295         self.assertEquals(ERQLExpression('X is CWUser', 'X', 0),
   281         self.assertNotEquals(ERQLExpression('X is CWUser', 'X', 0), ERQLExpression('X is CWGroup', 'X', 0))
   296                           ERQLExpression('X is CWUser', 'X', 0))
       
   297         self.assertNotEquals(ERQLExpression('X is CWUser', 'X', 0),
       
   298                              ERQLExpression('X is CWGroup', 'X', 0))
   282 
   299 
   283 class GuessRrqlExprMainVarsTC(TestCase):
   300 class GuessRrqlExprMainVarsTC(TestCase):
   284     def test_exists(self):
   301     def test_exists(self):
   285         mainvars = guess_rrqlexpr_mainvars(normalize_expression('NOT EXISTS(O team_competition C, C level < 3)'))
   302         mainvars = guess_rrqlexpr_mainvars(normalize_expression('NOT EXISTS(O team_competition C, C level < 3)'))
   286         self.assertEquals(mainvars, 'O')
   303         self.assertEquals(mainvars, 'O')