author | Denis Laxalde <denis.laxalde@logilab.fr> |
Tue, 25 Jun 2019 14:42:06 +0200 | |
branch | 3.26 |
changeset 12667 | ac79dfde9cb1 |
parent 11913 | 4516c3956d46 |
child 12567 | 26744ad37953 |
permissions | -rw-r--r-- |
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
1 |
"""misc. unittests for utility functions |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2 |
""" |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3 |
|
11798
55f678f128ef
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11797
diff
changeset
|
4 |
import unittest |
55f678f128ef
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11797
diff
changeset
|
5 |
from functools import partial |
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
6 |
|
11799
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
7 |
from six import text_type |
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
8 |
|
11825
52acf0dbf4cd
[web] Simplify a bit language handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11799
diff
changeset
|
9 |
from cubicweb.devtools.fake import FakeConfig, FakeCWRegistryStore |
8309
48ef505aa9f9
[request] gather all base_url logic in a single place (closes #2200756)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
7164
diff
changeset
|
10 |
|
48ef505aa9f9
[request] gather all base_url logic in a single place (closes #2200756)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
7164
diff
changeset
|
11 |
from cubicweb.web.request import (CubicWebRequestBase, _parse_accept_header, |
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
12 |
_mimetype_sort_key, _mimetype_parser, _charset_sort_key) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
13 |
|
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
14 |
|
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
15 |
|
11798
55f678f128ef
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11797
diff
changeset
|
16 |
class AcceptParserTC(unittest.TestCase): |
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
17 |
|
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
18 |
def test_parse_accept(self): |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
19 |
parse_accept_header = partial(_parse_accept_header, |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
20 |
value_parser=_mimetype_parser, |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
21 |
value_sort_key=_mimetype_sort_key) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
22 |
# compare scores |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
23 |
self.assertEqual(parse_accept_header("audio/*;q=0.2, audio/basic"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
24 |
[( ('audio/basic', ('audio', 'basic', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
25 |
( ('audio/*', ('audio', '*', {}), 0.2 ) )]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
26 |
self.assertEqual(parse_accept_header("text/plain;q=0.5, text/html, text/x-dvi;q=0.8, text/x-c"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
27 |
[( ('text/html', ('text', 'html', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
28 |
( ('text/x-c', ('text', 'x-c', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
29 |
( ('text/x-dvi', ('text', 'x-dvi', {}), 0.8 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
30 |
( ('text/plain', ('text', 'plain', {}), 0.5 ) )]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
31 |
# compare mimetype precedence for a same given score |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
32 |
self.assertEqual(parse_accept_header("audio/*, audio/basic"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
33 |
[( ('audio/basic', ('audio', 'basic', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
34 |
( ('audio/*', ('audio', '*', {}), 1.0 ) )]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
35 |
self.assertEqual(parse_accept_header("text/*, text/html, text/html;level=1, */*"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
36 |
[( ('text/html', ('text', 'html', {'level': '1'}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
37 |
( ('text/html', ('text', 'html', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
38 |
( ('text/*', ('text', '*', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
39 |
( ('*/*', ('*', '*', {}), 1.0 ) )]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
40 |
# free party |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
41 |
self.assertEqual(parse_accept_header("text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
42 |
[( ('text/html', ('text', 'html', {'level': '1'}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
43 |
( ('text/html', ('text', 'html', {}), 0.7 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
44 |
( ('*/*', ('*', '*', {}), 0.5 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
45 |
( ('text/html', ('text', 'html', {'level': '2'}), 0.4 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
46 |
( ('text/*', ('text', '*', {}), 0.3 ) ) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
47 |
]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
48 |
# chrome sample header |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
49 |
self.assertEqual(parse_accept_header("application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
50 |
[( ('application/xhtml+xml', ('application', 'xhtml+xml', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
51 |
( ('application/xml', ('application', 'xml', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
52 |
( ('image/png', ('image', 'png', {}), 1.0 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
53 |
( ('text/html', ('text', 'html', {}), 0.9 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
54 |
( ('text/plain', ('text', 'plain', {}), 0.8 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
55 |
( ('*/*', ('*', '*', {}), 0.5 ) ), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
56 |
]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
57 |
|
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
58 |
def test_parse_accept_language(self): |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
59 |
self.assertEqual(_parse_accept_header('fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3'), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
60 |
[('fr', 'fr', 1.0), ('fr-fr', 'fr-fr', 0.8), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
61 |
('en-us', 'en-us', 0.5), ('en', 'en', 0.3)]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
62 |
|
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
63 |
def test_parse_accept_charset(self): |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
64 |
parse_accept_header = partial(_parse_accept_header, |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
65 |
value_sort_key=_charset_sort_key) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
66 |
self.assertEqual(parse_accept_header('ISO-8859-1,utf-8;q=0.7,*;q=0.7'), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
67 |
[('ISO-8859-1', 'ISO-8859-1', 1.0), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
68 |
('utf-8', 'utf-8', 0.7), |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
69 |
('*', '*', 0.7)]) |
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
70 |
|
11797
6c036ac4c1c2
[test] Distinguish "request" tests from accept parser ones in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11794
diff
changeset
|
71 |
|
11798
55f678f128ef
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11797
diff
changeset
|
72 |
class WebRequestTC(unittest.TestCase): |
11797
6c036ac4c1c2
[test] Distinguish "request" tests from accept parser ones in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11794
diff
changeset
|
73 |
|
11794
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
74 |
def test_negotiated_language(self): |
11825
52acf0dbf4cd
[web] Simplify a bit language handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11799
diff
changeset
|
75 |
vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
11794
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
76 |
vreg.config.translations = {'fr': (None, None), 'en': (None, None)} |
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
77 |
headers = { |
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
78 |
'Accept-Language': 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3', |
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
79 |
} |
11913
4516c3956d46
Drop support for https-url in all-in-one.conf
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11825
diff
changeset
|
80 |
req = CubicWebRequestBase(vreg, headers=headers) |
11794
d8830e2bd2e0
[req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
81 |
self.assertEqual(req.negotiated_language(), 'fr') |
8309
48ef505aa9f9
[request] gather all base_url logic in a single place (closes #2200756)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
7164
diff
changeset
|
82 |
|
11799
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
83 |
def test_build_url_language_from_url(self): |
11825
52acf0dbf4cd
[web] Simplify a bit language handling
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11799
diff
changeset
|
84 |
vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
11799
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
85 |
vreg.config['base-url'] = 'http://testing.fr/cubicweb/' |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
86 |
vreg.config['language-mode'] = 'url-prefix' |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
87 |
vreg.config.translations['fr'] = text_type, text_type |
11913
4516c3956d46
Drop support for https-url in all-in-one.conf
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
11825
diff
changeset
|
88 |
req = CubicWebRequestBase(vreg) |
11799
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
89 |
# Override from_controller to avoid getting into relative_path method, |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
90 |
# which is not implemented in CubicWebRequestBase. |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
91 |
req.from_controller = lambda : 'not view' |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
92 |
self.assertEqual(req.lang, 'en') # site's default language |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
93 |
self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/en/view') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
94 |
self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/en/foo') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
95 |
req.set_language('fr') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
96 |
self.assertEqual(req.lang, 'fr') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
97 |
self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/fr/view') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
98 |
self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/fr/foo') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
99 |
# no language prefix in URL |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
100 |
vreg.config['language-mode'] = '' |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
101 |
self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/view') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
102 |
self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/foo') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
103 |
req.set_language('fr') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
104 |
self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/view') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
105 |
self.assertEqual(req.build_url('foo'), 'http://testing.fr/cubicweb/foo') |
1bdfe9d4ab83
[req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11798
diff
changeset
|
106 |
|
8309
48ef505aa9f9
[request] gather all base_url logic in a single place (closes #2200756)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
7164
diff
changeset
|
107 |
|
7164
93a19c1831aa
[http] implement 1587305: provide better implementation of Accept header parsing + tests
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
108 |
if __name__ == '__main__': |
11798
55f678f128ef
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11797
diff
changeset
|
109 |
unittest.main() |