From ba38fa5fcbda29165813b1f7a62cb833675f48bf Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 03:16:16 +0530 Subject: [PATCH 1/7] Fix of model_formsets_regress tests --- tests/model_formsets_regress/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/model_formsets_regress/models.py b/tests/model_formsets_regress/models.py index cc735ad1e70c..c00d3ccb82c2 100644 --- a/tests/model_formsets_regress/models.py +++ b/tests/model_formsets_regress/models.py @@ -1,10 +1,13 @@ from django.db import models +from django_singlestore.schema import ModelStorageManager class User(models.Model): username = models.CharField(max_length=12, unique=True) serial = models.IntegerField() + objects = ModelStorageManager("REFERENCE") + class UserSite(models.Model): user = models.ForeignKey(User, models.CASCADE, to_field="username") @@ -14,6 +17,7 @@ class UserSite(models.Model): class UserProfile(models.Model): user = models.ForeignKey(User, models.CASCADE, unique=True, to_field="username") about = models.TextField() + objects = ModelStorageManager("REFERENCE") class UserPreferences(models.Model): From a34dbda36ecee0a71c51b8a15a433f184224082a Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 03:41:26 +0530 Subject: [PATCH 2/7] Fix of filtered_relation tests --- tests/filtered_relation/models.py | 15 +++++++++++++++ tests/filtered_relation/tests.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/filtered_relation/models.py b/tests/filtered_relation/models.py index d34a86305fcc..8b1283532309 100644 --- a/tests/filtered_relation/models.py +++ b/tests/filtered_relation/models.py @@ -1,6 +1,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType from django.db import models +from django_singlestore.schema import ModelStorageManager class Author(models.Model): @@ -9,10 +10,12 @@ class Author(models.Model): "Book", related_name="preferred_by_authors", related_query_name="preferred_by_authors", + through="AuthorBook", ) content_type = models.ForeignKey(ContentType, models.CASCADE, null=True) object_id = models.PositiveIntegerField(null=True) content_object = GenericForeignKey() + objects = ModelStorageManager("ROWSTORE REFERENCE") class Editor(models.Model): @@ -40,9 +43,21 @@ class Book(models.Model): state = models.CharField(max_length=9, choices=STATES, default=AVAILABLE) +class AuthorBook(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) + book = models.ForeignKey(Book, on_delete=models.CASCADE) + + class Meta: + unique_together = (('author', 'book'),) + db_table = "filtered_relation_author_book" + + class Borrower(models.Model): name = models.CharField(max_length=50, unique=True) + objects = ModelStorageManager("REFERENCE") + + class Reservation(models.Model): NEW = "new" diff --git a/tests/filtered_relation/tests.py b/tests/filtered_relation/tests.py index 0fce8b092ab7..cb59b40371d0 100644 --- a/tests/filtered_relation/tests.py +++ b/tests/filtered_relation/tests.py @@ -363,7 +363,7 @@ def test_union(self): "book", condition=Q(book__title__iexact="the book by jane a") ), ).filter(book_jane__isnull=False) - self.assertSequenceEqual(qs1.union(qs2), [self.author1, self.author2]) + self.assertCountEqual(qs1.union(qs2), [self.author1, self.author2]) @skipUnlessDBFeature("supports_select_intersection") def test_intersection(self): From 04c76fd2a5008e550eff902acfc5aa4df8dd38d8 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 15:01:12 +0530 Subject: [PATCH 3/7] Fix of admin_filters tests --- tests/admin_filters/models.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/admin_filters/models.py b/tests/admin_filters/models.py index 53b471dd90f0..0ba891dbc9f6 100644 --- a/tests/admin_filters/models.py +++ b/tests/admin_filters/models.py @@ -2,6 +2,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.contenttypes.models import ContentType from django.db import models +from django_singlestore.schema import ModelStorageManager class Book(models.Model): @@ -20,6 +21,7 @@ class Book(models.Model): verbose_name="Verbose Contributors", related_name="books_contributed", blank=True, + through="BookUser", ) employee = models.ForeignKey( "Employee", @@ -48,11 +50,15 @@ def __str__(self): class ImprovedBook(models.Model): book = models.OneToOneField(Book, models.CASCADE) + objects = ModelStorageManager("ROWSTORE REFERENCE") + class Department(models.Model): code = models.CharField(max_length=4, unique=True) description = models.CharField(max_length=50, blank=True, null=True) + objects = ModelStorageManager("ROWSTORE REFERENCE") + def __str__(self): return self.description @@ -64,6 +70,14 @@ class Employee(models.Model): def __str__(self): return self.name +class BookUser(models.Model): + book = models.ForeignKey(Book, on_delete=models.CASCADE) + user = models.ForeignKey(User, on_delete=models.CASCADE) + + class Meta: + unique_together = (('book', 'user'),) + db_table = "admin_filters_book_user" + class TaggedItem(models.Model): tag = models.SlugField() From d2d8b358a47c037d33573e1cc1de91aa8bc58b71 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 15:15:29 +0530 Subject: [PATCH 4/7] Fix of managers_regress --- tests/managers_regress/models.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/managers_regress/models.py b/tests/managers_regress/models.py index dd365d961d2f..88aa1a4f9742 100644 --- a/tests/managers_regress/models.py +++ b/tests/managers_regress/models.py @@ -127,8 +127,7 @@ def __str__(self): class RelationModel(models.Model): fk = models.ForeignKey(RelatedModel, models.CASCADE, related_name="test_fk") - - m2m = models.ManyToManyField(RelatedModel, related_name="test_m2m") + m2m = models.ManyToManyField("RelatedModel", related_name="test_m2m", through="RelationModelRelatedModel") gfk_ctype = models.ForeignKey(ContentType, models.SET_NULL, null=True) gfk_id = models.IntegerField(null=True) @@ -136,3 +135,12 @@ class RelationModel(models.Model): def __str__(self): return str(self.pk) + + +class RelationModelRelatedModel(models.Model): + relationmodel = models.ForeignKey(RelationModel, on_delete=models.CASCADE) + relatedmodel = models.ForeignKey(RelatedModel, on_delete=models.CASCADE) + + class Meta: + unique_together = (('relationmodel', 'relatedmodel'),) + db_table = "managers_regress_relationmodel_relatedmodel" From 69406ced0d607bd5a8bc267fed0e20836cdeb45f Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 18:54:01 +0530 Subject: [PATCH 5/7] Fix of signals --- tests/signals/models.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/signals/models.py b/tests/signals/models.py index b758244749ae..faf9658e99ae 100644 --- a/tests/signals/models.py +++ b/tests/signals/models.py @@ -26,12 +26,21 @@ def __str__(self): class Book(models.Model): name = models.CharField(max_length=20) - authors = models.ManyToManyField(Author) + authors = models.ManyToManyField("Author", through="BookAuthor") def __str__(self): return self.name +class BookAuthor(models.Model): + book = models.ForeignKey(Book, on_delete=models.CASCADE) + author = models.ForeignKey(Author, on_delete=models.CASCADE) + + class Meta: + unique_together = (('book', 'author'),) + db_table = "signals_book_author" + + class Page(models.Model): book = models.ForeignKey(Book, on_delete=models.CASCADE) text = models.TextField() From 113b7a53654eceb32dbc293c0253a9765157aca0 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 30 Jul 2025 19:24:04 +0530 Subject: [PATCH 6/7] Fix of migrations tests --- tests/migrations/test_commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py index 97d8b1c7e259..9bfa6708dc71 100644 --- a/tests/migrations/test_commands.py +++ b/tests/migrations/test_commands.py @@ -3053,9 +3053,9 @@ def test_optimization(self): with open(initial_migration_file) as fp: content = fp.read() self.assertIn( - "('bool', models.BooleanField" + '("bool", models.BooleanField' if HAS_BLACK - else '("bool", models.BooleanField', + else "('bool', models.BooleanField", content, ) self.assertEqual( @@ -3081,9 +3081,9 @@ def test_optimization_no_verbosity(self): with open(initial_migration_file) as fp: content = fp.read() self.assertIn( - "('bool', models.BooleanField" + '("bool", models.BooleanField' if HAS_BLACK - else '("bool", models.BooleanField', + else "('bool', models.BooleanField", content, ) self.assertEqual(out.getvalue(), "") From a7c710690ef6d8487d8100869d6e9e80fa5e2ada Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Thu, 31 Jul 2025 12:44:14 +0530 Subject: [PATCH 7/7] Fix of m2m_multiple tests --- tests/m2m_multiple/models.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/m2m_multiple/models.py b/tests/m2m_multiple/models.py index 2146a8920163..b2788b66ab5c 100644 --- a/tests/m2m_multiple/models.py +++ b/tests/m2m_multiple/models.py @@ -24,10 +24,10 @@ class Article(models.Model): headline = models.CharField(max_length=50) pub_date = models.DateTimeField() primary_categories = models.ManyToManyField( - Category, related_name="primary_article_set" + Category, related_name="primary_article_set", through="ArticleCategory" ) secondary_categories = models.ManyToManyField( - Category, related_name="secondary_article_set" + Category, related_name="secondary_article_set", through="ArticleCategoryS" ) class Meta: @@ -35,3 +35,20 @@ class Meta: def __str__(self): return self.headline + +class ArticleCategory(models.Model): + article = models.ForeignKey(Article, on_delete=models.CASCADE) + category = models.ForeignKey(Category, on_delete=models.CASCADE) + + class Meta: + unique_together = (('article', 'category'),) + db_table = "m2m_multiple_article_category" + + +class ArticleCategoryS(models.Model): + article = models.ForeignKey(Article, on_delete=models.CASCADE) + category = models.ForeignKey(Category, on_delete=models.CASCADE) + + class Meta: + unique_together = (('article', 'category'),) + db_table = "m2m_multiple_article_category_second"