author | Julien Cristau <julien.cristau@logilab.fr> |
Mon, 19 Oct 2015 14:28:30 +0200 | |
changeset 10816 | d4a26e94f54a |
parent 10411 | 4ee15441f2eb |
child 11015 | baf463175505 |
permissions | -rw-r--r-- |
9849
b18ef631e72c
[webtests/web] use the new connection api
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
1 |
# copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
2 |
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
3 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
4 |
# This file is part of CubicWeb. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
5 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
6 |
# CubicWeb is free software: you can redistribute it and/or modify it under the |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
7 |
# terms of the GNU Lesser General Public License as published by the Free |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
8 |
# Software Foundation, either version 2.1 of the License, or (at your option) |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
9 |
# any later version. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
10 |
# |
5424
8ecbcbff9777
replace logilab-common by CubicWeb in disclaimer
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5421
diff
changeset
|
11 |
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
13 |
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
14 |
# details. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
15 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
16 |
# You should have received a copy of the GNU Lesser General Public License along |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4212
diff
changeset
|
17 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
1977
606923dff11b
big bunch of copyright / docstring update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
1646
diff
changeset
|
18 |
|
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
19 |
from json import loads |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
20 |
from os.path import join |
9882
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
21 |
import tempfile |
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
22 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
23 |
try: |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
24 |
import requests |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
25 |
assert [int(n) for n in requests.__version__.split('.', 2)][:2] >= [1, 2] |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
26 |
except (ImportError, AssertionError): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
27 |
requests = None |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
28 |
|
1646 | 29 |
from logilab.common.testlib import TestCase, unittest_main |
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
30 |
from cubicweb.devtools.httptest import CubicWebServerTC |
2643
9976f511003b
web test update
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
1977
diff
changeset
|
31 |
from cubicweb.devtools.fake import FakeRequest |
5713
605f571198eb
[web] ajax_replace_url superseed build_ajax_replace_url, more generic and relying on the json controller (closes #750090)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5424
diff
changeset
|
32 |
|
1646 | 33 |
class AjaxReplaceUrlTC(TestCase): |
34 |
||
6595
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
35 |
def test_ajax_replace_url_1(self): |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
36 |
self._test_arurl("fname=view&rql=Person%20P&vid=list", |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
37 |
rql='Person P', vid='list') |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
38 |
|
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
39 |
def test_ajax_replace_url_2(self): |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
40 |
self._test_arurl("age=12&fname=view&name=bar&rql=Person%20P&vid=oneline", |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
41 |
rql='Person P', vid='oneline', name='bar', age=12) |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
42 |
|
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
43 |
def _test_arurl(self, qs, **kwargs): |
2643
9976f511003b
web test update
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
1977
diff
changeset
|
44 |
req = FakeRequest() |
5713
605f571198eb
[web] ajax_replace_url superseed build_ajax_replace_url, more generic and relying on the json controller (closes #750090)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5424
diff
changeset
|
45 |
arurl = req.ajax_replace_url |
1646 | 46 |
# NOTE: for the simplest use cases, we could use doctest |
6595
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
47 |
url = arurl('foo', **kwargs) |
7791
31bb51ea5485
[deprecation] fix unittest pending deprecation warnings on failIf/failUnless methods family
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7518
diff
changeset
|
48 |
self.assertTrue(url.startswith('javascript:')) |
31bb51ea5485
[deprecation] fix unittest pending deprecation warnings on failIf/failUnless methods family
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7518
diff
changeset
|
49 |
self.assertTrue(url.endswith('()')) |
6595
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
50 |
cbname = url.split()[1][:-2] |
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
51 |
self.assertMultiLineEqual( |
8728
75be9de9d68e
[web] Use the new '/ajax' URL path to access the AjaxController (closes #2758254)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
7791
diff
changeset
|
52 |
'function %s() { $("#foo").loadxhtml("http://testing.fr/cubicweb/ajax?%s",' |
10332
da1cb2b12fe1
[uilib] `uilib.js` helper now honors explicit JSString (closes #4959538)
Alain Leufroy <alain@leufroy.fr>
parents:
10003
diff
changeset
|
53 |
'{pageid: "%s"},"get","replace"); }' % |
8728
75be9de9d68e
[web] Use the new '/ajax' URL path to access the AjaxController (closes #2758254)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
7791
diff
changeset
|
54 |
(cbname, qs, req.pageid), |
6595
00cd0b273cf5
[test] fix test to follow recent changes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6340
diff
changeset
|
55 |
req.html_headers.post_inlined_scripts[0]) |
1646 | 56 |
|
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
57 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
58 |
class FileUploadTC(CubicWebServerTC): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
59 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
60 |
def setUp(self): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
61 |
"Skip whole test class if a suitable requests module is not available" |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
62 |
if requests is None: |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
63 |
self.skipTest('Python ``requests`` module is not available') |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
64 |
super(FileUploadTC, self).setUp() |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
65 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
66 |
@property |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
67 |
def _post_url(self): |
9849
b18ef631e72c
[webtests/web] use the new connection api
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
68 |
with self.admin_access.web_request() as req: |
b18ef631e72c
[webtests/web] use the new connection api
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
69 |
return req.build_url('ajax', fname='fileupload') |
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
70 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
71 |
def _fobject(self, fname): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
72 |
return open(join(self.datadir, fname), 'rb') |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
73 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
74 |
def _fcontent(self, fname): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
75 |
return self._fobject(fname).read() |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
76 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
77 |
def test_single_file_upload(self): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
78 |
files = {'file': ('schema.py', self._fobject('schema.py'))} |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
79 |
webreq = requests.post(self._post_url, files=files) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
80 |
# check backward compat : a single uploaded file leads to a single |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
81 |
# 2-uple in the request form |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
82 |
expect = {'fname': u'fileupload', |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
83 |
'file': ['schema.py', self._fcontent('schema.py')]} |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
84 |
self.assertEqual(webreq.status_code, 200) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
85 |
self.assertDictEqual(expect, loads(webreq.content)) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
86 |
|
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
87 |
def test_multiple_file_upload(self): |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
88 |
files = [('files', ('schema.py', self._fobject('schema.py'))), |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
89 |
('files', ('views.py', self._fobject('views.py')))] |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
90 |
webreq = requests.post(self._post_url, files=files,) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
91 |
expect = {'fname': u'fileupload', |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
92 |
'files': [['schema.py', self._fcontent('schema.py')], |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
93 |
['views.py', self._fcontent('views.py')]],} |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
94 |
self.assertEqual(webreq.status_code, 200) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
95 |
self.assertDictEqual(expect, loads(webreq.content)) |
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
96 |
|
9897
fa44db7da2dc
merge 3.19.3 into 3.20 branch
Julien Cristau <julien.cristau@logilab.fr>
diff
changeset
|
97 |
|
9601
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
98 |
class LanguageTC(CubicWebServerTC): |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
99 |
|
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
100 |
def test_language_neg(self): |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
101 |
headers = {'Accept-Language': 'fr'} |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
102 |
webreq = self.web_request(headers=headers) |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
103 |
self.assertIn('lang="fr"', webreq.read()) |
10003
6bcb460826cc
[web] set Vary response header to "Accept-Language" when using content negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
10001
diff
changeset
|
104 |
vary = [h.lower().strip() for h in webreq.getheader('Vary').split(',')] |
6bcb460826cc
[web] set Vary response header to "Accept-Language" when using content negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
10001
diff
changeset
|
105 |
self.assertIn('accept-language', vary) |
9601
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
106 |
headers = {'Accept-Language': 'en'} |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
107 |
webreq = self.web_request(headers=headers) |
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
108 |
self.assertIn('lang="en"', webreq.read()) |
10003
6bcb460826cc
[web] set Vary response header to "Accept-Language" when using content negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
10001
diff
changeset
|
109 |
vary = [h.lower().strip() for h in webreq.getheader('Vary').split(',')] |
6bcb460826cc
[web] set Vary response header to "Accept-Language" when using content negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
10001
diff
changeset
|
110 |
self.assertIn('accept-language', vary) |
9601
e5a80bd337e8
[web] fix language negotiation
Julien Cristau <julien.cristau@logilab.fr>
parents:
9147
diff
changeset
|
111 |
|
9730
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
112 |
def test_response_codes(self): |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
113 |
with self.admin_access.client_cnx() as cnx: |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
114 |
admin_eid = cnx.user.eid |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
115 |
# guest can't see admin |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
116 |
webreq = self.web_request('/%d' % admin_eid) |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
117 |
self.assertEqual(webreq.status, 403) |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
118 |
|
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
119 |
# but admin can |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
120 |
self.web_login() |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
121 |
webreq = self.web_request('/%d' % admin_eid) |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
122 |
self.assertEqual(webreq.status, 200) |
8347e6d613c9
[web/test] add a test for some http response codes
Julien Cristau <julien.cristau@logilab.fr>
parents:
9601
diff
changeset
|
123 |
|
10001
1245357b3b3e
[web] add support for HttpOnly cookie flag
Julien Cristau <julien.cristau@logilab.fr>
parents:
9897
diff
changeset
|
124 |
def test_session_cookie_httponly(self): |
1245357b3b3e
[web] add support for HttpOnly cookie flag
Julien Cristau <julien.cristau@logilab.fr>
parents:
9897
diff
changeset
|
125 |
webreq = self.web_request() |
1245357b3b3e
[web] add support for HttpOnly cookie flag
Julien Cristau <julien.cristau@logilab.fr>
parents:
9897
diff
changeset
|
126 |
self.assertIn('HttpOnly', webreq.getheader('set-cookie')) |
1245357b3b3e
[web] add support for HttpOnly cookie flag
Julien Cristau <julien.cristau@logilab.fr>
parents:
9897
diff
changeset
|
127 |
|
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
128 |
|
10324
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
129 |
class MiscOptionsTC(CubicWebServerTC): |
9882
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
130 |
@classmethod |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
131 |
def init_config(cls, config): |
10324
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
132 |
super(MiscOptionsTC, cls).init_config(config) |
9882
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
133 |
cls.logfile = tempfile.NamedTemporaryFile() |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
134 |
config.global_set_option('query-log-file', cls.logfile.name) |
10324
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
135 |
config.global_set_option('datadir-url', '//static.testing.fr/') |
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
136 |
# call load_configuration again to let the config reset its datadir_url |
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
137 |
config.load_configuration() |
9882
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
138 |
|
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
139 |
def test_log_queries(self): |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
140 |
self.web_request() |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
141 |
self.assertTrue(self.logfile.read()) |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
142 |
|
10324
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
143 |
def test_datadir_url(self): |
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
144 |
webreq = self.web_request() |
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
145 |
self.assertNotIn('/data/', webreq.read()) |
6e44cc1d9c7e
[web] add test for datadir-url option (related to #5204550)
Julien Cristau <julien.cristau@logilab.fr>
parents:
10003
diff
changeset
|
146 |
|
9882
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
147 |
@classmethod |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
148 |
def tearDownClass(cls): |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
149 |
cls.logfile.close() |
4db650d79e32
[test] Fix the query-log-file test
Julien Cristau <julien.cristau@logilab.fr>
parents:
9849
diff
changeset
|
150 |
|
9147
01124cfd4b1f
[etwist] fix handling of multiple files per field
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8728
diff
changeset
|
151 |
|
1646 | 152 |
if __name__ == '__main__': |
153 |
unittest_main() |