diff options
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/admin_widgets/tests.py | 27 | ||||
| -rw-r--r-- | tests/regressiontests/admin_widgets/urls2.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/fixtures_regress/models.py | 24 | ||||
| -rw-r--r-- | tests/regressiontests/mail/tests.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/servers/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/servers/models.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/servers/tests.py | 67 |
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) |
