Merge pull request #969 from kaedroho/warnings-fixes

Some warnings fixes
This commit is contained in:
Karl Hobley 2015-02-06 17:06:10 +00:00
commit 9d9bfc1f08
7 changed files with 57 additions and 18 deletions

View file

@ -25,9 +25,9 @@ class WagtailTestUtils(object):
with warnings.catch_warnings(record=True) as warning_list: # catch all warnings
yield
# rethrow all warnings that were not DeprecationWarnings
# rethrow all warnings that were not DeprecationWarnings or PendingDeprecationWarnings
for w in warning_list:
if not issubclass(w.category, DeprecationWarning):
if not issubclass(w.category, (DeprecationWarning, PendingDeprecationWarning)):
warnings.showwarning(message=w.message, category=w.category, filename=w.filename, lineno=w.lineno, file=w.file, line=w.line)
# borrowed from https://github.com/django/django/commit/9f427617e4559012e1c2fd8fce46cbe225d8515d

View file

@ -2,13 +2,8 @@ from __future__ import unicode_literals
from six import text_type, with_metaclass
try:
# renamed util -> utils in Django 1.7; try the new name first
from django.forms.utils import flatatt
except ImportError:
from django.forms.util import flatatt
from django.forms import MediaDefiningClass, Media
from django.forms.utils import flatatt
from django.utils.text import slugify
from django.utils.html import format_html
from django.utils.safestring import mark_safe

View file

@ -1,5 +1,7 @@
from django.db.models import Q, get_models
from django.db.models import Q
from django.contrib.contenttypes.models import ContentType
from django.apps import apps
from treebeard.mp_tree import MP_NodeQuerySet
from wagtail.wagtailsearch.backends import get_search_backend
@ -154,7 +156,7 @@ class PageQuerySet(MP_NodeQuerySet):
def type_q(self, klass):
content_types = ContentType.objects.get_for_models(*[
model for model in get_models()
model for model in apps.get_models()
if issubclass(model, klass)
]).values()

View file

@ -1,7 +1,10 @@
import unittest
from django.test import TestCase
from django.core.cache import cache
from wagtail.wagtailcore.models import Page, Site
from wagtail.wagtailcore.utils import resolve_model_string
from wagtail.tests.models import SimplePage
@ -142,3 +145,42 @@ class TestSiteRootPathsCache(TestCase):
# Check url
self.assertEqual(homepage.url, '/')
class TestResolveModelString(TestCase):
def test_resolve_from_string(self):
model = resolve_model_string('wagtailcore.Page')
self.assertEqual(model, Page)
def test_resolve_from_string_with_default_app(self):
model = resolve_model_string('Page', default_app='wagtailcore')
self.assertEqual(model, Page)
def test_resolve_from_string_with_different_default_app(self):
model = resolve_model_string('wagtailcore.Page', default_app='wagtailadmin')
self.assertEqual(model, Page)
def test_resolve_from_class(self):
model = resolve_model_string(Page)
self.assertEqual(model, Page)
def test_resolve_from_string_invalid(self):
self.assertRaises(ValueError, resolve_model_string, 'wagtail.wagtailcore.Page')
def test_resolve_from_string_with_incorrect_default_app(self):
self.assertRaises(LookupError, resolve_model_string, 'Page', default_app='wagtailadmin')
def test_resolve_from_string_with_no_default_app(self):
self.assertRaises(ValueError, resolve_model_string, 'Page')
@unittest.expectedFailure # Raising LookupError instead
def test_resolve_from_class_that_isnt_a_model(self):
self.assertRaises(ValueError, resolve_model_string, object)
@unittest.expectedFailure # Raising LookupError instead
def test_resolve_from_bad_type(self):
self.assertRaises(ValueError, resolve_model_string, resolve_model_string)

View file

@ -1,7 +1,9 @@
import re
from django.db.models import Model, get_model
from six import string_types
from django.db.models import Model
from django.apps import apps
def camelcase_to_underscore(str):
# http://djangosnippets.org/snippets/585/
@ -26,10 +28,7 @@ def resolve_model_string(model_string, default_app=None):
"should be in the form app_label.model_name".format(
model_string), model_string)
model = get_model(app_label, model_name)
if not model:
raise LookupError("Can not resolve {0!r} into a model".format(model_string), model_string)
return model
return apps.get_model(app_label, model_name)
elif isinstance(model_string, type) and issubclass(model_string, Model):
return model_string

View file

@ -1,4 +1,4 @@
from django.forms.util import ErrorList
from django.forms.utils import ErrorList
from django.utils.translation import ugettext as _
from wagtail.wagtailadmin.modal_workflow import render_modal_workflow

View file

@ -1,5 +1,6 @@
from collections import OrderedDict
import django.forms
from django.utils.datastructures import SortedDict
class BaseForm(django.forms.Form):
@ -75,7 +76,7 @@ class FormBuilder(object):
@property
def formfields(self):
formfields = SortedDict()
formfields = OrderedDict()
for field in self.fields:
options = self.get_field_options(field)