mirror of
https://github.com/django/django.git
synced 2024-12-26 11:06:07 +00:00
2607fa9016
This (nearly) completes the work to isolate all the test modules from each other. This is now more important as importing models from another module will case PendingDeprecationWarnings if those modules are not in INSTALLED_APPS. The only remaining obvious dependencies are: - d.c.auth depends on d.c.admin (because of the is_admin flag to some views), but this is not so important and d.c.admin is in always_installed_apps - test_client_regress depends on test_client. Eventually these should become a single module, as the split serves no useful purpose.
69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.core.urlresolvers import NoReverseMatch
|
|
from django.contrib.auth.views import logout
|
|
from django.shortcuts import resolve_url
|
|
from django.test import TestCase
|
|
|
|
from .models import UnimportantThing
|
|
|
|
|
|
class ResolveUrlTests(TestCase):
|
|
"""
|
|
Tests for the ``resolve_url`` function.
|
|
"""
|
|
urls = 'resolve_url.urls'
|
|
|
|
def test_url_path(self):
|
|
"""
|
|
Tests that passing a URL path to ``resolve_url`` will result in the
|
|
same url.
|
|
"""
|
|
self.assertEqual('/something/', resolve_url('/something/'))
|
|
|
|
def test_full_url(self):
|
|
"""
|
|
Tests that passing a full URL to ``resolve_url`` will result in the
|
|
same url.
|
|
"""
|
|
url = 'http://example.com/'
|
|
self.assertEqual(url, resolve_url(url))
|
|
|
|
def test_model(self):
|
|
"""
|
|
Tests that passing a model to ``resolve_url`` will result in
|
|
``get_absolute_url`` being called on that model instance.
|
|
"""
|
|
m = UnimportantThing(importance=1)
|
|
self.assertEqual(m.get_absolute_url(), resolve_url(m))
|
|
|
|
def test_view_function(self):
|
|
"""
|
|
Tests that passing a view name to ``resolve_url`` will result in the
|
|
URL path mapping to that view name.
|
|
"""
|
|
resolved_url = resolve_url(logout)
|
|
self.assertEqual('/accounts/logout/', resolved_url)
|
|
|
|
def test_valid_view_name(self):
|
|
"""
|
|
Tests that passing a view function to ``resolve_url`` will result in
|
|
the URL path mapping to that view.
|
|
"""
|
|
resolved_url = resolve_url('django.contrib.auth.views.logout')
|
|
self.assertEqual('/accounts/logout/', resolved_url)
|
|
|
|
def test_domain(self):
|
|
"""
|
|
Tests that passing a domain to ``resolve_url`` returns the same domain.
|
|
"""
|
|
self.assertEqual(resolve_url('example.com'), 'example.com')
|
|
|
|
def test_non_view_callable_raises_no_reverse_match(self):
|
|
"""
|
|
Tests that passing a non-view callable into ``resolve_url`` raises a
|
|
``NoReverseMatch`` exception.
|
|
"""
|
|
with self.assertRaises(NoReverseMatch):
|
|
resolve_url(lambda: 'asdf')
|