58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
from django.conf import settings
|
|
from django.core.urlresolvers import clear_url_caches, resolve
|
|
|
|
from django.test import TestCase
|
|
from django.test.utils import override_settings
|
|
|
|
from mock import patch
|
|
|
|
import sys
|
|
|
|
|
|
class FaviconTestCase(TestCase):
|
|
|
|
def setUp(self):
|
|
super(FaviconTestCase, self).setUp()
|
|
|
|
def test_favicon_redirect(self):
|
|
resp = self.client.get("/favicon.ico")
|
|
self.assertEqual(resp.status_code, 301)
|
|
self.assertRedirects(
|
|
resp,
|
|
"/static/images/favicon.ico",
|
|
status_code=301, target_status_code=404 # @@@ how to avoid 404?
|
|
)
|
|
|
|
@override_settings(FAVICON_PATH="images/foo.ico")
|
|
def test_favicon_redirect_with_favicon_path_setting(self):
|
|
|
|
# for some reason I had to put this inline rather than just using
|
|
# the UrlResetMixin
|
|
|
|
urlconf = settings.ROOT_URLCONF
|
|
if urlconf in sys.modules:
|
|
reload(sys.modules[urlconf])
|
|
clear_url_caches()
|
|
resolve("/")
|
|
|
|
resp = self.client.get("/favicon.ico")
|
|
self.assertEqual(resp.status_code, 301)
|
|
self.assertRedirects(
|
|
resp,
|
|
"/static/images/foo.ico",
|
|
status_code=301, target_status_code=404 # @@@ how to avoid 404?
|
|
)
|
|
|
|
@patch.dict("django.conf.settings.FEATURES", {"USE_CUSTOM_THEME": True})
|
|
@override_settings(THEME_NAME="bar")
|
|
def test_favicon_redirect_with_theme(self):
|
|
self.assertEqual(settings.FEATURES["USE_CUSTOM_THEME"], True)
|
|
|
|
resp = self.client.get("/favicon.ico")
|
|
self.assertEqual(resp.status_code, 301)
|
|
self.assertRedirects(
|
|
resp,
|
|
"/static/images/foo.ico",
|
|
status_code=301, target_status_code=404 # @@@ how to avoid 404?
|
|
)
|