Skip to content

Commit d1b8465

Browse files
committed
Add language test for cookie and accept-header; Test Range header
Added tests for start page translated to german using cookies retuened when @language is used. Checked that @language=none unsets roundup-langage cookie. Also test Accept-Language makes change to german. Add test for Range and If-Range headers. Roundup support for these is simple: Range: single range with both endpoints If-Range: strong etag only
1 parent df57f70 commit d1b8465

File tree

1 file changed

+65
-1
lines changed

1 file changed

+65
-1
lines changed

test/test_liveserver.py

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,79 @@ def test_start_page(self):
109109
def test_start_in_german(self):
110110
""" simple test that verifies that the server can serve a start page
111111
and translate text to german. Use page title and remeber login
112-
checkbox label.
112+
checkbox label as translation test points..
113+
114+
use:
115+
url parameter @language
116+
cookie set by param
117+
set @language to none and verify language cookie is unset
113118
"""
119+
120+
# test url parameter
114121
f = requests.get(self.url_base() + "?@language=de")
115122
self.assertEqual(f.status_code, 200)
116123
print(f.content)
117124
self.assertTrue(b'Roundup' in f.content)
118125
self.assertTrue(b'Aufgabenliste' in f.content)
119126
self.assertTrue(b'dauerhaft anmelden?' in f.content)
120127

128+
# test language cookie - should still be german
129+
bluemonster = f.cookies
130+
f = requests.get(self.url_base(), cookies=bluemonster)
131+
self.assertEqual(f.status_code, 200)
132+
print(f.content)
133+
self.assertTrue(b'Roundup' in f.content)
134+
self.assertTrue(b'Aufgabenliste' in f.content)
135+
self.assertTrue(b'dauerhaft anmelden?' in f.content)
136+
137+
# unset language cookie, should be english
138+
f = requests.get(self.url_base() + "?@language=none")
139+
self.assertEqual(f.status_code, 200)
140+
print(f.content)
141+
self.assertTrue(b'Roundup' in f.content)
142+
self.assertFalse(b'Aufgabenliste' in f.content)
143+
self.assertFalse(b'dauerhaft anmelden?' in f.content)
144+
with self.assertRaises(KeyError):
145+
l = f.cookies['roundup_language']
146+
147+
# check with Accept-Language header
148+
alh = {"Accept-Language":
149+
"fr;q=0.2, en;q=0.8, de;q=0.9, *;q=0.5"}
150+
f = requests.get(self.url_base(), headers=alh)
151+
self.assertEqual(f.status_code, 200)
152+
print(f.content)
153+
self.assertTrue(b'Roundup' in f.content)
154+
self.assertTrue(b'Aufgabenliste' in f.content)
155+
self.assertTrue(b'dauerhaft anmelden?' in f.content)
156+
157+
def test_byte_Ranges(self):
158+
""" Roundup only handles one simple two number range.
159+
Range: 10-20
160+
161+
The following are not supported.
162+
Range: 10-20, 25-30
163+
Range: 10-
164+
165+
Also If-Range only supports strong etags not dates or weak etags.
166+
167+
"""
168+
# check with Accept-Language header
169+
hdrs = {"Range": "bytes=0-10"}
170+
f = requests.get(self.url_base() + "/@@file/style.css", headers=hdrs)
171+
self.assertEqual(f.status_code, 206)
172+
self.assertEqual(f.content, b"/* main pag")
173+
174+
etag = f.headers['etag']
175+
hdrs['If-Range'] = etag
176+
f = requests.get(self.url_base() + "/@@file/style.css", headers=hdrs)
177+
self.assertEqual(f.status_code, 206)
178+
self.assertEqual(f.content, b"/* main pag")
179+
180+
etag = f.headers['etag']
181+
hdrs['If-Range'] = etag[2:] # bad tag
182+
f = requests.get(self.url_base() + "/@@file/style.css", headers=hdrs)
183+
self.assertEqual(f.status_code, 200)
184+
121185
def test_rest_invalid_method_collection(self):
122186
# use basic auth for rest endpoint
123187
f = requests.put(self.url_base() + '/rest/data/user',

0 commit comments

Comments
 (0)