diff options
Diffstat (limited to 'parts/django/tests/regressiontests/views')
41 files changed, 0 insertions, 1270 deletions
diff --git a/parts/django/tests/regressiontests/views/__init__.py b/parts/django/tests/regressiontests/views/__init__.py deleted file mode 100644 index d1c6e08..0000000 --- a/parts/django/tests/regressiontests/views/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf8 -*- - -class BrokenException(Exception): - pass - -except_args = ('Broken!', # plain exception with ASCII text - u'¡Broken!', # non-ASCII unicode data - '¡Broken!', # non-ASCII, utf-8 encoded bytestring - '\xa1Broken!', ) # non-ASCII, latin1 bytestring - diff --git a/parts/django/tests/regressiontests/views/app0/__init__.py b/parts/django/tests/regressiontests/views/app0/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/parts/django/tests/regressiontests/views/app0/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 662204a..0000000 --- a/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.po deleted file mode 100644 index a458935..0000000 --- a/parts/django/tests/regressiontests/views/app0/locale/en/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,20 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 12:41-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "il faut traduire cette chaîne de caractères de app0" -msgstr "this app0 string is to be translated" diff --git a/parts/django/tests/regressiontests/views/app1/__init__.py b/parts/django/tests/regressiontests/views/app1/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/parts/django/tests/regressiontests/views/app1/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 5d6aecb..0000000 --- a/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.po deleted file mode 100644 index a4627db..0000000 --- a/parts/django/tests/regressiontests/views/app1/locale/fr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,20 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 12:41-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "this app1 string is to be translated" -msgstr "il faut traduire cette chaîne de caractères de app1" diff --git a/parts/django/tests/regressiontests/views/app2/__init__.py b/parts/django/tests/regressiontests/views/app2/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/parts/django/tests/regressiontests/views/app2/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 17e1863..0000000 --- a/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 637b9e6..0000000 --- a/parts/django/tests/regressiontests/views/app2/locale/fr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,20 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 22:05-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "this app2 string is to be translated" -msgstr "il faut traduire cette chaîne de caractères de app2" diff --git a/parts/django/tests/regressiontests/views/app3/__init__.py b/parts/django/tests/regressiontests/views/app3/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/parts/django/tests/regressiontests/views/app3/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 0c485a9..0000000 --- a/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.po deleted file mode 100644 index 1e3be0b..0000000 --- a/parts/django/tests/regressiontests/views/app3/locale/es_AR/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,20 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 12:41-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "il faut traduire cette chaîne de caractères de app3" -msgstr "este texto de app3 debe ser traducido" diff --git a/parts/django/tests/regressiontests/views/app4/__init__.py b/parts/django/tests/regressiontests/views/app4/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/parts/django/tests/regressiontests/views/app4/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 581fbb0..0000000 --- a/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.po deleted file mode 100644 index 27403c0..0000000 --- a/parts/django/tests/regressiontests/views/app4/locale/es_AR/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,20 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 12:41-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "il faut traduire cette chaîne de caractères de app4" -msgstr "este texto de app4 debe ser traducido" diff --git a/parts/django/tests/regressiontests/views/fixtures/testdata.json b/parts/django/tests/regressiontests/views/fixtures/testdata.json deleted file mode 100644 index ab68407..0000000 --- a/parts/django/tests/regressiontests/views/fixtures/testdata.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "pk": "1", - "model": "auth.user", - "fields": { - "username": "testclient", - "first_name": "Test", - "last_name": "Client", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2006-12-17 07:03:31", - "groups": [], - "user_permissions": [], - "password": "sha1$6efc0$f93efe9fd7542f25a7be94871ea45aa95de57161", - "email": "testclient@example.com", - "date_joined": "2006-12-17 07:03:31" - } - }, - { - "pk": 1, - "model": "views.author", - "fields": { - "name": "Boris" - } - }, - { - "pk": 1, - "model": "views.article", - "fields": { - "author": 1, - "title": "Old Article", - "slug": "old_article", - "date_created": "2001-01-01 21:22:23" - } - }, - { - "pk": 2, - "model": "views.article", - "fields": { - "author": 1, - "title": "Current Article", - "slug": "current_article", - "date_created": "2007-09-17 21:22:23" - } - }, - { - "pk": 3, - "model": "views.article", - "fields": { - "author": 1, - "title": "Future Article", - "slug": "future_article", - "date_created": "3000-01-01 21:22:23" - } - }, - { - "pk": 1, - "model": "views.urlarticle", - "fields": { - "author": 1, - "title": "Old Article", - "slug": "old_article", - "date_created": "2001-01-01 21:22:23" - } - }, - { - "pk": 1, - "model": "sites.site", - "fields": { - "domain": "testserver", - "name": "testserver" - } - } -] diff --git a/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index b6b0887..0000000 --- a/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.po deleted file mode 100644 index 669af4b..0000000 --- a/parts/django/tests/regressiontests/views/locale/es/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 16:45+0200\n" -"PO-Revision-Date: 2010-05-12 12:57-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: media/js/translate.js:1 -msgid "this is to be translated" -msgstr "esto tiene que ser traducido" - - -msgid "Choose a time" -msgstr "Elige una hora" diff --git a/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 356147c..0000000 --- a/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.po deleted file mode 100644 index 0d03f95..0000000 --- a/parts/django/tests/regressiontests/views/locale/fr/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,24 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 19:15+0200\n" -"PO-Revision-Date: 2010-05-12 12:41-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "this is to be translated" -msgstr "il faut le traduire" - - -msgid "Choose a time" -msgstr "Choisir une heure" diff --git a/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.mo b/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.mo Binary files differdeleted file mode 100644 index 21659a9..0000000 --- a/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.mo +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.po b/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.po deleted file mode 100644 index 4ea193a..0000000 --- a/parts/django/tests/regressiontests/views/locale/ru/LC_MESSAGES/djangojs.po +++ /dev/null @@ -1,24 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-15 16:45+0200\n" -"PO-Revision-Date: 2010-05-12 12:57-0300\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "this is to be translated" -msgstr "перевод" - - -msgid "Choose a time" -msgstr "Выберите время" diff --git a/parts/django/tests/regressiontests/views/media/file.txt b/parts/django/tests/regressiontests/views/media/file.txt deleted file mode 100644 index f1fc82c..0000000 --- a/parts/django/tests/regressiontests/views/media/file.txt +++ /dev/null @@ -1 +0,0 @@ -An example media file.
\ No newline at end of file diff --git a/parts/django/tests/regressiontests/views/media/file.txt.gz b/parts/django/tests/regressiontests/views/media/file.txt.gz Binary files differdeleted file mode 100644 index 0ee7d18..0000000 --- a/parts/django/tests/regressiontests/views/media/file.txt.gz +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/media/file.unknown b/parts/django/tests/regressiontests/views/media/file.unknown deleted file mode 100644 index 77dcda8..0000000 --- a/parts/django/tests/regressiontests/views/media/file.unknown +++ /dev/null @@ -1 +0,0 @@ -An unknown file extension. diff --git a/parts/django/tests/regressiontests/views/models.py b/parts/django/tests/regressiontests/views/models.py deleted file mode 100644 index 54f5c1c..0000000 --- a/parts/django/tests/regressiontests/views/models.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -Regression tests for Django built-in views. -""" - -from django.db import models - -class Author(models.Model): - name = models.CharField(max_length=100) - - def __unicode__(self): - return self.name - - def get_absolute_url(self): - return '/views/authors/%s/' % self.id - -class BaseArticle(models.Model): - """ - An abstract article Model so that we can create article models with and - without a get_absolute_url method (for create_update generic views tests). - """ - title = models.CharField(max_length=100) - slug = models.SlugField() - author = models.ForeignKey(Author) - - class Meta: - abstract = True - - def __unicode__(self): - return self.title - -class Article(BaseArticle): - date_created = models.DateTimeField() - -class UrlArticle(BaseArticle): - """ - An Article class with a get_absolute_url defined. - """ - date_created = models.DateTimeField() - - def get_absolute_url(self): - return '/urlarticles/%s/' % self.slug - get_absolute_url.purge = True - -class DateArticle(BaseArticle): - """ - An article Model with a DateField instead of DateTimeField, - for testing #7602 - """ - date_created = models.DateField() diff --git a/parts/django/tests/regressiontests/views/templates/debug/template_exception.html b/parts/django/tests/regressiontests/views/templates/debug/template_exception.html deleted file mode 100644 index c6b34a8..0000000 --- a/parts/django/tests/regressiontests/views/templates/debug/template_exception.html +++ /dev/null @@ -1,2 +0,0 @@ -{% load debugtags %} -{% go_boom arg %} diff --git a/parts/django/tests/regressiontests/views/templatetags/__init__.py b/parts/django/tests/regressiontests/views/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/parts/django/tests/regressiontests/views/templatetags/__init__.py +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/templatetags/debugtags.py b/parts/django/tests/regressiontests/views/templatetags/debugtags.py deleted file mode 100644 index 9b2c661..0000000 --- a/parts/django/tests/regressiontests/views/templatetags/debugtags.py +++ /dev/null @@ -1,10 +0,0 @@ -from django import template - -from regressiontests.views import BrokenException - -register = template.Library() - -@register.simple_tag -def go_boom(arg): - raise BrokenException(arg) - diff --git a/parts/django/tests/regressiontests/views/tests/__init__.py b/parts/django/tests/regressiontests/views/tests/__init__.py deleted file mode 100644 index 697968e..0000000 --- a/parts/django/tests/regressiontests/views/tests/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from debug import * -from defaults import * -from generic.create_update import * -from generic.date_based import * -from i18n import * -from specials import * -from static import * diff --git a/parts/django/tests/regressiontests/views/tests/debug.py b/parts/django/tests/regressiontests/views/tests/debug.py deleted file mode 100644 index 4ebe37f..0000000 --- a/parts/django/tests/regressiontests/views/tests/debug.py +++ /dev/null @@ -1,50 +0,0 @@ -import inspect - -from django.conf import settings -from django.core.files.uploadedfile import SimpleUploadedFile -from django.test import TestCase -from django.core.urlresolvers import reverse -from django.template import TemplateSyntaxError - -from regressiontests.views import BrokenException, except_args - -class DebugViewTests(TestCase): - def setUp(self): - self.old_debug = settings.DEBUG - settings.DEBUG = True - self.old_template_debug = settings.TEMPLATE_DEBUG - settings.TEMPLATE_DEBUG = True - - def tearDown(self): - settings.DEBUG = self.old_debug - settings.TEMPLATE_DEBUG = self.old_template_debug - - def test_files(self): - response = self.client.get('/views/raises/') - self.assertEquals(response.status_code, 500) - - data = { - 'file_data.txt': SimpleUploadedFile('file_data.txt', 'haha'), - } - response = self.client.post('/views/raises/', data) - self.assertTrue('file_data.txt' in response.content) - self.assertFalse('haha' in response.content) - - def test_404(self): - response = self.client.get('/views/raises404/') - self.assertEquals(response.status_code, 404) - - def test_view_exceptions(self): - for n in range(len(except_args)): - self.assertRaises(BrokenException, self.client.get, - reverse('view_exception', args=(n,))) - - def test_template_exceptions(self): - for n in range(len(except_args)): - try: - self.client.get(reverse('template_exception', args=(n,))) - except TemplateSyntaxError, e: - raising_loc = inspect.trace()[-1][-2][0].strip() - self.assertFalse(raising_loc.find('raise BrokenException') == -1, - "Failed to find 'raise BrokenException' in last frame of traceback, instead found: %s" % - raising_loc) diff --git a/parts/django/tests/regressiontests/views/tests/defaults.py b/parts/django/tests/regressiontests/views/tests/defaults.py deleted file mode 100644 index ffc3471..0000000 --- a/parts/django/tests/regressiontests/views/tests/defaults.py +++ /dev/null @@ -1,85 +0,0 @@ -from os import path - -from django.conf import settings -from django.test import TestCase -from django.contrib.contenttypes.models import ContentType - -from regressiontests.views.models import Author, Article, UrlArticle - -class DefaultsTests(TestCase): - """Test django views in django/views/defaults.py""" - fixtures = ['testdata.json'] - non_existing_urls = ['/views/non_existing_url/', # this is in urls.py - '/views/other_non_existing_url/'] # this NOT in urls.py - - def test_shortcut_with_absolute_url(self): - "Can view a shortcut for an Author object that has a get_absolute_url method" - for obj in Author.objects.all(): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, obj.pk) - response = self.client.get(short_url) - self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(), - status_code=302, target_status_code=404) - - def test_shortcut_no_absolute_url(self): - "Shortcuts for an object that has no get_absolute_url method raises 404" - for obj in Article.objects.all(): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Article).id, obj.pk) - response = self.client.get(short_url) - self.assertEquals(response.status_code, 404) - - def test_wrong_type_pk(self): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, 'nobody/expects') - response = self.client.get(short_url) - self.assertEquals(response.status_code, 404) - - def test_shortcut_bad_pk(self): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, '42424242') - response = self.client.get(short_url) - self.assertEquals(response.status_code, 404) - - def test_nonint_content_type(self): - an_author = Author.objects.all()[0] - short_url = '/views/shortcut/%s/%s/' % ('spam', an_author.pk) - response = self.client.get(short_url) - self.assertEquals(response.status_code, 404) - - def test_bad_content_type(self): - an_author = Author.objects.all()[0] - short_url = '/views/shortcut/%s/%s/' % (42424242, an_author.pk) - response = self.client.get(short_url) - self.assertEquals(response.status_code, 404) - - def test_page_not_found(self): - "A 404 status is returned by the page_not_found view" - for url in self.non_existing_urls: - response = self.client.get(url) - self.assertEquals(response.status_code, 404) - - def test_csrf_token_in_404(self): - """ - The 404 page should have the csrf_token available in the context - """ - # See ticket #14565 - old_DEBUG = settings.DEBUG - try: - settings.DEBUG = False # so we get real 404, not technical - for url in self.non_existing_urls: - response = self.client.get(url) - csrf_token = response.context['csrf_token'] - self.assertNotEqual(str(csrf_token), 'NOTPROVIDED') - self.assertNotEqual(str(csrf_token), '') - finally: - settings.DEBUG = old_DEBUG - - def test_server_error(self): - "The server_error view raises a 500 status" - response = self.client.get('/views/server_error/') - self.assertEquals(response.status_code, 500) - - def test_get_absolute_url_attributes(self): - "A model can set attributes on the get_absolute_url method" - self.assertTrue(getattr(UrlArticle.get_absolute_url, 'purge', False), - 'The attributes of the original get_absolute_url must be added.') - article = UrlArticle.objects.get(pk=1) - self.assertTrue(getattr(article.get_absolute_url, 'purge', False), - 'The attributes of the original get_absolute_url must be added.') diff --git a/parts/django/tests/regressiontests/views/tests/generic/__init__.py b/parts/django/tests/regressiontests/views/tests/generic/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/parts/django/tests/regressiontests/views/tests/generic/__init__.py +++ /dev/null diff --git a/parts/django/tests/regressiontests/views/tests/generic/create_update.py b/parts/django/tests/regressiontests/views/tests/generic/create_update.py deleted file mode 100644 index 4ba1c35..0000000 --- a/parts/django/tests/regressiontests/views/tests/generic/create_update.py +++ /dev/null @@ -1,211 +0,0 @@ -import datetime - -from django.test import TestCase -from django.core.exceptions import ImproperlyConfigured -from regressiontests.views.models import Article, UrlArticle - -class CreateObjectTest(TestCase): - - fixtures = ['testdata.json'] - - def test_login_required_view(self): - """ - Verifies that an unauthenticated user attempting to access a - login_required view gets redirected to the login page and that - an authenticated user is let through. - """ - view_url = '/views/create_update/member/create/article/' - response = self.client.get(view_url) - self.assertRedirects(response, '/accounts/login/?next=%s' % view_url) - # Now login and try again. - login = self.client.login(username='testclient', password='password') - self.assertTrue(login, 'Could not log in') - response = self.client.get(view_url) - self.assertEqual(response.status_code, 200) - self.assertTemplateUsed(response, 'views/article_form.html') - - def test_create_article_display_page(self): - """ - Ensures the generic view returned the page and contains a form. - """ - view_url = '/views/create_update/create/article/' - response = self.client.get(view_url) - self.assertEqual(response.status_code, 200) - self.assertTemplateUsed(response, 'views/article_form.html') - if not response.context.get('form'): - self.fail('No form found in the response.') - - def test_create_article_with_errors(self): - """ - POSTs a form that contains validation errors. - """ - view_url = '/views/create_update/create/article/' - num_articles = Article.objects.count() - response = self.client.post(view_url, { - 'title': 'My First Article', - }) - self.assertFormError(response, 'form', 'slug', [u'This field is required.']) - self.assertTemplateUsed(response, 'views/article_form.html') - self.assertEqual(num_articles, Article.objects.count(), - "Number of Articles should not have changed.") - - def test_create_custom_save_article(self): - """ - Creates a new article using a custom form class with a save method - that alters the slug entered. - """ - view_url = '/views/create_update/create_custom/article/' - response = self.client.post(view_url, { - 'title': 'Test Article', - 'slug': 'this-should-get-replaced', - 'author': 1, - 'date_created': datetime.datetime(2007, 6, 25), - }) - self.assertRedirects(response, - '/views/create_update/view/article/some-other-slug/', - target_status_code=404) - -class UpdateDeleteObjectTest(TestCase): - - fixtures = ['testdata.json'] - - def test_update_object_form_display(self): - """ - Verifies that the form was created properly and with initial values. - """ - response = self.client.get('/views/create_update/update/article/old_article/') - self.assertTemplateUsed(response, 'views/article_form.html') - self.assertEquals(unicode(response.context['form']['title']), - u'<input id="id_title" type="text" name="title" value="Old Article" maxlength="100" />') - - def test_update_object(self): - """ - Verifies the updating of an Article. - """ - response = self.client.post('/views/create_update/update/article/old_article/', { - 'title': 'Another Article', - 'slug': 'another-article-slug', - 'author': 1, - 'date_created': datetime.datetime(2007, 6, 25), - }) - article = Article.objects.get(pk=1) - self.assertEquals(article.title, "Another Article") - - def test_delete_object_confirm(self): - """ - Verifies the confirm deletion page is displayed using a GET. - """ - response = self.client.get('/views/create_update/delete/article/old_article/') - self.assertTemplateUsed(response, 'views/article_confirm_delete.html') - - def test_delete_object(self): - """ - Verifies the object actually gets deleted on a POST. - """ - view_url = '/views/create_update/delete/article/old_article/' - response = self.client.post(view_url) - try: - Article.objects.get(slug='old_article') - except Article.DoesNotExist: - pass - else: - self.fail('Object was not deleted.') - -class PostSaveRedirectTests(TestCase): - """ - Verifies that the views redirect to the correct locations depending on - if a post_save_redirect was passed and a get_absolute_url method exists - on the Model. - """ - - fixtures = ['testdata.json'] - article_model = Article - - create_url = '/views/create_update/create/article/' - update_url = '/views/create_update/update/article/old_article/' - delete_url = '/views/create_update/delete/article/old_article/' - - create_redirect = '/views/create_update/view/article/my-first-article/' - update_redirect = '/views/create_update/view/article/another-article-slug/' - delete_redirect = '/views/create_update/' - - def test_create_article(self): - num_articles = self.article_model.objects.count() - response = self.client.post(self.create_url, { - 'title': 'My First Article', - 'slug': 'my-first-article', - 'author': '1', - 'date_created': datetime.datetime(2007, 6, 25), - }) - self.assertRedirects(response, self.create_redirect, - target_status_code=404) - self.assertEqual(num_articles + 1, self.article_model.objects.count(), - "A new Article should have been created.") - - def test_update_article(self): - num_articles = self.article_model.objects.count() - response = self.client.post(self.update_url, { - 'title': 'Another Article', - 'slug': 'another-article-slug', - 'author': 1, - 'date_created': datetime.datetime(2007, 6, 25), - }) - self.assertRedirects(response, self.update_redirect, - target_status_code=404) - self.assertEqual(num_articles, self.article_model.objects.count(), - "A new Article should not have been created.") - - def test_delete_article(self): - num_articles = self.article_model.objects.count() - response = self.client.post(self.delete_url) - self.assertRedirects(response, self.delete_redirect, - target_status_code=404) - self.assertEqual(num_articles - 1, self.article_model.objects.count(), - "An Article should have been deleted.") - -class NoPostSaveNoAbsoluteUrl(PostSaveRedirectTests): - """ - Tests that when no post_save_redirect is passed and no get_absolute_url - method exists on the Model that the view raises an ImproperlyConfigured - error. - """ - - create_url = '/views/create_update/no_redirect/create/article/' - update_url = '/views/create_update/no_redirect/update/article/old_article/' - - def test_create_article(self): - self.assertRaises(ImproperlyConfigured, - super(NoPostSaveNoAbsoluteUrl, self).test_create_article) - - def test_update_article(self): - self.assertRaises(ImproperlyConfigured, - super(NoPostSaveNoAbsoluteUrl, self).test_update_article) - - def test_delete_article(self): - """ - The delete_object view requires a post_delete_redirect, so skip testing - here. - """ - pass - -class AbsoluteUrlNoPostSave(PostSaveRedirectTests): - """ - Tests that the views redirect to the Model's get_absolute_url when no - post_save_redirect is passed. - """ - - # Article model with get_absolute_url method. - article_model = UrlArticle - - create_url = '/views/create_update/no_url/create/article/' - update_url = '/views/create_update/no_url/update/article/old_article/' - - create_redirect = '/urlarticles/my-first-article/' - update_redirect = '/urlarticles/another-article-slug/' - - def test_delete_article(self): - """ - The delete_object view requires a post_delete_redirect, so skip testing - here. - """ - pass diff --git a/parts/django/tests/regressiontests/views/tests/generic/date_based.py b/parts/django/tests/regressiontests/views/tests/generic/date_based.py deleted file mode 100644 index c6ba562..0000000 --- a/parts/django/tests/regressiontests/views/tests/generic/date_based.py +++ /dev/null @@ -1,140 +0,0 @@ -# coding: utf-8 -from django.test import TestCase -from datetime import datetime, date -from datetime import timedelta -from regressiontests.views.models import Article, Author, DateArticle - -class ObjectDetailTest(TestCase): - fixtures = ['testdata.json'] - def setUp(self): - # Correct the date for the current article - current_article = Article.objects.get(title="Current Article") - current_article.date_created = datetime.now() - current_article.save() - - def test_finds_past(self): - "date_based.object_detail can view a page in the past" - response = self.client.get('/views/date_based/object_detail/2001/01/01/old_article/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['object'].title, "Old Article") - - def test_object_detail_finds_today(self): - "date_based.object_detail can view a page from today" - today_url = datetime.now().strftime('%Y/%m/%d') - response = self.client.get('/views/date_based/object_detail/%s/current_article/' % today_url) - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['object'].title, "Current Article") - - def test_object_detail_ignores_future(self): - "date_based.object_detail can view a page from the future, but only if allowed." - response = self.client.get('/views/date_based/object_detail/3000/01/01/future_article/') - self.assertEqual(response.status_code, 404) - - def test_object_detail_allowed_future_if_enabled(self): - "date_based.object_detail can view a page from the future if explicitly allowed." - response = self.client.get('/views/date_based/object_detail/3000/01/01/future_article/allow_future/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['object'].title, "Future Article") - -class MonthArchiveTest(TestCase): - def test_archive_month_includes_only_month(self): - "Regression for #3031: Archives around Feburary include only one month" - author = Author(name="John Smith") - author.save() - - # 2004 was a leap year, so it should be weird enough to not cheat - first_second_of_feb = datetime(2004, 2, 1, 0, 0, 1) - first_second_of_mar = datetime(2004, 3, 1, 0, 0, 1) - two_seconds = timedelta(0, 2, 0) - article = Article(title="example", author=author) - - article.date_created = first_second_of_feb - article.save() - response = self.client.get('/views/date_based/archive_month/2004/02/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['next_month'], date(2004, 3, 1)) - self.assertEqual(response.context['previous_month'], date(2004, 1, 1)) - - article.date_created = first_second_of_feb-two_seconds - article.save() - response = self.client.get('/views/date_based/archive_month/2004/02/') - self.assertEqual(response.status_code, 404) - - article.date_created = first_second_of_mar-two_seconds - article.save() - response = self.client.get('/views/date_based/archive_month/2004/02/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['next_month'], date(2004, 3, 1)) - self.assertEqual(response.context['previous_month'], date(2004, 1, 1)) - - article.date_created = first_second_of_mar - article.save() - response = self.client.get('/views/date_based/archive_month/2004/02/') - self.assertEqual(response.status_code, 404) - - article2 = DateArticle(title="example", author=author) - - article2.date_created = first_second_of_feb.date() - article2.save() - response = self.client.get('/views/date_based/datefield/archive_month/2004/02/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['next_month'], date(2004, 3, 1)) - self.assertEqual(response.context['previous_month'], date(2004, 1, 1)) - - article2.date_created = (first_second_of_feb-two_seconds).date() - article2.save() - response = self.client.get('/views/date_based/datefield/archive_month/2004/02/') - self.assertEqual(response.status_code, 404) - - article2.date_created = (first_second_of_mar-two_seconds).date() - article2.save() - response = self.client.get('/views/date_based/datefield/archive_month/2004/02/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['next_month'], date(2004, 3, 1)) - self.assertEqual(response.context['previous_month'], date(2004, 1, 1)) - - article2.date_created = first_second_of_mar.date() - article2.save() - response = self.client.get('/views/date_based/datefield/archive_month/2004/02/') - self.assertEqual(response.status_code, 404) - - now = datetime.now() - prev_month = now.date().replace(day=1) - if prev_month.month == 1: - prev_month = prev_month.replace(year=prev_month.year-1, month=12) - else: - prev_month = prev_month.replace(month=prev_month.month-1) - article2.date_created = now - article2.save() - response = self.client.get('/views/date_based/datefield/archive_month/%s/' % now.strftime('%Y/%m')) - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['next_month'], None) - self.assertEqual(response.context['previous_month'], prev_month) - - def test_archive_month_date_list(self): - author = Author(name="John Smith") - author.save() - date1 = datetime(2010, 1, 1, 0, 0, 0) - date2 = datetime(2010, 1, 2, 0, 0, 0) - Article.objects.create(title='example1', author=author, date_created=date1) - Article.objects.create(title='example2', author=author, date_created=date2) - response = self.client.get('/views/date_based/archive_month/2010/1/') - self.assertEqual(response.status_code, 200) - self.assertEqual(len(response.context['date_list']), 2) - self.assertEqual(response.context['date_list'][0], date1) - # Checks that the same date is not included more than once in the list - Article.objects.create(title='example2', author=author, date_created=date2) - response = self.client.get('/views/date_based/archive_month/2010/1/') - self.assertEqual(len(response.context['date_list']), 2) - -class DayArchiveTests(TestCase): - - def test_year_month_day_format(self): - """ - Make sure day views don't get confused with numeric month formats (#7944) - """ - author = Author.objects.create(name="John Smith") - article = Article.objects.create(title="example", author=author, date_created=datetime(2004, 1, 21, 0, 0, 1)) - response = self.client.get('/views/date_based/archive_day/2004/1/21/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['object_list'][0], article) diff --git a/parts/django/tests/regressiontests/views/tests/i18n.py b/parts/django/tests/regressiontests/views/tests/i18n.py deleted file mode 100644 index 24aa933..0000000 --- a/parts/django/tests/regressiontests/views/tests/i18n.py +++ /dev/null @@ -1,149 +0,0 @@ -# -*- coding:utf-8 -*- -import gettext - -from django.conf import settings -from django.test import TestCase -from django.utils.translation import activate, deactivate -from django.utils.text import javascript_quote - -from regressiontests.views.urls import locale_dir - -class I18NTests(TestCase): - """ Tests django views in django/views/i18n.py """ - - def test_setlang(self): - """The set_language view can be used to change the session language""" - for lang_code, lang_name in settings.LANGUAGES: - post_data = dict(language=lang_code, next='/views/') - response = self.client.post('/views/i18n/setlang/', data=post_data) - self.assertRedirects(response, 'http://testserver/views/') - self.assertEquals(self.client.session['django_language'], lang_code) - - def test_jsi18n(self): - """The javascript_catalog can be deployed with language settings""" - for lang_code in ['es', 'fr', 'ru']: - activate(lang_code) - catalog = gettext.translation('djangojs', locale_dir, [lang_code]) - trans_txt = catalog.ugettext('this is to be translated') - response = self.client.get('/views/jsi18n/') - # in response content must to be a line like that: - # catalog['this is to be translated'] = 'same_that_trans_txt' - # javascript_quote is used to be able to check unicode strings - self.assertContains(response, javascript_quote(trans_txt), 1) - - -class JsI18NTests(TestCase): - """ - Tests django views in django/views/i18n.py that need to change - settings.LANGUAGE_CODE. - """ - - def setUp(self): - self.old_language_code = settings.LANGUAGE_CODE - self.old_installed_apps = settings.INSTALLED_APPS - - def tearDown(self): - deactivate() - settings.LANGUAGE_CODE = self.old_language_code - settings.INSTALLED_APPS = self.old_installed_apps - - def test_jsi18n_with_missing_en_files(self): - """ - The javascript_catalog shouldn't load the fallback language in the - case that the current selected language is actually the one translated - from, and hence missing translation files completely. - - This happens easily when you're translating from English to other - languages and you've set settings.LANGUAGE_CODE to some other language - than English. - """ - settings.LANGUAGE_CODE = 'es' - activate('en-us') - response = self.client.get('/views/jsi18n/') - self.assertNotContains(response, 'esto tiene que ser traducido') - - def test_jsi18n_fallback_language(self): - """ - Let's make sure that the fallback language is still working properly - in cases where the selected language cannot be found. - """ - settings.LANGUAGE_CODE = 'fr' - activate('fi') - response = self.client.get('/views/jsi18n/') - self.assertContains(response, 'il faut le traduire') - - def testI18NLanguageNonEnglishDefault(self): - """ - Check if the Javascript i18n view returns an empty language catalog - if the default language is non-English, the selected language - is English and there is not 'en' translation available. See #13388, - #3594 and #13726 for more details. - """ - settings.LANGUAGE_CODE = 'fr' - activate('en-us') - response = self.client.get('/views/jsi18n/') - self.assertNotContains(response, 'Choisir une heure') - - def test_nonenglish_default_english_userpref(self): - """ - Same as above with the difference that there IS an 'en' translation - available. The Javascript i18n view must return a NON empty language catalog - with the proper English translations. See #13726 for more details. - """ - settings.LANGUAGE_CODE = 'fr' - settings.INSTALLED_APPS = list(settings.INSTALLED_APPS) + ['regressiontests.views.app0'] - activate('en-us') - response = self.client.get('/views/jsi18n_english_translation/') - self.assertContains(response, javascript_quote('this app0 string is to be translated')) - - def testI18NLanguageNonEnglishFallback(self): - """ - Makes sure that the fallback language is still working properly - in cases where the selected language cannot be found. - """ - settings.LANGUAGE_CODE = 'fr' - activate('none') - response = self.client.get('/views/jsi18n/') - self.assertContains(response, 'Choisir une heure') - - -class JsI18NTestsMultiPackage(TestCase): - """ - Tests for django views in django/views/i18n.py that need to change - settings.LANGUAGE_CODE and merge JS translation from several packages. - """ - - def setUp(self): - self.old_language_code = settings.LANGUAGE_CODE - self.old_installed_apps = settings.INSTALLED_APPS - - def tearDown(self): - settings.LANGUAGE_CODE = self.old_language_code - settings.INSTALLED_APPS = self.old_installed_apps - - def testI18NLanguageEnglishDefault(self): - """ - Check if the JavaScript i18n view returns a complete language catalog - if the default language is en-us, the selected language has a - translation available and a catalog composed by djangojs domain - translations of multiple Python packages is requested. See #13388, - #3594 and #13514 for more details. - """ - settings.LANGUAGE_CODE = 'en-us' - settings.INSTALLED_APPS = list(settings.INSTALLED_APPS) + ['regressiontests.views.app1', 'regressiontests.views.app2'] - activate('fr') - response = self.client.get('/views/jsi18n_multi_packages1/') - self.assertContains(response, javascript_quote('il faut traduire cette chaîne de caractères de app1')) - deactivate() - - def testI18NDifferentNonEnLangs(self): - """ - Similar to above but with neither default or requested language being - English. - """ - settings.LANGUAGE_CODE = 'fr' - settings.INSTALLED_APPS = list(settings.INSTALLED_APPS) + ['regressiontests.views.app3', 'regressiontests.views.app4'] - activate('es-ar') - response = self.client.get('/views/jsi18n_multi_packages2/') - self.assertContains(response, javascript_quote('este texto de app3 debe ser traducido')) - deactivate() diff --git a/parts/django/tests/regressiontests/views/tests/specials.py b/parts/django/tests/regressiontests/views/tests/specials.py deleted file mode 100644 index bcdffca..0000000 --- a/parts/django/tests/regressiontests/views/tests/specials.py +++ /dev/null @@ -1,35 +0,0 @@ -# coding: utf-8 -from django.test import TestCase - -class URLHandling(TestCase): - """ - Tests for URL handling in views and responses. - """ - redirect_target = "/views/%E4%B8%AD%E6%96%87/target/" - - def test_combining_redirect(self): - """ - Tests that redirecting to an IRI, requiring encoding before we use it - in an HTTP response, is handled correctly. In this case the arg to - HttpRedirect is ASCII but the current request path contains non-ASCII - characters so this test ensures the creation of the full path with a - base non-ASCII part is handled correctly. - """ - response = self.client.get(u'/views/中文/') - self.assertRedirects(response, self.redirect_target) - - def test_nonascii_redirect(self): - """ - Tests that a non-ASCII argument to HttpRedirect is handled properly. - """ - response = self.client.get('/views/nonascii_redirect/') - self.assertRedirects(response, self.redirect_target) - - def test_permanent_nonascii_redirect(self): - """ - Tests that a non-ASCII argument to HttpPermanentRedirect is handled - properly. - """ - response = self.client.get('/views/permanent_nonascii_redirect/') - self.assertRedirects(response, self.redirect_target, status_code=301) - diff --git a/parts/django/tests/regressiontests/views/tests/static.py b/parts/django/tests/regressiontests/views/tests/static.py deleted file mode 100644 index de0bd51..0000000 --- a/parts/django/tests/regressiontests/views/tests/static.py +++ /dev/null @@ -1,77 +0,0 @@ -import mimetypes -from os import path - -from django.test import TestCase -from django.http import HttpResponseNotModified -from regressiontests.views.urls import media_dir - -class StaticTests(TestCase): - """Tests django views in django/views/static.py""" - - def test_serve(self): - "The static view can serve static media" - media_files = ['file.txt', 'file.txt.gz'] - for filename in media_files: - response = self.client.get('/views/site_media/%s' % filename) - file_path = path.join(media_dir, filename) - self.assertEquals(open(file_path).read(), response.content) - self.assertEquals(len(response.content), int(response['Content-Length'])) - self.assertEquals(mimetypes.guess_type(file_path)[1], response.get('Content-Encoding', None)) - - def test_unknown_mime_type(self): - response = self.client.get('/views/site_media/file.unknown') - self.assertEquals('application/octet-stream', response['Content-Type']) - - def test_copes_with_empty_path_component(self): - file_name = 'file.txt' - response = self.client.get('/views/site_media//%s' % file_name) - file = open(path.join(media_dir, file_name)) - self.assertEquals(file.read(), response.content) - - def test_is_modified_since(self): - file_name = 'file.txt' - response = self.client.get( - '/views/site_media/%s' % file_name, - HTTP_IF_MODIFIED_SINCE='Thu, 1 Jan 1970 00:00:00 GMT') - file = open(path.join(media_dir, file_name)) - self.assertEquals(file.read(), response.content) - - def test_not_modified_since(self): - file_name = 'file.txt' - response = self.client.get( - '/views/site_media/%s' % file_name, - HTTP_IF_MODIFIED_SINCE='Mon, 18 Jan 2038 05:14:07 UTC' - # This is 24h before max Unix time. Remember to fix Django and - # update this test well before 2038 :) - ) - self.assertTrue(isinstance(response, HttpResponseNotModified)) - - def test_invalid_if_modified_since(self): - """Handle bogus If-Modified-Since values gracefully - - Assume that a file is modified since an invalid timestamp as per RFC - 2616, section 14.25. - """ - file_name = 'file.txt' - invalid_date = 'Mon, 28 May 999999999999 28:25:26 GMT' - response = self.client.get('/views/site_media/%s' % file_name, - HTTP_IF_MODIFIED_SINCE=invalid_date) - file = open(path.join(media_dir, file_name)) - self.assertEquals(file.read(), response.content) - self.assertEquals(len(response.content), - int(response['Content-Length'])) - - def test_invalid_if_modified_since2(self): - """Handle even more bogus If-Modified-Since values gracefully - - Assume that a file is modified since an invalid timestamp as per RFC - 2616, section 14.25. - """ - file_name = 'file.txt' - invalid_date = ': 1291108438, Wed, 20 Oct 2010 14:05:00 GMT' - response = self.client.get('/views/site_media/%s' % file_name, - HTTP_IF_MODIFIED_SINCE=invalid_date) - file = open(path.join(media_dir, file_name)) - self.assertEquals(file.read(), response.content) - self.assertEquals(len(response.content), - int(response['Content-Length'])) diff --git a/parts/django/tests/regressiontests/views/urls.py b/parts/django/tests/regressiontests/views/urls.py deleted file mode 100644 index 0ccb988..0000000 --- a/parts/django/tests/regressiontests/views/urls.py +++ /dev/null @@ -1,131 +0,0 @@ -# coding: utf-8 -from os import path - -from django.conf.urls.defaults import * - -from models import * -import views - - -base_dir = path.dirname(path.abspath(__file__)) -media_dir = path.join(base_dir, 'media') -locale_dir = path.join(base_dir, 'locale') - -js_info_dict = { - 'domain': 'djangojs', - 'packages': ('regressiontests.views',), -} - -js_info_dict_english_translation = { - 'domain': 'djangojs', - 'packages': ('regressiontests.views.app0',), -} - -js_info_dict_multi_packages1 = { - 'domain': 'djangojs', - 'packages': ('regressiontests.views.app1', 'regressiontests.views.app2'), -} - -js_info_dict_multi_packages2 = { - 'domain': 'djangojs', - 'packages': ('regressiontests.views.app3', 'regressiontests.views.app4'), -} - -date_based_info_dict = { - 'queryset': Article.objects.all(), - 'date_field': 'date_created', - 'month_format': '%m', -} -numeric_days_info_dict = dict(date_based_info_dict, day_format='%d') - -date_based_datefield_info_dict = dict(date_based_info_dict, queryset=DateArticle.objects.all()) - -urlpatterns = patterns('', - (r'^$', views.index_page), - - # Default views - (r'^shortcut/(\d+)/(.*)/$', 'django.views.defaults.shortcut'), - (r'^non_existing_url/', 'django.views.defaults.page_not_found'), - (r'^server_error/', 'django.views.defaults.server_error'), - - # i18n views - (r'^i18n/', include('django.conf.urls.i18n')), - (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), - (r'^jsi18n_english_translation/$', 'django.views.i18n.javascript_catalog', js_info_dict_english_translation), - (r'^jsi18n_multi_packages1/$', 'django.views.i18n.javascript_catalog', js_info_dict_multi_packages1), - (r'^jsi18n_multi_packages2/$', 'django.views.i18n.javascript_catalog', js_info_dict_multi_packages2), - - # Static views - (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': media_dir}), - - # Special URLs for particular regression cases. - url(u'^中文/$', 'regressiontests.views.views.redirect'), - url(u'^中文/target/$', 'regressiontests.views.views.index_page'), -) - -# Date-based generic views. -urlpatterns += patterns('django.views.generic.date_based', - (r'^date_based/object_detail/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', - 'object_detail', - dict(slug_field='slug', **date_based_info_dict)), - (r'^date_based/object_detail/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/allow_future/$', - 'object_detail', - dict(allow_future=True, slug_field='slug', **date_based_info_dict)), - (r'^date_based/archive_day/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', - 'archive_day', - numeric_days_info_dict), - (r'^date_based/archive_month/(?P<year>\d{4})/(?P<month>\d{1,2})/$', - 'archive_month', - date_based_info_dict), - (r'^date_based/datefield/archive_month/(?P<year>\d{4})/(?P<month>\d{1,2})/$', - 'archive_month', - date_based_datefield_info_dict), -) - -# crud generic views. - -urlpatterns += patterns('django.views.generic.create_update', - (r'^create_update/member/create/article/$', 'create_object', - dict(login_required=True, model=Article)), - (r'^create_update/create/article/$', 'create_object', - dict(post_save_redirect='/views/create_update/view/article/%(slug)s/', - model=Article)), - (r'^create_update/update/article/(?P<slug>[-\w]+)/$', 'update_object', - dict(post_save_redirect='/views/create_update/view/article/%(slug)s/', - slug_field='slug', model=Article)), - (r'^create_update/create_custom/article/$', views.custom_create), - (r'^create_update/delete/article/(?P<slug>[-\w]+)/$', 'delete_object', - dict(post_delete_redirect='/views/create_update/', slug_field='slug', - model=Article)), - - # No post_save_redirect and no get_absolute_url on model. - (r'^create_update/no_redirect/create/article/$', 'create_object', - dict(model=Article)), - (r'^create_update/no_redirect/update/article/(?P<slug>[-\w]+)/$', - 'update_object', dict(slug_field='slug', model=Article)), - - # get_absolute_url on model, but no passed post_save_redirect. - (r'^create_update/no_url/create/article/$', 'create_object', - dict(model=UrlArticle)), - (r'^create_update/no_url/update/article/(?P<slug>[-\w]+)/$', - 'update_object', dict(slug_field='slug', model=UrlArticle)), -) - -# a view that raises an exception for the debug view -urlpatterns += patterns('', - (r'^raises/$', views.raises), - (r'^raises404/$', views.raises404), -) - -# rediriects, both temporary and permanent, with non-ASCII targets -urlpatterns += patterns('django.views.generic.simple', - ('^nonascii_redirect/$', 'redirect_to', - {'url': u'/views/中文/target/', 'permanent': False}), - ('^permanent_nonascii_redirect/$', 'redirect_to', - {'url': u'/views/中文/target/', 'permanent': True}), -) - -urlpatterns += patterns('regressiontests.views.views', - url(r'view_exception/(?P<n>\d+)/$', 'view_exception', name='view_exception'), - url(r'template_exception/(?P<n>\d+)/$', 'template_exception', name='template_exception'), -) diff --git a/parts/django/tests/regressiontests/views/views.py b/parts/django/tests/regressiontests/views/views.py deleted file mode 100644 index 445b4ed..0000000 --- a/parts/django/tests/regressiontests/views/views.py +++ /dev/null @@ -1,59 +0,0 @@ -import sys - -from django.http import HttpResponse, HttpResponseRedirect -from django import forms -from django.views.debug import technical_500_response -from django.views.generic.create_update import create_object -from django.core.urlresolvers import get_resolver -from django.shortcuts import render_to_response - -from regressiontests.views import BrokenException, except_args - -from models import Article - - -def index_page(request): - """Dummy index page""" - return HttpResponse('<html><body>Dummy page</body></html>') - -def custom_create(request): - """ - Calls create_object generic view with a custom form class. - """ - class SlugChangingArticleForm(forms.ModelForm): - """Custom form class to overwrite the slug.""" - - class Meta: - model = Article - - def save(self, *args, **kwargs): - self.instance.slug = 'some-other-slug' - return super(SlugChangingArticleForm, self).save(*args, **kwargs) - - return create_object(request, - post_save_redirect='/views/create_update/view/article/%(slug)s/', - form_class=SlugChangingArticleForm) - -def raises(request): - try: - raise Exception - except Exception: - return technical_500_response(request, *sys.exc_info()) - -def raises404(request): - resolver = get_resolver(None) - resolver.resolve('') - -def redirect(request): - """ - Forces an HTTP redirect. - """ - return HttpResponseRedirect("target/") - -def view_exception(request, n): - raise BrokenException(except_args[int(n)]) - -def template_exception(request, n): - return render_to_response('debug/template_exception.html', - {'arg': except_args[int(n)]}) - |