31 lines
978 B
Python
31 lines
978 B
Python
"""
|
|
Utilities for Open edX unit tests.
|
|
"""
|
|
from __future__ import absolute_import, unicode_literals
|
|
|
|
import django
|
|
|
|
|
|
# TODO: Remove Django 1.11 upgrade shim
|
|
# SHIM: We should be able to get rid of this utility post-upgrade
|
|
def expected_redirect_url(relative_url, hostname='testserver'):
|
|
"""
|
|
Get the expected redirect URL for the current Django version and the
|
|
given relative URL:
|
|
|
|
* Django 1.8 and earlier redirect URLs beginning with a slash to absolute
|
|
URLs, later versions redirect to relative ones.
|
|
* Django 1.8 and earlier leave URLs without a leading slash alone, later
|
|
versions prepend the missing slash.
|
|
"""
|
|
if django.VERSION < (1, 9):
|
|
if relative_url.startswith('/'):
|
|
return 'http://{}{}'.format(hostname, relative_url)
|
|
else:
|
|
return relative_url
|
|
else:
|
|
if relative_url.startswith('/'):
|
|
return relative_url
|
|
else:
|
|
return '/{}'.format(relative_url)
|