Mercurial > hg-stable
comparison tests/test-wsgirequest.py @ 37939:e0598133ac68
tests: migrate test-wsgirequest.py to Python 3
# skip-blame adding and removing b prefixes
Differential Revision: https://phab.mercurial-scm.org/D3495
author | Augie Fackler <augie@google.com> |
---|---|
date | Fri, 27 Apr 2018 10:40:04 -0400 |
parents | 1859b9a7ddef |
children | 2372284d9457 |
comparison
equal
deleted
inserted
replaced
37938:2f00c6e8f6a1 | 37939:e0598133ac68 |
---|---|
204 | 204 |
205 def testreponame(self): | 205 def testreponame(self): |
206 """repository path components get stripped from URL.""" | 206 """repository path components get stripped from URL.""" |
207 | 207 |
208 with self.assertRaisesRegex(error.ProgrammingError, | 208 with self.assertRaisesRegex(error.ProgrammingError, |
209 b'reponame requires PATH_INFO'): | 209 'reponame requires PATH_INFO'): |
210 parse(DEFAULT_ENV, reponame=b'repo') | 210 parse(DEFAULT_ENV, reponame=b'repo') |
211 | 211 |
212 with self.assertRaisesRegex(error.ProgrammingError, | 212 with self.assertRaisesRegex(error.ProgrammingError, |
213 b'PATH_INFO does not begin with repo ' | 213 'PATH_INFO does not begin with repo ' |
214 b'name'): | 214 'name'): |
215 parse(DEFAULT_ENV, reponame=b'repo', extra={ | 215 parse(DEFAULT_ENV, reponame=b'repo', extra={ |
216 r'PATH_INFO': r'/pathinfo', | 216 r'PATH_INFO': r'/pathinfo', |
217 }) | 217 }) |
218 | 218 |
219 with self.assertRaisesRegex(error.ProgrammingError, | 219 with self.assertRaisesRegex(error.ProgrammingError, |
220 b'reponame prefix of PATH_INFO'): | 220 'reponame prefix of PATH_INFO'): |
221 parse(DEFAULT_ENV, reponame=b'repo', extra={ | 221 parse(DEFAULT_ENV, reponame=b'repo', extra={ |
222 r'PATH_INFO': r'/repoextra/path', | 222 r'PATH_INFO': r'/repoextra/path', |
223 }) | 223 }) |
224 | 224 |
225 r = parse(DEFAULT_ENV, reponame=b'repo', extra={ | 225 r = parse(DEFAULT_ENV, reponame=b'repo', extra={ |
249 self.assertEqual(r.dispatchpath, b'path1/path2') | 249 self.assertEqual(r.dispatchpath, b'path1/path2') |
250 self.assertEqual(r.reponame, b'prefix/repo') | 250 self.assertEqual(r.reponame, b'prefix/repo') |
251 | 251 |
252 def testaltbaseurl(self): | 252 def testaltbaseurl(self): |
253 # Simple hostname remap. | 253 # Simple hostname remap. |
254 r = parse(DEFAULT_ENV, altbaseurl='http://altserver') | 254 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver') |
255 | 255 |
256 self.assertEqual(r.url, b'http://testserver') | 256 self.assertEqual(r.url, b'http://testserver') |
257 self.assertEqual(r.baseurl, b'http://testserver') | 257 self.assertEqual(r.baseurl, b'http://testserver') |
258 self.assertEqual(r.advertisedurl, b'http://altserver') | 258 self.assertEqual(r.advertisedurl, b'http://altserver') |
259 self.assertEqual(r.advertisedbaseurl, b'http://altserver') | 259 self.assertEqual(r.advertisedbaseurl, b'http://altserver') |
262 self.assertEqual(r.dispatchparts, []) | 262 self.assertEqual(r.dispatchparts, []) |
263 self.assertIsNone(r.dispatchpath) | 263 self.assertIsNone(r.dispatchpath) |
264 self.assertIsNone(r.reponame) | 264 self.assertIsNone(r.reponame) |
265 | 265 |
266 # With a custom port. | 266 # With a custom port. |
267 r = parse(DEFAULT_ENV, altbaseurl='http://altserver:8000') | 267 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver:8000') |
268 self.assertEqual(r.url, b'http://testserver') | 268 self.assertEqual(r.url, b'http://testserver') |
269 self.assertEqual(r.baseurl, b'http://testserver') | 269 self.assertEqual(r.baseurl, b'http://testserver') |
270 self.assertEqual(r.advertisedurl, b'http://altserver:8000') | 270 self.assertEqual(r.advertisedurl, b'http://altserver:8000') |
271 self.assertEqual(r.advertisedbaseurl, b'http://altserver:8000') | 271 self.assertEqual(r.advertisedbaseurl, b'http://altserver:8000') |
272 self.assertEqual(r.urlscheme, b'http') | 272 self.assertEqual(r.urlscheme, b'http') |
274 self.assertEqual(r.dispatchparts, []) | 274 self.assertEqual(r.dispatchparts, []) |
275 self.assertIsNone(r.dispatchpath) | 275 self.assertIsNone(r.dispatchpath) |
276 self.assertIsNone(r.reponame) | 276 self.assertIsNone(r.reponame) |
277 | 277 |
278 # With a changed protocol. | 278 # With a changed protocol. |
279 r = parse(DEFAULT_ENV, altbaseurl='https://altserver') | 279 r = parse(DEFAULT_ENV, altbaseurl=b'https://altserver') |
280 self.assertEqual(r.url, b'http://testserver') | 280 self.assertEqual(r.url, b'http://testserver') |
281 self.assertEqual(r.baseurl, b'http://testserver') | 281 self.assertEqual(r.baseurl, b'http://testserver') |
282 self.assertEqual(r.advertisedurl, b'https://altserver') | 282 self.assertEqual(r.advertisedurl, b'https://altserver') |
283 self.assertEqual(r.advertisedbaseurl, b'https://altserver') | 283 self.assertEqual(r.advertisedbaseurl, b'https://altserver') |
284 # URL scheme is defined as the actual scheme, not advertised. | 284 # URL scheme is defined as the actual scheme, not advertised. |
287 self.assertEqual(r.dispatchparts, []) | 287 self.assertEqual(r.dispatchparts, []) |
288 self.assertIsNone(r.dispatchpath) | 288 self.assertIsNone(r.dispatchpath) |
289 self.assertIsNone(r.reponame) | 289 self.assertIsNone(r.reponame) |
290 | 290 |
291 # Need to specify explicit port number for proper https:// alt URLs. | 291 # Need to specify explicit port number for proper https:// alt URLs. |
292 r = parse(DEFAULT_ENV, altbaseurl='https://altserver:443') | 292 r = parse(DEFAULT_ENV, altbaseurl=b'https://altserver:443') |
293 self.assertEqual(r.url, b'http://testserver') | 293 self.assertEqual(r.url, b'http://testserver') |
294 self.assertEqual(r.baseurl, b'http://testserver') | 294 self.assertEqual(r.baseurl, b'http://testserver') |
295 self.assertEqual(r.advertisedurl, b'https://altserver') | 295 self.assertEqual(r.advertisedurl, b'https://altserver') |
296 self.assertEqual(r.advertisedbaseurl, b'https://altserver') | 296 self.assertEqual(r.advertisedbaseurl, b'https://altserver') |
297 self.assertEqual(r.urlscheme, b'http') | 297 self.assertEqual(r.urlscheme, b'http') |
299 self.assertEqual(r.dispatchparts, []) | 299 self.assertEqual(r.dispatchparts, []) |
300 self.assertIsNone(r.dispatchpath) | 300 self.assertIsNone(r.dispatchpath) |
301 self.assertIsNone(r.reponame) | 301 self.assertIsNone(r.reponame) |
302 | 302 |
303 # With only PATH_INFO defined. | 303 # With only PATH_INFO defined. |
304 r = parse(DEFAULT_ENV, altbaseurl='http://altserver', extra={ | 304 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver', extra={ |
305 r'PATH_INFO': r'/path1/path2', | 305 r'PATH_INFO': r'/path1/path2', |
306 }) | 306 }) |
307 self.assertEqual(r.url, b'http://testserver/path1/path2') | 307 self.assertEqual(r.url, b'http://testserver/path1/path2') |
308 self.assertEqual(r.baseurl, b'http://testserver') | 308 self.assertEqual(r.baseurl, b'http://testserver') |
309 self.assertEqual(r.advertisedurl, b'http://altserver/path1/path2') | 309 self.assertEqual(r.advertisedurl, b'http://altserver/path1/path2') |
313 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) | 313 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) |
314 self.assertEqual(r.dispatchpath, b'path1/path2') | 314 self.assertEqual(r.dispatchpath, b'path1/path2') |
315 self.assertIsNone(r.reponame) | 315 self.assertIsNone(r.reponame) |
316 | 316 |
317 # Path on alt URL. | 317 # Path on alt URL. |
318 r = parse(DEFAULT_ENV, altbaseurl='http://altserver/altpath') | 318 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath') |
319 self.assertEqual(r.url, b'http://testserver') | 319 self.assertEqual(r.url, b'http://testserver') |
320 self.assertEqual(r.baseurl, b'http://testserver') | 320 self.assertEqual(r.baseurl, b'http://testserver') |
321 self.assertEqual(r.advertisedurl, b'http://altserver/altpath') | 321 self.assertEqual(r.advertisedurl, b'http://altserver/altpath') |
322 self.assertEqual(r.advertisedbaseurl, b'http://altserver') | 322 self.assertEqual(r.advertisedbaseurl, b'http://altserver') |
323 self.assertEqual(r.urlscheme, b'http') | 323 self.assertEqual(r.urlscheme, b'http') |
325 self.assertEqual(r.dispatchparts, []) | 325 self.assertEqual(r.dispatchparts, []) |
326 self.assertIsNone(r.dispatchpath) | 326 self.assertIsNone(r.dispatchpath) |
327 self.assertIsNone(r.reponame) | 327 self.assertIsNone(r.reponame) |
328 | 328 |
329 # With a trailing slash. | 329 # With a trailing slash. |
330 r = parse(DEFAULT_ENV, altbaseurl='http://altserver/altpath/') | 330 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath/') |
331 self.assertEqual(r.url, b'http://testserver') | 331 self.assertEqual(r.url, b'http://testserver') |
332 self.assertEqual(r.baseurl, b'http://testserver') | 332 self.assertEqual(r.baseurl, b'http://testserver') |
333 self.assertEqual(r.advertisedurl, b'http://altserver/altpath/') | 333 self.assertEqual(r.advertisedurl, b'http://altserver/altpath/') |
334 self.assertEqual(r.advertisedbaseurl, b'http://altserver') | 334 self.assertEqual(r.advertisedbaseurl, b'http://altserver') |
335 self.assertEqual(r.urlscheme, b'http') | 335 self.assertEqual(r.urlscheme, b'http') |
337 self.assertEqual(r.dispatchparts, []) | 337 self.assertEqual(r.dispatchparts, []) |
338 self.assertIsNone(r.dispatchpath) | 338 self.assertIsNone(r.dispatchpath) |
339 self.assertIsNone(r.reponame) | 339 self.assertIsNone(r.reponame) |
340 | 340 |
341 # PATH_INFO + path on alt URL. | 341 # PATH_INFO + path on alt URL. |
342 r = parse(DEFAULT_ENV, altbaseurl='http://altserver/altpath', extra={ | 342 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath', extra={ |
343 r'PATH_INFO': r'/path1/path2', | 343 r'PATH_INFO': r'/path1/path2', |
344 }) | 344 }) |
345 self.assertEqual(r.url, b'http://testserver/path1/path2') | 345 self.assertEqual(r.url, b'http://testserver/path1/path2') |
346 self.assertEqual(r.baseurl, b'http://testserver') | 346 self.assertEqual(r.baseurl, b'http://testserver') |
347 self.assertEqual(r.advertisedurl, | 347 self.assertEqual(r.advertisedurl, |
352 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) | 352 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) |
353 self.assertEqual(r.dispatchpath, b'path1/path2') | 353 self.assertEqual(r.dispatchpath, b'path1/path2') |
354 self.assertIsNone(r.reponame) | 354 self.assertIsNone(r.reponame) |
355 | 355 |
356 # PATH_INFO + path on alt URL with trailing slash. | 356 # PATH_INFO + path on alt URL with trailing slash. |
357 r = parse(DEFAULT_ENV, altbaseurl='http://altserver/altpath/', extra={ | 357 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altpath/', extra={ |
358 r'PATH_INFO': r'/path1/path2', | 358 r'PATH_INFO': r'/path1/path2', |
359 }) | 359 }) |
360 self.assertEqual(r.url, b'http://testserver/path1/path2') | 360 self.assertEqual(r.url, b'http://testserver/path1/path2') |
361 self.assertEqual(r.baseurl, b'http://testserver') | 361 self.assertEqual(r.baseurl, b'http://testserver') |
362 self.assertEqual(r.advertisedurl, | 362 self.assertEqual(r.advertisedurl, |
367 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) | 367 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) |
368 self.assertEqual(r.dispatchpath, b'path1/path2') | 368 self.assertEqual(r.dispatchpath, b'path1/path2') |
369 self.assertIsNone(r.reponame) | 369 self.assertIsNone(r.reponame) |
370 | 370 |
371 # Local SCRIPT_NAME is ignored. | 371 # Local SCRIPT_NAME is ignored. |
372 r = parse(DEFAULT_ENV, altbaseurl='http://altserver', extra={ | 372 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver', extra={ |
373 r'SCRIPT_NAME': r'/script', | 373 r'SCRIPT_NAME': r'/script', |
374 r'PATH_INFO': r'/path1/path2', | 374 r'PATH_INFO': r'/path1/path2', |
375 }) | 375 }) |
376 self.assertEqual(r.url, b'http://testserver/script/path1/path2') | 376 self.assertEqual(r.url, b'http://testserver/script/path1/path2') |
377 self.assertEqual(r.baseurl, b'http://testserver') | 377 self.assertEqual(r.baseurl, b'http://testserver') |
382 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) | 382 self.assertEqual(r.dispatchparts, [b'path1', b'path2']) |
383 self.assertEqual(r.dispatchpath, b'path1/path2') | 383 self.assertEqual(r.dispatchpath, b'path1/path2') |
384 self.assertIsNone(r.reponame) | 384 self.assertIsNone(r.reponame) |
385 | 385 |
386 # Use remote's path for script name, app path | 386 # Use remote's path for script name, app path |
387 r = parse(DEFAULT_ENV, altbaseurl='http://altserver/altroot', extra={ | 387 r = parse(DEFAULT_ENV, altbaseurl=b'http://altserver/altroot', extra={ |
388 r'SCRIPT_NAME': r'/script', | 388 r'SCRIPT_NAME': r'/script', |
389 r'PATH_INFO': r'/path1/path2', | 389 r'PATH_INFO': r'/path1/path2', |
390 }) | 390 }) |
391 self.assertEqual(r.url, b'http://testserver/script/path1/path2') | 391 self.assertEqual(r.url, b'http://testserver/script/path1/path2') |
392 self.assertEqual(r.baseurl, b'http://testserver') | 392 self.assertEqual(r.baseurl, b'http://testserver') |
399 self.assertEqual(r.dispatchpath, b'path1/path2') | 399 self.assertEqual(r.dispatchpath, b'path1/path2') |
400 self.assertIsNone(r.reponame) | 400 self.assertIsNone(r.reponame) |
401 | 401 |
402 # reponame is factored in properly. | 402 # reponame is factored in properly. |
403 r = parse(DEFAULT_ENV, reponame=b'repo', | 403 r = parse(DEFAULT_ENV, reponame=b'repo', |
404 altbaseurl='http://altserver/altroot', | 404 altbaseurl=b'http://altserver/altroot', |
405 extra={ | 405 extra={ |
406 r'SCRIPT_NAME': r'/script', | 406 r'SCRIPT_NAME': r'/script', |
407 r'PATH_INFO': r'/repo/path1/path2', | 407 r'PATH_INFO': r'/repo/path1/path2', |
408 }) | 408 }) |
409 | 409 |