Skip to content

Commit

Permalink
Merge pull request #3797 from timgraham/liveservertestcase
Browse files Browse the repository at this point in the history
Used StaticLiveServerTestCase on Django 1.7+.
  • Loading branch information
yakky committed Feb 7, 2015
2 parents 7189222 + 60abf4f commit e127953
Show file tree
Hide file tree
Showing 43 changed files with 1,443 additions and 1,539 deletions.
9 changes: 4 additions & 5 deletions cms/test_utils/fixtures/menus.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import with_statement
from cms.api import create_page
from cms.test_utils.util.context_managers import SettingsOverride


class MenusFixture(object):
Expand All @@ -22,7 +21,7 @@ def create_fixtures(self):
'template': 'nav_playground.html',
'language': 'en',
}
with SettingsOverride(CMS_PERMISSION=False):
with self.settings(CMS_PERMISSION=False):
p1 = create_page('P1', published=True, in_navigation=True, **defaults)
p4 = create_page('P4', published=True, in_navigation=True, **defaults)
p6 = create_page('P6', published=True, in_navigation=False, **defaults)
Expand Down Expand Up @@ -54,7 +53,7 @@ def create_fixtures(self):
'template': 'nav_playground.html',
'language': 'en',
}
with SettingsOverride(CMS_MODERATOR=False, CMS_PERMISSION=False):
with self.settings(CMS_MODERATOR=False, CMS_PERMISSION=False):
p1 = create_page('P1', published=True, in_navigation=True, **defaults)
p4 = create_page('P4', published=True, in_navigation=True, **defaults)
p6 = create_page('P6', published=True, in_navigation=False, **defaults)
Expand Down Expand Up @@ -86,7 +85,7 @@ def create_fixtures(self):
'template': 'nav_playground.html',
'language': 'en',
}
with SettingsOverride(CMS_PERMISSION=False):
with self.settings(CMS_PERMISSION=False):
p1 = create_page('P1', published=True, in_navigation=True, **defaults)
p4 = create_page('P4', published=True, in_navigation=True, **defaults)
p6 = create_page('P6', published=True, in_navigation=True, **defaults)
Expand Down Expand Up @@ -119,7 +118,7 @@ def create_fixtures(self):
'in_navigation': True,
'published': True,
}
with SettingsOverride(CMS_PERMISSION=False):
with self.settings(CMS_PERMISSION=False):
top = create_page('top', **defaults)
root = create_page('root', parent=top, **defaults)
aaa = create_page('aaa', parent=root, **defaults)
Expand Down
3 changes: 1 addition & 2 deletions cms/test_utils/fixtures/navextenders.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from __future__ import with_statement
from cms.api import create_page
from cms.models.pagemodel import Page
from cms.test_utils.util.context_managers import SettingsOverride


class NavextendersFixture(object):
Expand All @@ -20,7 +19,7 @@ def create_fixtures(self):
'template': 'nav_playground.html',
'language': 'en',
}
with SettingsOverride(CMS_PERMISSION=False):
with self.settings(CMS_PERMISSION=False):
p1 = create_page('page1', published=True, in_navigation=True, **defaults)
p4 = create_page('page4', published=True, in_navigation=True, **defaults)
p1 = Page.objects.get(pk=p1.pk)
Expand Down
3 changes: 1 addition & 2 deletions cms/test_utils/fixtures/templatetags.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import with_statement
from cms.api import create_page, create_title
from cms.test_utils.util.context_managers import SettingsOverride


class TwoPagesFixture(object):
Expand All @@ -11,7 +10,7 @@ def create_fixtures(self):
'published': True,
'in_navigation': True,
}
with SettingsOverride(CMS_PERMISSION=False):
with self.settings(CMS_PERMISSION=False):
first = create_page('first', language='en', **defaults)
create_title('de', 'erste', first)
second = create_page('second', language='en', reverse_id='myreverseid', **defaults)
Expand Down
22 changes: 1 addition & 21 deletions cms/test_utils/testcases.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
from menus.menu_pool import menu_pool

from cms.models import Page
from cms.test_utils.util.context_managers import (UserLoginContext,
SettingsOverride)
from cms.test_utils.util.context_managers import UserLoginContext
from cms.utils.compat.dj import get_user_model
from cms.utils.compat.urls import urljoin, unquote
from cms.utils.permissions import set_current_user
Expand Down Expand Up @@ -389,22 +388,3 @@ class CMSTestCase(BaseCMSTestCase, testcases.TestCase):

class TransactionCMSTestCase(BaseCMSTestCase, testcases.TransactionTestCase):
pass


class SettingsOverrideTestCase(CMSTestCase):
settings_overrides = {}

def _pre_setup(self):
self._enter_settings_override()
super(SettingsOverrideTestCase, self)._pre_setup()

def _enter_settings_override(self):
self._settings_ctx_manager = SettingsOverride(**self.settings_overrides)
self._settings_ctx_manager.__enter__()

def _post_teardown(self):
super(SettingsOverrideTestCase, self)._post_teardown()
self._exit_settings_override()

def _exit_settings_override(self):
self._settings_ctx_manager.__exit__(None, None, None)
36 changes: 0 additions & 36 deletions cms/test_utils/util/context_managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from django.conf import settings
from django.core.signals import request_started
from django.db import reset_queries
from django.template import context
from django.utils.six.moves import StringIO
from django.utils.translation import get_language, activate

Expand All @@ -18,41 +17,6 @@ class NULL:
pass


class SettingsOverride(object):
"""
Overrides Django settings within a context and resets them to their inital
values on exit.
Example:
with SettingsOverride(DEBUG=True):
# do something
"""

def __init__(self, **overrides):
self.overrides = overrides
self.special_handlers = {
'TEMPLATE_CONTEXT_PROCESSORS': self.template_context_processors,
}

def __enter__(self):
self.old = {}
for key, value in self.overrides.items():
self.old[key] = getattr(settings, key, NULL)
setattr(settings, key, value)

def __exit__(self, type, value, traceback):
for key, value in self.old.items():
if value is not NULL:
setattr(settings, key, value)
else:
delattr(settings,key) # do not pollute the context!
self.special_handlers.get(key, lambda:None)()

def template_context_processors(self):
context._standard_context_processors = None


class StdOverride(object):
def __init__(self, std='out', buffer=None):
self.std = std
Expand Down
11 changes: 4 additions & 7 deletions cms/tests/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
from cms.models.titlemodels import Title
from cms.test_utils import testcases as base
from cms.test_utils.testcases import CMSTestCase, URL_CMS_PAGE_DELETE, URL_CMS_PAGE, URL_CMS_TRANSLATION_DELETE
from cms.test_utils.util.context_managers import SettingsOverride
from cms.test_utils.util.fuzzy_int import FuzzyInt
from cms.utils import get_cms_setting
from cms.utils.compat import DJANGO_1_6
Expand Down Expand Up @@ -828,8 +827,7 @@ def test_too_many_plugins_global(self):
}
admin_user = self.get_admin()
url = admin_reverse('cms_page_add_plugin')
with SettingsOverride(CMS_PERMISSION=False,
CMS_PLACEHOLDER_CONF=conf):
with self.settings(CMS_PERMISSION=False, CMS_PLACEHOLDER_CONF=conf):
page = create_page('somepage', 'nav_playground.html', 'en')
body = page.placeholders.get(slot='body')
add_plugin(body, 'TextPlugin', 'en', body='text')
Expand All @@ -852,8 +850,7 @@ def test_too_many_plugins_type(self):
}
admin_user = self.get_admin()
url = admin_reverse('cms_page_add_plugin')
with SettingsOverride(CMS_PERMISSION=False,
CMS_PLACEHOLDER_CONF=conf):
with self.settings(CMS_PERMISSION=False, CMS_PLACEHOLDER_CONF=conf):
page = create_page('somepage', 'nav_playground.html', 'en')
body = page.placeholders.get(slot='body')
add_plugin(body, 'TextPlugin', 'en', body='text')
Expand Down Expand Up @@ -1272,7 +1269,7 @@ def test_clean_overwrite_url(self):
user.is_superuser = True
user.pk = 1
request = type('Request', (object,), {'user': user})
with SettingsOverride():
with self.settings():
data = {
'title': 'TestPage',
'slug': 'test-page',
Expand Down Expand Up @@ -1576,7 +1573,7 @@ def test_editpage_contentsize(self):
Expected a username only 2 times in the content, but a relationship
between usercount and pagesize
"""
with SettingsOverride(CMS_PERMISSION=True):
with self.settings(CMS_PERMISSION=True):
admin_user = self.get_superuser()
PAGE_NAME = 'TestPage'
USER_NAME = 'test_size_user_0'
Expand Down
6 changes: 2 additions & 4 deletions cms/tests/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
from cms.constants import TEMPLATE_INHERITANCE_MAGIC
from cms.models.pagemodel import Page
from cms.plugin_base import CMSPluginBase
from cms.test_utils.util.context_managers import SettingsOverride
from cms.test_utils.util.menu_extender import TestMenu
from cms.test_utils.util.mock import AttributeObject
from cms.tests.apphooks import APP_MODULE, APP_NAME
Expand Down Expand Up @@ -76,7 +75,7 @@ def test_invalid_apphook_type(self):
def test_invalid_template(self):
kwargs = self._get_default_create_page_arguments()
kwargs['template'] = "not_valid.htm"
with SettingsOverride(CMS_TEMPLATES=(("not_valid.htm", "notvalid"),)):
with self.settings(CMS_TEMPLATES=[("not_valid.htm", "notvalid")]):
self.assertRaises(TemplateDoesNotExist, create_page, **kwargs)
kwargs['template'] = TEMPLATE_INHERITANCE_MAGIC
create_page(**kwargs)
Expand All @@ -88,7 +87,7 @@ def test_apphook_by_class(self):
'%s.%s' % (APP_MODULE, APP_NAME),
)

with SettingsOverride(CMS_APPHOOKS=apphooks):
with self.settings(CMS_APPHOOKS=apphooks):
apphook_pool.clear()
apphook = apphook_pool.get_apphook(APP_NAME)
page = create_page(apphook=apphook,
Expand Down Expand Up @@ -213,7 +212,6 @@ def test_create_page_can_overwrite_url(self):
self.assertEqual(page.get_title_obj_attribute('path'), 'test/home')

def test_create_reverse_id_collision(self):

create_page('home', 'nav_playground.html', 'en', published=True, reverse_id="foo")
self.assertRaises(FieldError, create_page, 'foo', 'nav_playground.html', 'en', published=True, reverse_id="foo")
self.assertTrue(Page.objects.count(), 2)

0 comments on commit e127953

Please sign in to comment.