web/test/unittest_urlpublisher.py
changeset 7017 cd2ea273007a
parent 6415 b0b0f097a72d
child 7244 a918f76441ce
equal deleted inserted replaced
7016:6665fa16aa45 7017:cd2ea273007a
    54         self.assertIsInstance(self.process('123')[1], ResultSet)
    54         self.assertIsInstance(self.process('123')[1], ResultSet)
    55         self.assertEqual(len(self.process('123')[1]), 1)
    55         self.assertEqual(len(self.process('123')[1]), 1)
    56         self.assertRaises(NotFound, self.process, '123/345')
    56         self.assertRaises(NotFound, self.process, '123/345')
    57         self.assertRaises(NotFound, self.process, 'not_eid')
    57         self.assertRaises(NotFound, self.process, 'not_eid')
    58 
    58 
    59     def test_rest_path(self):
    59     def test_rest_path_etype(self):
    60         """tests the rest path resolution"""
    60         """tests the rest path resolution"""
    61         ctrl, rset = self.process('CWUser')
    61         ctrl, rset = self.process('CWEType')
    62         self.assertEqual(ctrl, 'view')
    62         self.assertEqual(ctrl, 'view')
    63         self.assertEqual(rset.description[0][0], 'CWUser')
    63         self.assertEqual(rset.description[0][0], 'CWEType')
    64         self.assertEqual(rset.printable_rql(),
    64         self.assertEqual(rset.printable_rql(),
    65                           "Any X,AA,AB,AC,AD ORDERBY AA WHERE X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD")
    65                           "Any X,AA,AB ORDERBY AA WHERE X is CWEType, X name AA, X modification_date AB")
       
    66 
       
    67     def test_rest_path_by_attr(self):
    66         ctrl, rset = self.process('CWUser/login/admin')
    68         ctrl, rset = self.process('CWUser/login/admin')
    67         self.assertEqual(ctrl, 'view')
    69         self.assertEqual(ctrl, 'view')
    68         self.assertEqual(len(rset), 1)
    70         self.assertEqual(len(rset), 1)
    69         self.assertEqual(rset.description[0][0], 'CWUser')
    71         self.assertEqual(rset.description[0][0], 'CWUser')
    70         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    72         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
       
    73 
       
    74     def test_rest_path_unique_attr(self):
    71         ctrl, rset = self.process('cwuser/admin')
    75         ctrl, rset = self.process('cwuser/admin')
    72         self.assertEqual(ctrl, 'view')
    76         self.assertEqual(ctrl, 'view')
    73         self.assertEqual(len(rset), 1)
    77         self.assertEqual(len(rset), 1)
    74         self.assertEqual(rset.description[0][0], 'CWUser')
    78         self.assertEqual(rset.description[0][0], 'CWUser')
    75         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    79         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X login "admin", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    76         ctrl, rset = self.process('cwuser/eid/%s'%rset[0][0])
    80 
       
    81     def test_rest_path_eid(self):
       
    82         ctrl, rset = self.process('cwuser/eid/%s' % self.user().eid)
    77         self.assertEqual(ctrl, 'view')
    83         self.assertEqual(ctrl, 'view')
    78         self.assertEqual(len(rset), 1)
    84         self.assertEqual(len(rset), 1)
    79         self.assertEqual(rset.description[0][0], 'CWUser')
    85         self.assertEqual(rset.description[0][0], 'CWUser')
    80         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid %s, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD' % rset[0][0])
    86         self.assertEqual(rset.printable_rql(), 'Any X,AA,AB,AC,AD WHERE X eid %s, X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD' % rset[0][0])
    81         # test non-ascii paths
    87 
       
    88     def test_rest_path_non_ascii_paths(self):
    82         ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe')
    89         ctrl, rset = self.process('CWUser/login/%C3%BFsa%C3%BFe')
    83         self.assertEqual(ctrl, 'view')
    90         self.assertEqual(ctrl, 'view')
    84         self.assertEqual(len(rset), 1)
    91         self.assertEqual(len(rset), 1)
    85         self.assertEqual(rset.description[0][0], 'CWUser')
    92         self.assertEqual(rset.description[0][0], 'CWUser')
    86         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC,AD WHERE X login "\xffsa\xffe", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    93         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC,AD WHERE X login "\xffsa\xffe", X is CWUser, X login AA, X firstname AB, X surname AC, X modification_date AD')
    87         # test quoted paths
    94 
       
    95     def test_rest_path_quoted_paths(self):
    88         ctrl, rset = self.process('BlogEntry/title/hell%27o')
    96         ctrl, rset = self.process('BlogEntry/title/hell%27o')
    89         self.assertEqual(ctrl, 'view')
    97         self.assertEqual(ctrl, 'view')
    90         self.assertEqual(len(rset), 1)
    98         self.assertEqual(len(rset), 1)
    91         self.assertEqual(rset.description[0][0], 'BlogEntry')
    99         self.assertEqual(rset.description[0][0], 'BlogEntry')
    92         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC WHERE X title "hell\'o", X is BlogEntry, X creation_date AA, X title AB, X modification_date AC')
   100         self.assertEqual(rset.printable_rql(), u'Any X,AA,AB,AC WHERE X title "hell\'o", X is BlogEntry, X creation_date AA, X title AB, X modification_date AC')
    93         # errors
   101 
       
   102     def test_rest_path_errors(self):
    94         self.assertRaises(NotFound, self.process, 'CWUser/eid/30000')
   103         self.assertRaises(NotFound, self.process, 'CWUser/eid/30000')
    95         self.assertRaises(NotFound, self.process, 'Workcases')
   104         self.assertRaises(NotFound, self.process, 'Workcases')
    96         self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe')
   105         self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe')
    97 
   106 
    98     def test_action_path(self):
   107     def test_action_path(self):