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 """ |