mirror of https://github.com/django/django.git
Changed django.forms.ValidationError imports to django.core.exceptions.ValidationError.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
This commit is contained in:
parent
2788de95e3
commit
9ef4a18dbe
|
@ -1,5 +1,5 @@
|
|||
from django import forms
|
||||
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ class AdminAuthenticationForm(AuthenticationForm):
|
|||
def confirm_login_allowed(self, user):
|
||||
super().confirm_login_allowed(user)
|
||||
if not user.is_staff:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid_login'],
|
||||
code='invalid_login',
|
||||
params={'username': self.username_field.verbose_name}
|
||||
|
|
|
@ -10,6 +10,7 @@ from django.contrib.auth.hashers import (
|
|||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.tokens import default_token_generator
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
from django.template import loader
|
||||
from django.utils.encoding import force_bytes
|
||||
|
@ -113,7 +114,7 @@ class UserCreationForm(forms.ModelForm):
|
|||
password1 = self.cleaned_data.get("password1")
|
||||
password2 = self.cleaned_data.get("password2")
|
||||
if password1 and password2 and password1 != password2:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['password_mismatch'],
|
||||
code='password_mismatch',
|
||||
)
|
||||
|
@ -127,7 +128,7 @@ class UserCreationForm(forms.ModelForm):
|
|||
if password:
|
||||
try:
|
||||
password_validation.validate_password(password, self.instance)
|
||||
except forms.ValidationError as error:
|
||||
except ValidationError as error:
|
||||
self.add_error('password2', error)
|
||||
|
||||
def save(self, commit=True):
|
||||
|
@ -226,12 +227,12 @@ class AuthenticationForm(forms.Form):
|
|||
allow login by active users, and reject login by inactive users.
|
||||
|
||||
If the given user cannot log in, this method should raise a
|
||||
``forms.ValidationError``.
|
||||
``ValidationError``.
|
||||
|
||||
If the given user may log in, this method should return None.
|
||||
"""
|
||||
if not user.is_active:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['inactive'],
|
||||
code='inactive',
|
||||
)
|
||||
|
@ -240,7 +241,7 @@ class AuthenticationForm(forms.Form):
|
|||
return self.user_cache
|
||||
|
||||
def get_invalid_login_error(self):
|
||||
return forms.ValidationError(
|
||||
return ValidationError(
|
||||
self.error_messages['invalid_login'],
|
||||
code='invalid_login',
|
||||
params={'username': self.username_field.verbose_name},
|
||||
|
@ -354,7 +355,7 @@ class SetPasswordForm(forms.Form):
|
|||
password2 = self.cleaned_data.get('new_password2')
|
||||
if password1 and password2:
|
||||
if password1 != password2:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['password_mismatch'],
|
||||
code='password_mismatch',
|
||||
)
|
||||
|
@ -392,7 +393,7 @@ class PasswordChangeForm(SetPasswordForm):
|
|||
"""
|
||||
old_password = self.cleaned_data["old_password"]
|
||||
if not self.user.check_password(old_password):
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['password_incorrect'],
|
||||
code='password_incorrect',
|
||||
)
|
||||
|
@ -429,7 +430,7 @@ class AdminPasswordChangeForm(forms.Form):
|
|||
password2 = self.cleaned_data.get('password2')
|
||||
if password1 and password2:
|
||||
if password1 != password2:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['password_mismatch'],
|
||||
code='password_mismatch',
|
||||
)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext, gettext_lazy as _
|
||||
|
||||
|
||||
|
@ -38,12 +39,12 @@ class FlatpageForm(forms.ModelForm):
|
|||
def clean_url(self):
|
||||
url = self.cleaned_data['url']
|
||||
if not url.startswith('/'):
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
gettext("URL is missing a leading slash."),
|
||||
code='missing_leading_slash',
|
||||
)
|
||||
if self._trailing_slash_required() and not url.endswith('/'):
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
gettext("URL is missing a trailing slash."),
|
||||
code='missing_trailing_slash',
|
||||
)
|
||||
|
@ -60,7 +61,7 @@ class FlatpageForm(forms.ModelForm):
|
|||
if sites and same_url.filter(sites__in=sites).exists():
|
||||
for site in sites:
|
||||
if same_url.filter(sites=site).exists():
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
_('Flatpage with url %(url)s already exists for site %(site)s'),
|
||||
code='duplicate_url',
|
||||
params={'url': url, 'site': site},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import struct
|
||||
|
||||
from django.forms import ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from .const import (
|
||||
BANDTYPE_FLAG_HASNODATA, BANDTYPE_PIXTYPE_MASK, GDAL_TO_POSTGIS,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from django import forms
|
||||
from django.contrib.gis.gdal import GDALException
|
||||
from django.contrib.gis.geos import GEOSException, GEOSGeometry
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .widgets import OpenLayersWidget
|
||||
|
@ -47,7 +48,7 @@ class GeometryField(forms.Field):
|
|||
except (GEOSException, ValueError, TypeError):
|
||||
value = None
|
||||
if value is None:
|
||||
raise forms.ValidationError(self.error_messages['invalid_geom'], code='invalid_geom')
|
||||
raise ValidationError(self.error_messages['invalid_geom'], code='invalid_geom')
|
||||
|
||||
# Try to set the srid
|
||||
if not value.srid:
|
||||
|
@ -71,14 +72,14 @@ class GeometryField(forms.Field):
|
|||
# Ensuring that the geometry is of the correct type (indicated
|
||||
# using the OGC string label).
|
||||
if str(geom.geom_type).upper() != self.geom_type and not self.geom_type == 'GEOMETRY':
|
||||
raise forms.ValidationError(self.error_messages['invalid_geom_type'], code='invalid_geom_type')
|
||||
raise ValidationError(self.error_messages['invalid_geom_type'], code='invalid_geom_type')
|
||||
|
||||
# Transforming the geometry if the SRID was set.
|
||||
if self.srid and self.srid != -1 and self.srid != geom.srid:
|
||||
try:
|
||||
geom.transform(self.srid)
|
||||
except GEOSException:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['transform_error'], code='transform_error')
|
||||
|
||||
return geom
|
||||
|
@ -89,7 +90,7 @@ class GeometryField(forms.Field):
|
|||
try:
|
||||
data = self.to_python(data)
|
||||
initial = self.to_python(initial)
|
||||
except forms.ValidationError:
|
||||
except ValidationError:
|
||||
return True
|
||||
|
||||
# Only do a geographic comparison if both values are available
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import json
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
__all__ = ['JSONField']
|
||||
|
@ -30,7 +31,7 @@ class JSONField(forms.CharField):
|
|||
try:
|
||||
converted = json.loads(value)
|
||||
except json.JSONDecodeError:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid'],
|
||||
code='invalid',
|
||||
params={'value': value},
|
||||
|
|
|
@ -18,8 +18,9 @@ other hooks.
|
|||
Although the primary way you'll use ``Field`` classes is in ``Form`` classes,
|
||||
you can also instantiate them and use them directly to get a better idea of
|
||||
how they work. Each ``Field`` instance has a ``clean()`` method, which takes
|
||||
a single argument and either raises a ``django.forms.ValidationError``
|
||||
exception or returns the clean value::
|
||||
a single argument and either raises a
|
||||
``django.core.exceptions.ValidationError`` exception or returns the clean
|
||||
value::
|
||||
|
||||
>>> from django import forms
|
||||
>>> f = forms.EmailField()
|
||||
|
|
|
@ -305,6 +305,7 @@ don't want to put it into the general ``MultiEmailField`` class. Instead, we
|
|||
write a cleaning method that operates on the ``recipients`` field, like so::
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
class ContactForm(forms.Form):
|
||||
# Everything as before.
|
||||
|
@ -313,7 +314,7 @@ write a cleaning method that operates on the ``recipients`` field, like so::
|
|||
def clean_recipients(self):
|
||||
data = self.cleaned_data['recipients']
|
||||
if "fred@example.com" not in data:
|
||||
raise forms.ValidationError("You have forgotten about Fred!")
|
||||
raise ValidationError("You have forgotten about Fred!")
|
||||
|
||||
# Always return a value to use as the new cleaned data, even if
|
||||
# this method didn't change it.
|
||||
|
@ -346,6 +347,7 @@ an error, you can raise a ``ValidationError`` from the ``clean()`` method. For
|
|||
example::
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
class ContactForm(forms.Form):
|
||||
# Everything as before.
|
||||
|
@ -359,7 +361,7 @@ example::
|
|||
if cc_myself and subject:
|
||||
# Only do something if both fields are valid so far.
|
||||
if "help" not in subject:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
"Did not send for 'help' in the subject despite "
|
||||
"CC'ing yourself."
|
||||
)
|
||||
|
|
|
@ -1100,6 +1100,7 @@ code would be required in the app's ``admin.py`` file::
|
|||
from django.contrib.auth.models import Group
|
||||
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
||||
from django.contrib.auth.forms import ReadOnlyPasswordHashField
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from customauth.models import MyUser
|
||||
|
||||
|
@ -1119,7 +1120,7 @@ code would be required in the app's ``admin.py`` file::
|
|||
password1 = self.cleaned_data.get("password1")
|
||||
password2 = self.cleaned_data.get("password2")
|
||||
if password1 and password2 and password1 != password2:
|
||||
raise forms.ValidationError("Passwords don't match")
|
||||
raise ValidationError("Passwords don't match")
|
||||
return password2
|
||||
|
||||
def save(self, commit=True):
|
||||
|
|
|
@ -1508,12 +1508,12 @@ provides several built-in forms located in :mod:`django.contrib.auth.forms`:
|
|||
class PickyAuthenticationForm(AuthenticationForm):
|
||||
def confirm_login_allowed(self, user):
|
||||
if not user.is_active:
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
_("This account is inactive."),
|
||||
code='inactive',
|
||||
)
|
||||
if user.username.startswith('b'):
|
||||
raise forms.ValidationError(
|
||||
raise ValidationError(
|
||||
_("Sorry, accounts starting with 'b' aren't welcome here."),
|
||||
code='no_b_users',
|
||||
)
|
||||
|
|
|
@ -220,7 +220,7 @@ this management data, an exception will be raised::
|
|||
>>> formset.is_valid()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
django.forms.utils.ValidationError: ['ManagementForm data is missing or has been tampered with']
|
||||
django.core.exceptions.ValidationError: ['ManagementForm data is missing or has been tampered with']
|
||||
|
||||
It is used to keep track of how many form instances are being displayed. If
|
||||
you are adding new forms via JavaScript, you should increment the count fields
|
||||
|
@ -261,6 +261,7 @@ Custom formset validation
|
|||
A formset has a ``clean`` method similar to the one on a ``Form`` class. This
|
||||
is where you define your own validation that works at the formset level::
|
||||
|
||||
>>> from django.core.exceptions import ValidationError
|
||||
>>> from django.forms import BaseFormSet
|
||||
>>> from django.forms import formset_factory
|
||||
>>> from myapp.forms import ArticleForm
|
||||
|
@ -277,7 +278,7 @@ is where you define your own validation that works at the formset level::
|
|||
... continue
|
||||
... title = form.cleaned_data.get('title')
|
||||
... if title in titles:
|
||||
... raise forms.ValidationError("Articles in a set must have distinct titles.")
|
||||
... raise ValidationError("Articles in a set must have distinct titles.")
|
||||
... titles.append(title)
|
||||
|
||||
>>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet)
|
||||
|
|
|
@ -454,6 +454,7 @@ integer as the ``number`` argument. Then ``number`` will be looked up in the
|
|||
dictionary under that key during string interpolation. Here's example::
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import ngettext_lazy
|
||||
|
||||
class MyForm(forms.Form):
|
||||
|
@ -463,7 +464,7 @@ dictionary under that key during string interpolation. Here's example::
|
|||
def clean(self):
|
||||
# ...
|
||||
if error:
|
||||
raise forms.ValidationError(self.error_message % {'num': number})
|
||||
raise ValidationError(self.error_message % {'num': number})
|
||||
|
||||
If the string contains exactly one unnamed placeholder, you can interpolate
|
||||
directly with the ``number`` argument::
|
||||
|
@ -477,7 +478,7 @@ directly with the ``number`` argument::
|
|||
def clean(self):
|
||||
# ...
|
||||
if error:
|
||||
raise forms.ValidationError(self.error_message % number)
|
||||
raise ValidationError(self.error_message % number)
|
||||
|
||||
|
||||
Formatting strings: ``format_lazy()``
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django import forms
|
||||
from django.contrib import admin
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
|
||||
from .models import (
|
||||
|
@ -102,7 +103,7 @@ class TitleForm(forms.ModelForm):
|
|||
title1 = cleaned_data.get("title1")
|
||||
title2 = cleaned_data.get("title2")
|
||||
if title1 != title2:
|
||||
raise forms.ValidationError("The two titles must be the same")
|
||||
raise ValidationError("The two titles must be the same")
|
||||
return cleaned_data
|
||||
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ class BasePersonModelFormSet(BaseModelFormSet):
|
|||
person = person_dict.get('id')
|
||||
alive = person_dict.get('alive')
|
||||
if person and alive and person.name == "Grace Hopper":
|
||||
raise forms.ValidationError("Grace is not a Zombie")
|
||||
raise ValidationError("Grace is not a Zombie")
|
||||
|
||||
|
||||
class PersonAdmin(admin.ModelAdmin):
|
||||
|
|
|
@ -4,6 +4,7 @@ A custom AdminSite for AdminViewPermissionsTest.test_login_has_permission().
|
|||
from django.contrib import admin
|
||||
from django.contrib.auth import get_permission_codename
|
||||
from django.contrib.auth.forms import AuthenticationForm
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from . import admin as base_admin, models
|
||||
|
||||
|
@ -12,9 +13,8 @@ PERMISSION_NAME = 'admin_views.%s' % get_permission_codename('change', models.Ar
|
|||
|
||||
class PermissionAdminAuthenticationForm(AuthenticationForm):
|
||||
def confirm_login_allowed(self, user):
|
||||
from django import forms
|
||||
if not user.is_active or not (user.is_staff or user.has_perm(PERMISSION_NAME)):
|
||||
raise forms.ValidationError('permission denied')
|
||||
raise ValidationError('permission denied')
|
||||
|
||||
|
||||
class HasPermissionAdmin(admin.AdminSite):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from django import forms
|
||||
from django.contrib.admin.forms import AdminAuthenticationForm
|
||||
from django.contrib.admin.helpers import ActionForm
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
|
||||
class CustomAdminAuthenticationForm(AdminAuthenticationForm):
|
||||
|
@ -11,7 +11,7 @@ class CustomAdminAuthenticationForm(AdminAuthenticationForm):
|
|||
def clean_username(self):
|
||||
username = self.cleaned_data.get('username')
|
||||
if username == 'customform':
|
||||
raise forms.ValidationError('custom form error')
|
||||
raise ValidationError('custom form error')
|
||||
return username
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ import datetime
|
|||
import re
|
||||
from unittest import mock
|
||||
|
||||
from django import forms
|
||||
from django.contrib.auth.forms import (
|
||||
AdminPasswordChangeForm, AuthenticationForm, PasswordChangeForm,
|
||||
PasswordResetForm, ReadOnlyPasswordHashField, ReadOnlyPasswordHashWidget,
|
||||
|
@ -12,6 +11,7 @@ from django.contrib.auth.models import User
|
|||
from django.contrib.auth.signals import user_login_failed
|
||||
from django.contrib.sites.models import Site
|
||||
from django.core import mail
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
from django.forms.fields import CharField, Field, IntegerField
|
||||
from django.test import SimpleTestCase, TestCase, override_settings
|
||||
|
@ -372,13 +372,13 @@ class AuthenticationFormTest(TestDataMixin, TestCase):
|
|||
form = AuthenticationFormWithInactiveUsersOkay(None, data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
# If we want to disallow some logins according to custom logic,
|
||||
# we should raise a django.forms.ValidationError in the form.
|
||||
# Raise a ValidationError in the form to disallow some logins according
|
||||
# to custom logic.
|
||||
class PickyAuthenticationForm(AuthenticationForm):
|
||||
def confirm_login_allowed(self, user):
|
||||
if user.username == "inactive":
|
||||
raise forms.ValidationError("This user is disallowed.")
|
||||
raise forms.ValidationError("Sorry, nobody's allowed in.")
|
||||
raise ValidationError("This user is disallowed.")
|
||||
raise ValidationError("Sorry, nobody's allowed in.")
|
||||
|
||||
form = PickyAuthenticationForm(None, data)
|
||||
self.assertFalse(form.is_valid())
|
||||
|
@ -496,7 +496,7 @@ class AuthenticationFormTest(TestDataMixin, TestCase):
|
|||
|
||||
def test_get_invalid_login_error(self):
|
||||
error = AuthenticationForm().get_invalid_login_error()
|
||||
self.assertIsInstance(error, forms.ValidationError)
|
||||
self.assertIsInstance(error, ValidationError)
|
||||
self.assertEqual(
|
||||
error.message,
|
||||
'Please enter a correct %(username)s and password. Note that both '
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import pickle
|
||||
|
||||
from django.forms import BooleanField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import BooleanField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from django.core.exceptions import ValidationError
|
||||
from django.forms import (
|
||||
CharField, HiddenInput, PasswordInput, Textarea, TextInput,
|
||||
ValidationError,
|
||||
)
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import ChoiceField, Form, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import ChoiceField, Form
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import CharField, ComboField, EmailField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import CharField, ComboField, EmailField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
from datetime import date, datetime
|
||||
|
||||
from django.forms import (
|
||||
DateField, Form, HiddenInput, SelectDateWidget, ValidationError,
|
||||
)
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import DateField, Form, HiddenInput, SelectDateWidget
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.utils import translation
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from datetime import date, datetime
|
||||
|
||||
from django.forms import DateTimeField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import DateTimeField
|
||||
from django.test import SimpleTestCase
|
||||
from django.utils.timezone import get_fixed_timezone, utc
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import decimal
|
||||
|
||||
from django.forms import DecimalField, NumberInput, ValidationError, Widget
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import DecimalField, NumberInput, Widget
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.utils import formats, translation
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import EmailField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import EmailField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import pickle
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.forms import FileField, ValidationError
|
||||
from django.forms import FileField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import os.path
|
||||
|
||||
from django.forms import FilePathField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import FilePathField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
PATH = os.path.dirname(os.path.abspath(__file__))
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import FloatField, NumberInput, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import FloatField, NumberInput
|
||||
from django.test import SimpleTestCase
|
||||
from django.test.utils import override_settings
|
||||
from django.utils import formats, translation
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import GenericIPAddressField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import GenericIPAddressField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
import os
|
||||
import unittest
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.files.uploadedfile import (
|
||||
SimpleUploadedFile, TemporaryUploadedFile,
|
||||
)
|
||||
from django.forms import (
|
||||
ClearableFileInput, FileInput, ImageField, ValidationError, Widget,
|
||||
)
|
||||
from django.forms import ClearableFileInput, FileInput, ImageField, Widget
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import IntegerField, Textarea, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import IntegerField, Textarea
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import MultipleChoiceField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import MultipleChoiceField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from datetime import datetime
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import (
|
||||
CharField, Form, MultipleChoiceField, MultiValueField, MultiWidget,
|
||||
SelectMultiple, SplitDateTimeField, SplitDateTimeWidget, TextInput,
|
||||
ValidationError,
|
||||
)
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import re
|
||||
|
||||
from django.forms import RegexField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import RegexField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import datetime
|
||||
|
||||
from django.forms import SplitDateTimeField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import SplitDateTimeField
|
||||
from django.forms.widgets import SplitDateTimeWidget
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import datetime
|
||||
|
||||
from django.forms import TimeField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import TimeField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import decimal
|
||||
|
||||
from django.forms import TypedChoiceField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import TypedChoiceField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import decimal
|
||||
|
||||
from django.forms import TypedMultipleChoiceField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import TypedMultipleChoiceField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.forms import URLField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import URLField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
from . import FormFieldAssertionsMixin
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import uuid
|
||||
|
||||
from django.forms import UUIDField, ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import UUIDField
|
||||
from django.test import SimpleTestCase
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
from django.core.exceptions import ValidationError
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.forms import (
|
||||
BooleanField, CharField, ChoiceField, DateField, DateTimeField,
|
||||
DecimalField, EmailField, FileField, FloatField, Form,
|
||||
GenericIPAddressField, IntegerField, ModelChoiceField,
|
||||
ModelMultipleChoiceField, MultipleChoiceField, RegexField,
|
||||
SplitDateTimeField, TimeField, URLField, ValidationError, utils,
|
||||
SplitDateTimeField, TimeField, URLField, utils,
|
||||
)
|
||||
from django.template import Context, Template
|
||||
from django.test import SimpleTestCase, TestCase, ignore_warnings
|
||||
|
|
|
@ -3359,7 +3359,7 @@ Good luck picking a username that doesn't already exist.</p>
|
|||
|
||||
self.assertIsInstance(e, list)
|
||||
self.assertIn('Foo', e)
|
||||
self.assertIn('Foo', forms.ValidationError(e))
|
||||
self.assertIn('Foo', ValidationError(e))
|
||||
|
||||
self.assertEqual(
|
||||
e.as_text(),
|
||||
|
|
|
@ -2,9 +2,10 @@ import datetime
|
|||
from collections import Counter
|
||||
from unittest import mock
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import (
|
||||
BaseForm, CharField, DateField, FileField, Form, IntegerField,
|
||||
SplitDateTimeField, ValidationError, formsets,
|
||||
SplitDateTimeField, formsets,
|
||||
)
|
||||
from django.forms.formsets import BaseFormSet, all_valid, formset_factory
|
||||
from django.forms.utils import ErrorList
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from datetime import date, datetime, time
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.utils.translation import activate, deactivate
|
||||
|
||||
|
@ -19,7 +20,7 @@ class LocalizedTimeTests(SimpleTestCase):
|
|||
"TimeFields can parse dates in the default format"
|
||||
f = forms.TimeField()
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -46,7 +47,7 @@ class LocalizedTimeTests(SimpleTestCase):
|
|||
"Localized TimeFields act as unlocalized widgets"
|
||||
f = forms.TimeField(localize=True)
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -69,9 +70,9 @@ class LocalizedTimeTests(SimpleTestCase):
|
|||
"TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%H.%M.%S", "%H.%M"])
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -94,9 +95,9 @@ class LocalizedTimeTests(SimpleTestCase):
|
|||
"Localized TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%H.%M.%S", "%H.%M"], localize=True)
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -122,7 +123,7 @@ class CustomTimeInputFormatsTests(SimpleTestCase):
|
|||
"TimeFields can parse dates in the default format"
|
||||
f = forms.TimeField()
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -145,7 +146,7 @@ class CustomTimeInputFormatsTests(SimpleTestCase):
|
|||
"Localized TimeFields act as unlocalized widgets"
|
||||
f = forms.TimeField(localize=True)
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -168,9 +169,9 @@ class CustomTimeInputFormatsTests(SimpleTestCase):
|
|||
"TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%H.%M.%S", "%H.%M"])
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -193,9 +194,9 @@ class CustomTimeInputFormatsTests(SimpleTestCase):
|
|||
"Localized TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%H.%M.%S", "%H.%M"], localize=True)
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -220,7 +221,7 @@ class SimpleTimeFormatTests(SimpleTestCase):
|
|||
"TimeFields can parse dates in the default format"
|
||||
f = forms.TimeField()
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -243,7 +244,7 @@ class SimpleTimeFormatTests(SimpleTestCase):
|
|||
"Localized TimeFields in a non-localized environment act as unlocalized widgets"
|
||||
f = forms.TimeField()
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -266,7 +267,7 @@ class SimpleTimeFormatTests(SimpleTestCase):
|
|||
"TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%I:%M:%S %p", "%I:%M %p"])
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -289,7 +290,7 @@ class SimpleTimeFormatTests(SimpleTestCase):
|
|||
"Localized TimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.TimeField(input_formats=["%I:%M:%S %p", "%I:%M %p"], localize=True)
|
||||
# Parse a time in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05')
|
||||
|
||||
# Parse a time in a valid format, get a parsed result
|
||||
|
@ -321,7 +322,7 @@ class LocalizedDateTests(SimpleTestCase):
|
|||
"DateFields can parse dates in the default format"
|
||||
f = forms.DateField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21/12/2010')
|
||||
|
||||
# ISO formats are accepted, even if not specified in formats.py
|
||||
|
@ -347,7 +348,7 @@ class LocalizedDateTests(SimpleTestCase):
|
|||
"Localized DateFields act as unlocalized widgets"
|
||||
f = forms.DateField(localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21/12/2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -370,11 +371,11 @@ class LocalizedDateTests(SimpleTestCase):
|
|||
"DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%m.%d.%Y", "%m-%d-%Y"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21/12/2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -397,11 +398,11 @@ class LocalizedDateTests(SimpleTestCase):
|
|||
"Localized DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%m.%d.%Y", "%m-%d-%Y"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21/12/2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -427,7 +428,7 @@ class CustomDateInputFormatsTests(SimpleTestCase):
|
|||
"DateFields can parse dates in the default format"
|
||||
f = forms.DateField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -450,7 +451,7 @@ class CustomDateInputFormatsTests(SimpleTestCase):
|
|||
"Localized DateFields act as unlocalized widgets"
|
||||
f = forms.DateField(localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -473,9 +474,9 @@ class CustomDateInputFormatsTests(SimpleTestCase):
|
|||
"DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%m.%d.%Y", "%m-%d-%Y"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -498,9 +499,9 @@ class CustomDateInputFormatsTests(SimpleTestCase):
|
|||
"Localized DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%m.%d.%Y", "%m-%d-%Y"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -525,7 +526,7 @@ class SimpleDateFormatTests(SimpleTestCase):
|
|||
"DateFields can parse dates in the default format"
|
||||
f = forms.DateField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -548,7 +549,7 @@ class SimpleDateFormatTests(SimpleTestCase):
|
|||
"Localized DateFields in a non-localized environment act as unlocalized widgets"
|
||||
f = forms.DateField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -571,7 +572,7 @@ class SimpleDateFormatTests(SimpleTestCase):
|
|||
"DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%d.%m.%Y", "%d-%m-%Y"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -594,7 +595,7 @@ class SimpleDateFormatTests(SimpleTestCase):
|
|||
"Localized DateFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateField(input_formats=["%d.%m.%Y", "%d-%m-%Y"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -626,7 +627,7 @@ class LocalizedDateTimeTests(SimpleTestCase):
|
|||
"DateTimeFields can parse dates in the default format"
|
||||
f = forms.DateTimeField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM 21/12/2010')
|
||||
|
||||
# ISO formats are accepted, even if not specified in formats.py
|
||||
|
@ -652,7 +653,7 @@ class LocalizedDateTimeTests(SimpleTestCase):
|
|||
"Localized DateTimeFields act as unlocalized widgets"
|
||||
f = forms.DateTimeField(localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM 21/12/2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -675,11 +676,11 @@ class LocalizedDateTimeTests(SimpleTestCase):
|
|||
"DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%H.%M.%S %m.%d.%Y", "%H.%M %m-%d-%Y"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010-12-21 13:30:05 13:30:05')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM 21/12/2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -702,11 +703,11 @@ class LocalizedDateTimeTests(SimpleTestCase):
|
|||
"Localized DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%H.%M.%S %m.%d.%Y", "%H.%M %m-%d-%Y"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('1:30:05 PM 21/12/2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -736,7 +737,7 @@ class CustomDateTimeInputFormatsTests(SimpleTestCase):
|
|||
"DateTimeFields can parse dates in the default format"
|
||||
f = forms.DateTimeField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -759,7 +760,7 @@ class CustomDateTimeInputFormatsTests(SimpleTestCase):
|
|||
"Localized DateTimeFields act as unlocalized widgets"
|
||||
f = forms.DateTimeField(localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -782,9 +783,9 @@ class CustomDateTimeInputFormatsTests(SimpleTestCase):
|
|||
"DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%m.%d.%Y %H:%M:%S", "%m-%d-%Y %H:%M"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -807,9 +808,9 @@ class CustomDateTimeInputFormatsTests(SimpleTestCase):
|
|||
"Localized DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%m.%d.%Y %H:%M:%S", "%m-%d-%Y %H:%M"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -834,7 +835,7 @@ class SimpleDateTimeFormatTests(SimpleTestCase):
|
|||
"DateTimeFields can parse dates in the default format"
|
||||
f = forms.DateTimeField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -857,7 +858,7 @@ class SimpleDateTimeFormatTests(SimpleTestCase):
|
|||
"Localized DateTimeFields in a non-localized environment act as unlocalized widgets"
|
||||
f = forms.DateTimeField()
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('13:30:05 21.12.2010')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -880,7 +881,7 @@ class SimpleDateTimeFormatTests(SimpleTestCase):
|
|||
"DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%I:%M:%S %p %d.%m.%Y", "%I:%M %p %d-%m-%Y"])
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
@ -903,7 +904,7 @@ class SimpleDateTimeFormatTests(SimpleTestCase):
|
|||
"Localized DateTimeFields with manually specified input formats can accept those formats"
|
||||
f = forms.DateTimeField(input_formats=["%I:%M:%S %p %d.%m.%Y", "%I:%M %p %d-%m-%Y"], localize=True)
|
||||
# Parse a date in an unaccepted format; get an error
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
f.clean('2010/12/21 13:30:05')
|
||||
|
||||
# Parse a date in a valid format, get a parsed result
|
||||
|
|
|
@ -3,7 +3,7 @@ import re
|
|||
from django.contrib.gis import forms
|
||||
from django.contrib.gis.forms import BaseGeometryWidget, OpenLayersWidget
|
||||
from django.contrib.gis.geos import GEOSGeometry
|
||||
from django.forms import ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.utils.html import escape
|
||||
|
||||
|
@ -39,7 +39,7 @@ class GeometryFieldTest(SimpleTestCase):
|
|||
"Testing GeometryField's handling of null (None) geometries."
|
||||
# Form fields, by default, are required (`required=True`)
|
||||
fld = forms.GeometryField()
|
||||
with self.assertRaisesMessage(forms.ValidationError, "No geometry value provided."):
|
||||
with self.assertRaisesMessage(ValidationError, "No geometry value provided."):
|
||||
fld.clean(None)
|
||||
|
||||
# This will clean None as a geometry (See #10660).
|
||||
|
@ -64,7 +64,7 @@ class GeometryFieldTest(SimpleTestCase):
|
|||
pnt_fld.to_python('LINESTRING(0 0, 1 1)')
|
||||
)
|
||||
# but rejected by `clean`
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
pnt_fld.clean('LINESTRING(0 0, 1 1)')
|
||||
|
||||
def test_to_python(self):
|
||||
|
@ -92,7 +92,7 @@ class GeometryFieldTest(SimpleTestCase):
|
|||
# but raises a ValidationError for any other string
|
||||
for geo_input in bad_inputs:
|
||||
with self.subTest(geo_input=geo_input):
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
with self.assertRaises(ValidationError):
|
||||
fld.to_python(geo_input)
|
||||
|
||||
def test_to_python_different_map_srid(self):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import datetime
|
||||
|
||||
from django import forms
|
||||
from django.core.validators import ValidationError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms.models import ModelChoiceIterator
|
||||
from django.forms.widgets import CheckboxSelectMultiple
|
||||
from django.template import Context, Template
|
||||
|
|
|
@ -5,10 +5,9 @@ from unittest import mock, skipUnless
|
|||
|
||||
from django import forms
|
||||
from django.core.exceptions import (
|
||||
NON_FIELD_ERRORS, FieldError, ImproperlyConfigured,
|
||||
NON_FIELD_ERRORS, FieldError, ImproperlyConfigured, ValidationError,
|
||||
)
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.core.validators import ValidationError
|
||||
from django.db import connection, models
|
||||
from django.db.models.query import EmptyQuerySet
|
||||
from django.forms.models import (
|
||||
|
@ -2619,7 +2618,7 @@ class CustomCleanTests(TestCase):
|
|||
|
||||
def clean(self):
|
||||
if not self.cleaned_data['left'] == self.cleaned_data['right']:
|
||||
raise forms.ValidationError('Left and right should be equal')
|
||||
raise ValidationError('Left and right should be equal')
|
||||
return self.cleaned_data
|
||||
|
||||
form = TripleFormWithCleanOverride({'left': 1, 'middle': 2, 'right': 1})
|
||||
|
|
|
@ -4,8 +4,9 @@ from xml.dom.minidom import parseString
|
|||
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.core import mail
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.forms import fields
|
||||
from django.forms.forms import Form, ValidationError
|
||||
from django.forms.forms import Form
|
||||
from django.forms.formsets import BaseFormSet, formset_factory
|
||||
from django.http import (
|
||||
HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed,
|
||||
|
|
Loading…
Reference in New Issue