cubicweb/test/unittest_req.py
changeset 11799 1bdfe9d4ab83
parent 11794 d8830e2bd2e0
child 11870 3a84a79c4ed5
equal deleted inserted replaced
11798:55f678f128ef 11799:1bdfe9d4ab83
    43         self.assertEqual(req.build_url('one'), u'http://testing.fr/cubicweb/one')
    43         self.assertEqual(req.build_url('one'), u'http://testing.fr/cubicweb/one')
    44         self.assertEqual(req.build_url(param='ok'), u'http://testing.fr/cubicweb/view?param=ok')
    44         self.assertEqual(req.build_url(param='ok'), u'http://testing.fr/cubicweb/view?param=ok')
    45         self.assertRaises(AssertionError, req.build_url, 'one', 'two not allowed')
    45         self.assertRaises(AssertionError, req.build_url, 'one', 'two not allowed')
    46         self.assertRaises(AssertionError, req.build_url, 'view', test=None)
    46         self.assertRaises(AssertionError, req.build_url, 'view', test=None)
    47 
    47 
    48     def test_build_url_language_from_url(self):
       
    49         # need req.vreg.config to exist because lang is read in it at set_language() call
       
    50         vreg = MockVReg()
       
    51         vreg.config.global_set_option('language-mode', 'url-prefix')
       
    52         req = RequestSessionBase(vreg)
       
    53         req.base_url = lambda secure=None: 'http://testing.fr/cubicweb/'
       
    54         self.assertIsNone(req.lang)  # language unset yet.
       
    55         self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/view')
       
    56         self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/foo')
       
    57         req.set_language('fr')
       
    58         self.assertEqual(req.lang, 'fr')
       
    59         self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/fr/view')
       
    60         self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/fr/foo')
       
    61         req.set_language('en')
       
    62         self.assertEqual(req.lang, 'en')
       
    63         self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/en/view')
       
    64         self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/en/foo')
       
    65         # no language prefix in URL
       
    66         vreg.config.global_set_option('language-mode', '')
       
    67         self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/view')
       
    68         self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/foo')
       
    69         req.set_language('fr')
       
    70         self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/view')
       
    71         self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/foo')
       
    72 
       
    73     def test_ensure_no_rql(self):
    48     def test_ensure_no_rql(self):
    74         req = RequestSessionBase(None)
    49         req = RequestSessionBase(None)
    75         self.assertEqual(req.ensure_ro_rql('Any X WHERE X is CWUser'), None)
    50         self.assertEqual(req.ensure_ro_rql('Any X WHERE X is CWUser'), None)
    76         self.assertEqual(req.ensure_ro_rql('  Any X WHERE X is CWUser  '), None)
    51         self.assertEqual(req.ensure_ro_rql('  Any X WHERE X is CWUser  '), None)
    77         self.assertRaises(Unauthorized, req.ensure_ro_rql, 'SET X login "toto" WHERE X is CWUser')
    52         self.assertRaises(Unauthorized, req.ensure_ro_rql, 'SET X login "toto" WHERE X is CWUser')
    78         self.assertRaises(Unauthorized, req.ensure_ro_rql, '   SET X login "toto" WHERE X is CWUser   ')
    53         self.assertRaises(Unauthorized, req.ensure_ro_rql, '   SET X login "toto" WHERE X is CWUser   ')
    79 
       
    80 
       
    81 class MockVReg(object):
       
    82     """Fake VReg with just a basic config in it.
       
    83     """
       
    84     def __init__(self):
       
    85         self.config = ApptestConfiguration('data', __file__)
       
    86 
    54 
    87 
    55 
    88 class RequestCWTC(CubicWebTC):
    56 class RequestCWTC(CubicWebTC):
    89 
    57 
    90     def test_base_url(self):
    58     def test_base_url(self):