Added tests for resolve_model_string

To make sure I don't change its behaviour in the next commit
This commit is contained in:
Karl Hobley 2015-02-06 10:22:38 +00:00
parent 43641192c2
commit cf0e17d94c

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)