Commit df2f347a by Calen Pennington

Merge pull request #12670 from cpennington/reset-urls-favicon-tests

Reset urls favicon tests
parents 194d33ea c124fb34
...@@ -31,8 +31,14 @@ class UrlResetMixin(object): ...@@ -31,8 +31,14 @@ class UrlResetMixin(object):
URLCONF_MODULES = None URLCONF_MODULES = None
def _reset_urls(self, urlconf_modules): def reset_urls(self, urlconf_modules=None):
"""Reset `urls.py` for a set of Django apps.""" """Reset `urls.py` for a set of Django apps."""
if urlconf_modules is None:
urlconf_modules = [settings.ROOT_URLCONF]
if self.URLCONF_MODULES is not None:
urlconf_modules.extend(self.URLCONF_MODULES)
for urlconf in urlconf_modules: for urlconf in urlconf_modules:
if urlconf in sys.modules: if urlconf in sys.modules:
reload(sys.modules[urlconf]) reload(sys.modules[urlconf])
...@@ -61,12 +67,8 @@ class UrlResetMixin(object): ...@@ -61,12 +67,8 @@ class UrlResetMixin(object):
""" """
super(UrlResetMixin, self).setUp() super(UrlResetMixin, self).setUp()
urlconf_modules = [settings.ROOT_URLCONF] self.reset_urls()
if self.URLCONF_MODULES is not None: self.addCleanup(self.reset_urls)
urlconf_modules.extend(self.URLCONF_MODULES)
self._reset_urls(urlconf_modules)
self.addCleanup(lambda: self._reset_urls(urlconf_modules))
class EventTestMixin(object): class EventTestMixin(object):
......
...@@ -9,12 +9,14 @@ from nose.plugins.attrib import attr ...@@ -9,12 +9,14 @@ from nose.plugins.attrib import attr
import sys import sys
from util.testing import UrlResetMixin
@attr('shard_1')
class FaviconTestCase(TestCase):
def setUp(self): @attr('shard_1')
super(FaviconTestCase, self).setUp() class FaviconTestCase(UrlResetMixin, TestCase):
"""
Tests of the courseware favicon.
"""
def test_favicon_redirect(self): def test_favicon_redirect(self):
resp = self.client.get("/favicon.ico") resp = self.client.get("/favicon.ico")
...@@ -27,15 +29,7 @@ class FaviconTestCase(TestCase): ...@@ -27,15 +29,7 @@ class FaviconTestCase(TestCase):
@override_settings(FAVICON_PATH="images/foo.ico") @override_settings(FAVICON_PATH="images/foo.ico")
def test_favicon_redirect_with_favicon_path_setting(self): def test_favicon_redirect_with_favicon_path_setting(self):
self.reset_urls()
# 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") resp = self.client.get("/favicon.ico")
self.assertEqual(resp.status_code, 301) self.assertEqual(resp.status_code, 301)
...@@ -46,14 +40,16 @@ class FaviconTestCase(TestCase): ...@@ -46,14 +40,16 @@ class FaviconTestCase(TestCase):
) )
@patch.dict("django.conf.settings.FEATURES", {"USE_CUSTOM_THEME": True}) @patch.dict("django.conf.settings.FEATURES", {"USE_CUSTOM_THEME": True})
@override_settings(FAVICON_PATH="images/bar_fav.ico")
@override_settings(THEME_NAME="bar") @override_settings(THEME_NAME="bar")
def test_favicon_redirect_with_theme(self): def test_favicon_redirect_with_theme(self):
self.assertEqual(settings.FEATURES["USE_CUSTOM_THEME"], True) self.assertEqual(settings.FEATURES["USE_CUSTOM_THEME"], True)
self.reset_urls()
resp = self.client.get("/favicon.ico") resp = self.client.get("/favicon.ico")
self.assertEqual(resp.status_code, 301) self.assertEqual(resp.status_code, 301)
self.assertRedirects( self.assertRedirects(
resp, resp,
"/static/images/foo.ico", "/static/images/bar_fav.ico",
status_code=301, target_status_code=404 # @@@ how to avoid 404? status_code=301, target_status_code=404 # @@@ how to avoid 404?
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment