Loading django/core/validators.py +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ validate_email = EmailValidator() slug_re = re.compile(r'^[-a-zA-Z0-9_]+$') validate_slug = RegexValidator(slug_re, _("Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."), 'invalid') ipv4_re = re.compile(r'^\s*(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\s*$') ipv4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$') validate_ipv4_address = RegexValidator(ipv4_re, _('Enter a valid IPv4 address.'), 'invalid') Loading django/forms/fields.py +7 −9 Original line number Diff line number Diff line Loading @@ -1096,9 +1096,10 @@ class IPAddressField(CharField): } default_validators = [validators.validate_ipv4_address] def clean(self, value): value = self.to_python(value).strip() return super(IPAddressField, self).clean(value) def to_python(self, value): if value in EMPTY_VALUES: return '' return value.strip() class GenericIPAddressField(CharField): Loading @@ -1111,13 +1112,10 @@ class GenericIPAddressField(CharField): self.default_error_messages['invalid'] = invalid_error_message super(GenericIPAddressField, self).__init__(*args, **kwargs) def clean(self, value): value = self.to_python(value).strip() return super(GenericIPAddressField, self).clean(value) def to_python(self, value): if value in validators.EMPTY_VALUES: return '' value = value.strip() if value and ':' in value: return clean_ipv6_address(value, self.unpack_ipv4, self.error_messages['invalid']) Loading tests/modeltests/validation/tests.py +2 −16 Original line number Diff line number Diff line Loading @@ -116,30 +116,20 @@ class GenericIPAddressFieldTests(ValidationTestCase): def test_correct_generic_ip_passes(self): giptm = GenericIPAddressTestModel(generic_ip="1.2.3.4") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip=" 1.2.3.4 ") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip="2001::2") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip="2001::2") self.assertEqual(None, giptm.full_clean()) def test_invalid_generic_ip_raises_error(self): giptm = GenericIPAddressTestModel(generic_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) giptm = GenericIPAddressTestModel(generic_ip="1.2.3 .4") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) giptm = GenericIPAddressTestModel(generic_ip="1:2") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) def test_correct_v4_ip_passes(self): giptm = GenericIPAddressTestModel(v4_ip="1.2.3.4") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(v4_ip=" 1.2.3.4 ") self.assertEqual(None, giptm.full_clean()) def test_invalid_v4_ip_raises_error(self): giptm = GenericIPAddressTestModel(v4_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['v4_ip',]) giptm = GenericIPAddressTestModel(v4_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['v4_ip',]) giptm = GenericIPAddressTestModel(v4_ip="2001::2") Loading @@ -148,14 +138,10 @@ class GenericIPAddressFieldTests(ValidationTestCase): def test_correct_v6_ip_passes(self): giptm = GenericIPAddressTestModel(v6_ip="2001::2") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(v6_ip=" 2001::2 ") self.assertEqual(None, giptm.full_clean()) def test_invalid_v6_ip_raises_error(self): giptm = GenericIPAddressTestModel(v6_ip="1.2.3.4") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) giptm = GenericIPAddressTestModel(v6_ip="2001:: 2") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) giptm = GenericIPAddressTestModel(v6_ip="1:2") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) Loading Loading
django/core/validators.py +1 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,7 @@ validate_email = EmailValidator() slug_re = re.compile(r'^[-a-zA-Z0-9_]+$') validate_slug = RegexValidator(slug_re, _("Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."), 'invalid') ipv4_re = re.compile(r'^\s*(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\s*$') ipv4_re = re.compile(r'^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$') validate_ipv4_address = RegexValidator(ipv4_re, _('Enter a valid IPv4 address.'), 'invalid') Loading
django/forms/fields.py +7 −9 Original line number Diff line number Diff line Loading @@ -1096,9 +1096,10 @@ class IPAddressField(CharField): } default_validators = [validators.validate_ipv4_address] def clean(self, value): value = self.to_python(value).strip() return super(IPAddressField, self).clean(value) def to_python(self, value): if value in EMPTY_VALUES: return '' return value.strip() class GenericIPAddressField(CharField): Loading @@ -1111,13 +1112,10 @@ class GenericIPAddressField(CharField): self.default_error_messages['invalid'] = invalid_error_message super(GenericIPAddressField, self).__init__(*args, **kwargs) def clean(self, value): value = self.to_python(value).strip() return super(GenericIPAddressField, self).clean(value) def to_python(self, value): if value in validators.EMPTY_VALUES: return '' value = value.strip() if value and ':' in value: return clean_ipv6_address(value, self.unpack_ipv4, self.error_messages['invalid']) Loading
tests/modeltests/validation/tests.py +2 −16 Original line number Diff line number Diff line Loading @@ -116,30 +116,20 @@ class GenericIPAddressFieldTests(ValidationTestCase): def test_correct_generic_ip_passes(self): giptm = GenericIPAddressTestModel(generic_ip="1.2.3.4") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip=" 1.2.3.4 ") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip="2001::2") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(generic_ip="2001::2") self.assertEqual(None, giptm.full_clean()) def test_invalid_generic_ip_raises_error(self): giptm = GenericIPAddressTestModel(generic_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) giptm = GenericIPAddressTestModel(generic_ip="1.2.3 .4") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) giptm = GenericIPAddressTestModel(generic_ip="1:2") self.assertFailsValidation(giptm.full_clean, ['generic_ip',]) def test_correct_v4_ip_passes(self): giptm = GenericIPAddressTestModel(v4_ip="1.2.3.4") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(v4_ip=" 1.2.3.4 ") self.assertEqual(None, giptm.full_clean()) def test_invalid_v4_ip_raises_error(self): giptm = GenericIPAddressTestModel(v4_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['v4_ip',]) giptm = GenericIPAddressTestModel(v4_ip="294.4.2.1") self.assertFailsValidation(giptm.full_clean, ['v4_ip',]) giptm = GenericIPAddressTestModel(v4_ip="2001::2") Loading @@ -148,14 +138,10 @@ class GenericIPAddressFieldTests(ValidationTestCase): def test_correct_v6_ip_passes(self): giptm = GenericIPAddressTestModel(v6_ip="2001::2") self.assertEqual(None, giptm.full_clean()) giptm = GenericIPAddressTestModel(v6_ip=" 2001::2 ") self.assertEqual(None, giptm.full_clean()) def test_invalid_v6_ip_raises_error(self): giptm = GenericIPAddressTestModel(v6_ip="1.2.3.4") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) giptm = GenericIPAddressTestModel(v6_ip="2001:: 2") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) giptm = GenericIPAddressTestModel(v6_ip="1:2") self.assertFailsValidation(giptm.full_clean, ['v6_ip',]) Loading