server/test/unittest_security.py
changeset 8075 f57ffbfe90fe
parent 7791 31bb51ea5485
child 8161 6f4229eb8178
child 8452 1ad42383a9ec
equal deleted inserted replaced
8074:a7f76e322659 8075:f57ffbfe90fe
   567         cnx = self.login('anon')
   567         cnx = self.login('anon')
   568         cu = cnx.cursor()
   568         cu = cnx.cursor()
   569         names = [t for t, in cu.execute('Any N ORDERBY lower(N) WHERE X name N')]
   569         names = [t for t, in cu.execute('Any N ORDERBY lower(N) WHERE X name N')]
   570         self.assertEqual(names, sorted(names, key=lambda x: x.lower()))
   570         self.assertEqual(names, sorted(names, key=lambda x: x.lower()))
   571         cnx.close()
   571         cnx.close()
       
   572 
       
   573     def test_restrict_is_instance_ok(self):
       
   574         from rql import RQLException
       
   575         rset = self.execute('Any X WHERE X is_instance_of BaseTransition')
       
   576         rqlst = rset.syntax_tree()
       
   577         select = rqlst.children[0]
       
   578         x = select.get_selected_variables().next()
       
   579         self.assertRaises(RQLException, select.add_type_restriction,
       
   580                           x.variable, 'CWUser')
       
   581         select.add_type_restriction(x.variable, 'BaseTransition')
       
   582         select.add_type_restriction(x.variable, 'WorkflowTransition')
       
   583         self.assertEqual(rqlst.as_string(), 'Any X WHERE X is_instance_of WorkflowTransition')
       
   584 
       
   585     def test_restrict_is_instance_no_supported(self):
       
   586         rset = self.execute('Any X WHERE X is_instance_of IN(CWUser, CWGroup)')
       
   587         rqlst = rset.syntax_tree()
       
   588         select = rqlst.children[0]
       
   589         x = select.get_selected_variables().next()
       
   590         self.assertRaises(NotImplementedError, select.add_type_restriction,
       
   591                           x.variable, 'WorkflowTransition')
   572 
   592 
   573     def test_in_state_without_update_perm(self):
   593     def test_in_state_without_update_perm(self):
   574         """check a user change in_state without having update permission on the
   594         """check a user change in_state without having update permission on the
   575         subject
   595         subject
   576         """
   596         """