From 37b55ef4d5d41916f7c9dfb2d81b55003739606d Mon Sep 17 00:00:00 2001 From: James Cooke Date: Thu, 9 Jan 2020 21:34:34 +0000 Subject: [PATCH 1/3] Add regression test for OverflowError in unique validation --- tests/test_model_serializer.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index fbb562792d..54eebd9d3c 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -12,7 +12,7 @@ import django import pytest -from django.core.exceptions import ImproperlyConfigured +from django.core.exceptions import ImproperlyConfigured, ValidationError from django.core.serializers.json import DjangoJSONEncoder from django.core.validators import ( MaxValueValidator, MinLengthValidator, MinValueValidator @@ -1305,3 +1305,33 @@ class Meta: serializer.save() self.assertEqual(instance.char_field, 'value changed by signal') + + +class OverflowModel(models.Model): + value = models.IntegerField(unique=True, validators=[ + MaxValueValidator(9223372036854775807), + ]) + + +class Issue7314Test(TestCase): + + def test_model(self): + """ + Assert that Django can validate the overflow model. + """ + with self.assertRaises(ValidationError): + OverflowModel(value=9223372036854775808).full_clean() + + def test_serializer(self): + class TestSerializer(serializers.ModelSerializer): + class Meta: + model = OverflowModel + fields = '__all__' + + def validate_value(self, value): + assert False + + serializer = TestSerializer(data={'value': 9223372036854775808}) + + with self.assertRaises(serializers.ValidationError): + serializer.is_valid(raise_exception=True) From 859871b9b4058948dcef9b266f5a944e4964c48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asif=20Saif=20Uddin=20=7B=22Auvi=22=3A=22=E0=A6=85?= =?UTF-8?q?=E0=A6=AD=E0=A6=BF=22=7D?= Date: Tue, 22 Sep 2026 19:07:23 +0600 Subject: [PATCH 2/3] Update tests/test_model_serializer.py Co-authored-by: Bruno Alla --- tests/test_model_serializer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index d3f31b7b19..72f76815e8 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -1526,5 +1526,11 @@ def validate_value(self, value): serializer = TestSerializer(data={'value': 9223372036854775808}) - with self.assertRaises(serializers.ValidationError): + with self.assertRaises(serializers.ValidationError) as ctx: serializer.is_valid(raise_exception=True) + + # Check that the error code of the validation error + self.assertEqual( + [error.code for error in ctx.exception.detail['value']], + ['max_value'], + ) From dd9786eabdfaefcf7bf8bd13d577ba4766ecc509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asif=20Saif=20Uddin=20=7B=22Auvi=22=3A=22=E0=A6=85?= =?UTF-8?q?=E0=A6=AD=E0=A6=BF=22=7D?= Date: Tue, 22 Sep 2026 19:07:32 +0600 Subject: [PATCH 3/3] Update tests/test_model_serializer.py Co-authored-by: Bruno Alla --- tests/test_model_serializer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 72f76815e8..5ad9cc264c 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -1506,7 +1506,7 @@ class OverflowModel(models.Model): ]) -class Issue7314Test(TestCase): +class Issue7134Test(TestCase): def test_model(self): """