From 24db510f1c8ddbae2aefa864168799e4a1a43341 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Thu, 10 Apr 2025 20:26:57 +0530 Subject: [PATCH 1/2] fix of test_runner tests --- tests/_utils/setup.sql | 10 ++++++++++ tests/test_runner/models.py | 14 +++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/tests/_utils/setup.sql b/tests/_utils/setup.sql index 12ba2584a462..76322bf0f407 100644 --- a/tests/_utils/setup.sql +++ b/tests/_utils/setup.sql @@ -429,3 +429,13 @@ CREATE TABLE `contenttypes_tests_modelwithm2mtosite_site` ( KEY (`modelwithm2mtosite_id`), KEY (`site_id`) ); + +--test_runner +CREATE TABLE `test_runner_person_friend` ( + `from_person_id` BIGINT NOT NULL, + `to_person_id` BIGINT NOT NULL, + SHARD KEY (`from_person_id`), + UNIQUE KEY (`from_person_id`, `to_person_id`), + KEY (`from_person_id`), + KEY (`to_person_id`) +); diff --git a/tests/test_runner/models.py b/tests/test_runner/models.py index 80bf8dd8c769..32cfc317a625 100644 --- a/tests/test_runner/models.py +++ b/tests/test_runner/models.py @@ -4,7 +4,19 @@ class Person(models.Model): first_name = models.CharField(max_length=20) last_name = models.CharField(max_length=20) - friends = models.ManyToManyField("self") + friends = models.ManyToManyField("self", through="PersonFriend") + +class PersonFriend(models.Model): + from_person = models.ForeignKey( + Person, on_delete=models.CASCADE, related_name="friends_from" + ) + to_person = models.ForeignKey( + Person, on_delete=models.CASCADE, related_name="friends_to" + ) + + class Meta: + unique_together = (('from_person', 'to_person'),) + db_table = "test_runner_person_friend" # A set of models that use a non-abstract inherited 'through' model. From 77bc38bbc9b4e5edd8afb333a9068cc16823053b Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Fri, 11 Apr 2025 17:26:49 +0530 Subject: [PATCH 2/2] nit: change in related_name value --- tests/test_runner/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_runner/models.py b/tests/test_runner/models.py index 32cfc317a625..313c07d3a23d 100644 --- a/tests/test_runner/models.py +++ b/tests/test_runner/models.py @@ -8,10 +8,10 @@ class Person(models.Model): class PersonFriend(models.Model): from_person = models.ForeignKey( - Person, on_delete=models.CASCADE, related_name="friends_from" + Person, on_delete=models.CASCADE, related_name="from_person" ) to_person = models.ForeignKey( - Person, on_delete=models.CASCADE, related_name="friends_to" + Person, on_delete=models.CASCADE, related_name="to_person" ) class Meta: