From 73232b7d5d41692773bd836ef8243efede14a345 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 30 Jan 2025 07:21:32 -0500 Subject: [PATCH 1/2] fix flaky test: model_fields_.test_embedded_model.ModelTests.test_pre_save --- tests/model_fields_/test_embedded_model.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/model_fields_/test_embedded_model.py b/tests/model_fields_/test_embedded_model.py index 4beb2e254..cd028cb3a 100644 --- a/tests/model_fields_/test_embedded_model.py +++ b/tests/model_fields_/test_embedded_model.py @@ -1,4 +1,5 @@ import operator +from datetime import timedelta from django.core.exceptions import FieldDoesNotExist, ValidationError from django.db import models @@ -74,7 +75,9 @@ def test_pre_save(self): obj = Holder.objects.create(data=Data()) auto_now = truncate_ms(obj.data.auto_now) auto_now_add = truncate_ms(obj.data.auto_now_add) - self.assertEqual(auto_now, auto_now_add) + # auto_now and auto_now_add may differ by a millisecond since they + # aren't generated simultaneously. + self.assertAlmostEqual(auto_now, auto_now_add, delta=timedelta(microseconds=1000)) # save() updates auto_now but not auto_now_add. obj.save() self.assertEqual(truncate_ms(obj.data.auto_now_add), auto_now_add) From c2ce424d230868d66349d58349828c900f7d698f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 30 Jan 2025 07:22:52 -0500 Subject: [PATCH 2/2] correct a TestCase.setUpTestData() to be a classmethod --- tests/model_fields_/test_embedded_model.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/model_fields_/test_embedded_model.py b/tests/model_fields_/test_embedded_model.py index cd028cb3a..eee0dd1a9 100644 --- a/tests/model_fields_/test_embedded_model.py +++ b/tests/model_fields_/test_embedded_model.py @@ -256,7 +256,8 @@ class MyModel(models.Model): class SubqueryExistsTests(TestCase): - def setUpTestData(self): + @classmethod + def setUpTestData(cls): address1 = Address(city="New York", state="NY", zip_code=10001) address2 = Address(city="Boston", state="MA", zip_code=20002) author1 = Author(name="Alice", age=30, address=address1)