Added test that reproduces the problem.

This commit is contained in:
Gabriel Balaudo 2024-05-24 13:23:05 -03:00
parent ba2c2e32be
commit 6afd964b64
2 changed files with 26 additions and 1 deletions

View file

@ -200,6 +200,16 @@ class DateTimeFieldModel(models.Model):
history = AuditlogHistoryField(delete_related=True)
class DecimalFieldModel(models.Model):
"""
A model with a DecimalField, used to test DecimalField changes
are detected properly.
"""
decimal = models.DecimalField(max_digits=18, decimal_places=2, default=0)
history = AuditlogHistoryField(delete_related=True)
class ChoicesFieldModel(models.Model):
"""
A model with a CharField restricted to a set of choices.
@ -341,6 +351,7 @@ auditlog.register(SimpleExcludeModel, exclude_fields=["text"])
auditlog.register(SimpleMappingModel, mapping_fields={"sku": "Product No."})
auditlog.register(AdditionalDataIncludedModel)
auditlog.register(DateTimeFieldModel)
auditlog.register(DecimalFieldModel)
auditlog.register(ChoicesFieldModel)
auditlog.register(CharfieldTextfieldModel)
auditlog.register(PostgresArrayFieldModel)

View file

@ -6,6 +6,7 @@ import warnings
from datetime import timezone
from unittest import mock
from unittest.mock import patch
from decimal import Decimal
import freezegun
from dateutil.tz import gettz
@ -41,6 +42,7 @@ from auditlog_tests.models import (
AutoManyRelatedModel,
CharfieldTextfieldModel,
ChoicesFieldModel,
DecimalFieldModel,
DateTimeFieldModel,
JSONModel,
ManyRelatedModel,
@ -1196,7 +1198,8 @@ class RegisterModelSettingsTest(TestCase):
self.assertTrue(self.test_auditlog.contains(SimpleExcludeModel))
self.assertTrue(self.test_auditlog.contains(ChoicesFieldModel))
self.assertEqual(len(self.test_auditlog.get_models()), 25)
self.assertTrue(self.test_auditlog.contains(DecimalFieldModel))
self.assertEqual(len(self.test_auditlog.get_models()), 26)
def test_register_models_register_model_with_attrs(self):
self.test_auditlog._register_models(
@ -1463,6 +1466,17 @@ class ChoicesFieldModelTest(TestCase):
assert "related_models" in history.changes_display_dict
class DecimalFieldModelTest(TestCase):
def setUp(self):
self.obj = DecimalFieldModel.objects.create(decimal=0)
def test_no_changes_detected_after_saving_again(self):
self.assertEqual(self.obj.history.count(), 1)
self.obj.save()
self.assertEqual(self.obj.history.count(), 1)
class CharFieldTextFieldModelTest(TestCase):
def setUp(self):
self.PLACEHOLDER_LONGCHAR = "s" * 255