summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/admin_widgets/tests.py27
-rw-r--r--tests/regressiontests/admin_widgets/urls2.py7
-rw-r--r--tests/regressiontests/fixtures_regress/models.py24
-rw-r--r--tests/regressiontests/mail/tests.py7
-rw-r--r--tests/regressiontests/servers/__init__.py0
-rw-r--r--tests/regressiontests/servers/models.py0
-rw-r--r--tests/regressiontests/servers/tests.py67
7 files changed, 106 insertions, 26 deletions
diff --git a/tests/regressiontests/admin_widgets/tests.py b/tests/regressiontests/admin_widgets/tests.py
index 69bc54e33a..85651542bb 100644
--- a/tests/regressiontests/admin_widgets/tests.py
+++ b/tests/regressiontests/admin_widgets/tests.py
@@ -115,6 +115,7 @@ class AdminFormfieldForDBFieldWithRequestTests(DjangoTestCase):
class AdminForeignKeyWidgetChangeList(DjangoTestCase):
fixtures = ["admin-widgets-users.xml"]
+ admin_root = '/widget_admin'
def setUp(self):
self.client.login(username="super", password="secret")
@@ -123,25 +124,9 @@ class AdminForeignKeyWidgetChangeList(DjangoTestCase):
self.client.logout()
def test_changelist_foreignkey(self):
- response = self.client.get('/widget_admin/admin_widgets/car/')
- self.failUnless('/widget_admin/auth/user/add/' in response.content)
+ response = self.client.get('%s/admin_widgets/car/' % self.admin_root)
+ self.failUnless('%s/auth/user/add/' % self.admin_root in response.content)
-
-
-# import os
-# from django.test import windmill_tests as djangotest
-# #from windmill.authoring import djangotest
-# #from windmill.conf import global_settings
-#
-# class TestProjectWindmillTest(djangotest.WindmillDjangoUnitTest):
-# fixtures = ['admin-views-users.xml', 'admin-views-colors.xml', 'admin-views-fabrics.xml', 'admin-views-unicode.xml',
-# 'multiple-child-classes', 'admin-views-actions.xml', 'string-primary-key.xml', 'admin-views-person.xml']
-# test_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'windmilltests')
-# #test_dir = os.path.dirname(os.path.abspath(__file__))
-# #test_dir = os.path.dirname(os.path.abspath(__file__))
-# browser = 'firefox'
-# test_url = 'http://localhost:8000/test_admin/admin/'
-# #global_settings.TEST_URL = test_url
-#
-# # def test_tryout(self):
-# # pass
+class OldAdminForeignKeyWidgetChangeList(AdminForeignKeyWidgetChangeList):
+ urls = 'regressiontests.admin_widgets.urls2'
+ admin_root = '/deep/down/admin'
diff --git a/tests/regressiontests/admin_widgets/urls2.py b/tests/regressiontests/admin_widgets/urls2.py
new file mode 100644
index 0000000000..1ad060cd09
--- /dev/null
+++ b/tests/regressiontests/admin_widgets/urls2.py
@@ -0,0 +1,7 @@
+
+from django.conf.urls.defaults import *
+import widgetadmin
+
+urlpatterns = patterns('',
+ (r'^deep/down/admin/(.*)', widgetadmin.site.root),
+)
diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py
index 16a9fc4fc5..e33471646c 100644
--- a/tests/regressiontests/fixtures_regress/models.py
+++ b/tests/regressiontests/fixtures_regress/models.py
@@ -54,7 +54,7 @@ class Parent(models.Model):
class Child(Parent):
data = models.CharField(max_length=10)
-# Models to regresison check #7572
+# Models to regression test #7572
class Channel(models.Model):
name = models.CharField(max_length=255)
@@ -65,6 +65,14 @@ class Article(models.Model):
class Meta:
ordering = ('id',)
+# Models to regression test #11428
+class Widget(models.Model):
+ name = models.CharField(max_length=255)
+
+class WidgetProxy(Widget):
+ class Meta:
+ proxy = True
+
__test__ = {'API_TESTS':"""
>>> from django.core import management
@@ -170,4 +178,18 @@ Weight = 1.2 (<type 'float'>)
>>> management.call_command('dumpdata', 'fixtures_regress.animal', format='json')
[{"pk": 1, "model": "fixtures_regress.animal", "fields": {"count": 3, "weight": 1.2, "name": "Lion", "latin_name": "Panthera leo"}}, {"pk": 2, "model": "fixtures_regress.animal", "fields": {"count": 2, "weight": 2.29..., "name": "Platypus", "latin_name": "Ornithorhynchus anatinus"}}, {"pk": 10, "model": "fixtures_regress.animal", "fields": {"count": 42, "weight": 1.2, "name": "Emu", "latin_name": "Dromaius novaehollandiae"}}]
+###############################################
+# Regression for #11428 - Proxy models aren't included
+# when you run dumpdata over an entire app
+
+# Flush out the database first
+>>> management.call_command('reset', 'fixtures_regress', interactive=False, verbosity=0)
+
+# Create an instance of the concrete class
+>>> Widget(name='grommet').save()
+
+# Dump data for the entire app. The proxy class shouldn't be included
+>>> management.call_command('dumpdata', 'fixtures_regress', format='json')
+[{"pk": 1, "model": "fixtures_regress.widget", "fields": {"name": "grommet"}}]
+
"""}
diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py
index f4c416c231..e90d77366f 100644
--- a/tests/regressiontests/mail/tests.py
+++ b/tests/regressiontests/mail/tests.py
@@ -90,8 +90,8 @@ BadHeaderError: Header values can't contain newlines (got u'Subject\nInjection T
# Make sure we can manually set the From header (#9214)
->>> email = EmailMessage('Subject', 'Content', 'bounce@example.com', ['to@example.com'], headers={'From': 'from@example.com'})
->>> message = email.message()
+>>> email = EmailMessage('Subject', 'Content', 'bounce@example.com', ['to@example.com'], headers={'From': 'from@example.com'})
+>>> message = email.message()
>>> message['From']
'from@example.com'
@@ -115,8 +115,7 @@ To: to@example.com
Date: Fri, 09 Nov 2001 01:08:47 -0000
Message-ID: foo
...
-Content-Type: multipart/alternative; boundary="..."
-MIME-Version: 1.0
+Content-Type: multipart/alternative;...
...
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
diff --git a/tests/regressiontests/servers/__init__.py b/tests/regressiontests/servers/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/regressiontests/servers/__init__.py
diff --git a/tests/regressiontests/servers/models.py b/tests/regressiontests/servers/models.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/regressiontests/servers/models.py
diff --git a/tests/regressiontests/servers/tests.py b/tests/regressiontests/servers/tests.py
new file mode 100644
index 0000000000..7621439032
--- /dev/null
+++ b/tests/regressiontests/servers/tests.py
@@ -0,0 +1,67 @@
+"""
+Tests for django.core.servers.
+"""
+
+import os
+
+import django
+from django.test import TestCase
+from django.core.handlers.wsgi import WSGIHandler
+from django.core.servers.basehttp import AdminMediaHandler
+
+
+class AdminMediaHandlerTests(TestCase):
+
+ def setUp(self):
+ self.admin_media_file_path = \
+ os.path.join(django.__path__[0], 'contrib', 'admin', 'media')
+ self.handler = AdminMediaHandler(WSGIHandler())
+
+ def test_media_urls(self):
+ """
+ Tests that URLs that look like absolute file paths after the
+ settings.ADMIN_MEDIA_PREFIX don't turn into absolute file paths.
+ """
+ # Cases that should work on all platforms.
+ data = (
+ ('/media/css/base.css', ('css', 'base.css')),
+ )
+ # Cases that should raise an exception.
+ bad_data = ()
+
+ # Add platform-specific cases.
+ if os.sep == '/':
+ data += (
+ # URL, tuple of relative path parts.
+ ('/media/\\css/base.css', ('\\css', 'base.css')),
+ )
+ bad_data += (
+ '/media//css/base.css',
+ '/media////css/base.css',
+ '/media/../css/base.css',
+ )
+ elif os.sep == '\\':
+ bad_data += (
+ '/media/C:\css/base.css',
+ '/media//\\css/base.css',
+ '/media/\\css/base.css',
+ '/media/\\\\css/base.css'
+ )
+ for url, path_tuple in data:
+ try:
+ output = self.handler.file_path(url)
+ except ValueError:
+ self.fail("Got a ValueError exception, but wasn't expecting"
+ " one. URL was: %s" % url)
+ rel_path = os.path.join(*path_tuple)
+ desired = os.path.normcase(
+ os.path.join(self.admin_media_file_path, rel_path))
+ self.assertEqual(output, desired,
+ "Got: %s, Expected: %s, URL was: %s" % (output, desired, url))
+ for url in bad_data:
+ try:
+ output = self.handler.file_path(url)
+ except ValueError:
+ continue
+ self.fail('URL: %s should have caused a ValueError exception.'
+ % url)