diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /tests/foreign_object/models | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/foreign_object/models')
| -rw-r--r-- | tests/foreign_object/models/__init__.py | 21 | ||||
| -rw-r--r-- | tests/foreign_object/models/article.py | 36 | ||||
| -rw-r--r-- | tests/foreign_object/models/customers.py | 20 | ||||
| -rw-r--r-- | tests/foreign_object/models/empty_join.py | 63 | ||||
| -rw-r--r-- | tests/foreign_object/models/person.py | 48 |
5 files changed, 107 insertions, 81 deletions
diff --git a/tests/foreign_object/models/__init__.py b/tests/foreign_object/models/__init__.py index 652a2a30a1..69778d3ddd 100644 --- a/tests/foreign_object/models/__init__.py +++ b/tests/foreign_object/models/__init__.py @@ -1,12 +1,21 @@ -from .article import ( - Article, ArticleIdea, ArticleTag, ArticleTranslation, NewsArticle, -) +from .article import Article, ArticleIdea, ArticleTag, ArticleTranslation, NewsArticle from .customers import Address, Contact, Customer from .empty_join import SlugPage from .person import Country, Friendship, Group, Membership, Person __all__ = [ - 'Address', 'Article', 'ArticleIdea', 'ArticleTag', 'ArticleTranslation', - 'Contact', 'Country', 'Customer', 'Friendship', 'Group', 'Membership', - 'NewsArticle', 'Person', 'SlugPage', + "Address", + "Article", + "ArticleIdea", + "ArticleTag", + "ArticleTranslation", + "Contact", + "Country", + "Customer", + "Friendship", + "Group", + "Membership", + "NewsArticle", + "Person", + "SlugPage", ] diff --git a/tests/foreign_object/models/article.py b/tests/foreign_object/models/article.py index a892ce299d..dedeb8fb2d 100644 --- a/tests/foreign_object/models/article.py +++ b/tests/foreign_object/models/article.py @@ -7,6 +7,7 @@ class ArticleTranslationDescriptor(ForwardManyToOneDescriptor): """ The set of articletranslation should not set any local fields. """ + def __set__(self, instance, value): if instance is None: raise AttributeError("%s must be accessed via instance" % self.field.name) @@ -22,7 +23,7 @@ class ColConstraint: def as_sql(self, compiler, connection): qn = compiler.quote_name_unless_alias - return '%s.%s = %%s' % (qn(self.alias), qn(self.col)), [self.value] + return "%s.%s = %%s" % (qn(self.alias), qn(self.col)), [self.value] class ActiveTranslationField(models.ForeignObject): @@ -30,13 +31,14 @@ class ActiveTranslationField(models.ForeignObject): This field will allow querying and fetching the currently active translation for Article from ArticleTranslation. """ + requires_unique_target = False def get_extra_restriction(self, alias, related_alias): - return ColConstraint(alias, 'lang', get_language()) + return ColConstraint(alias, "lang", get_language()) def get_extra_descriptor_filter(self, instance): - return {'lang': get_language()} + return {"lang": get_language()} def contribute_to_class(self, cls, name): super().contribute_to_class(cls, name) @@ -50,18 +52,18 @@ class ActiveTranslationFieldWithQ(ActiveTranslationField): class Article(models.Model): active_translation = ActiveTranslationField( - 'ArticleTranslation', - from_fields=['id'], - to_fields=['article'], - related_name='+', + "ArticleTranslation", + from_fields=["id"], + to_fields=["article"], + related_name="+", on_delete=models.CASCADE, null=True, ) active_translation_q = ActiveTranslationFieldWithQ( - 'ArticleTranslation', - from_fields=['id'], - to_fields=['article'], - related_name='+', + "ArticleTranslation", + from_fields=["id"], + to_fields=["article"], + related_name="+", on_delete=models.CASCADE, null=True, ) @@ -71,7 +73,7 @@ class Article(models.Model): try: return self.active_translation.title except ArticleTranslation.DoesNotExist: - return '[No translation found]' + return "[No translation found]" class NewsArticle(Article): @@ -86,15 +88,15 @@ class ArticleTranslation(models.Model): abstract = models.TextField(null=True) class Meta: - unique_together = ('article', 'lang') + unique_together = ("article", "lang") class ArticleTag(models.Model): article = models.ForeignKey( Article, models.CASCADE, - related_name='tags', - related_query_name='tag', + related_name="tags", + related_query_name="tag", ) name = models.CharField(max_length=255) @@ -102,7 +104,7 @@ class ArticleTag(models.Model): class ArticleIdea(models.Model): articles = models.ManyToManyField( Article, - related_name='ideas', - related_query_name='idea_things', + related_name="ideas", + related_query_name="idea_things", ) name = models.CharField(max_length=255) diff --git a/tests/foreign_object/models/customers.py b/tests/foreign_object/models/customers.py index 7e1a3ac370..91ac091524 100644 --- a/tests/foreign_object/models/customers.py +++ b/tests/foreign_object/models/customers.py @@ -7,7 +7,7 @@ class Address(models.Model): class Meta: unique_together = [ - ('company', 'customer_id'), + ("company", "customer_id"), ] @@ -15,15 +15,17 @@ class Customer(models.Model): company = models.CharField(max_length=1) customer_id = models.IntegerField() address = models.ForeignObject( - Address, models.CASCADE, null=True, + Address, + models.CASCADE, + null=True, # order mismatches the Contact ForeignObject. - from_fields=['company', 'customer_id'], - to_fields=['company', 'customer_id'], + from_fields=["company", "customer_id"], + to_fields=["company", "customer_id"], ) class Meta: unique_together = [ - ('company', 'customer_id'), + ("company", "customer_id"), ] @@ -31,7 +33,9 @@ class Contact(models.Model): company_code = models.CharField(max_length=1) customer_code = models.IntegerField() customer = models.ForeignObject( - Customer, models.CASCADE, related_name='contacts', - to_fields=['customer_id', 'company'], - from_fields=['customer_code', 'company_code'], + Customer, + models.CASCADE, + related_name="contacts", + to_fields=["customer_id", "company"], + from_fields=["customer_code", "company_code"], ) diff --git a/tests/foreign_object/models/empty_join.py b/tests/foreign_object/models/empty_join.py index da151ae8e7..9c0ada378c 100644 --- a/tests/foreign_object/models/empty_join.py +++ b/tests/foreign_object/models/empty_join.py @@ -9,6 +9,7 @@ class CustomForeignObjectRel(models.ForeignObjectRel): Define some extra Field methods so this Rel acts more like a Field, which lets us use ReverseManyToOneDescriptor in both directions. """ + @property def foreign_related_fields(self): return tuple(lhs_field for lhs_field, rhs_field in self.field.related_fields) @@ -23,6 +24,7 @@ class StartsWithRelation(models.ForeignObject): the default equality operator. This is logically a many-to-many relation and creates a ReverseManyToOneDescriptor in both directions. """ + auto_created = False many_to_many = False @@ -33,7 +35,7 @@ class StartsWithRelation(models.ForeignObject): rel_class = CustomForeignObjectRel def __init__(self, *args, **kwargs): - kwargs['on_delete'] = models.DO_NOTHING + kwargs["on_delete"] = models.DO_NOTHING super().__init__(*args, **kwargs) @property @@ -54,28 +56,32 @@ class StartsWithRelation(models.ForeignObject): def get_path_info(self, filtered_relation=None): to_opts = self.remote_field.model._meta from_opts = self.model._meta - return [PathInfo( - from_opts=from_opts, - to_opts=to_opts, - target_fields=(to_opts.pk,), - join_field=self, - m2m=False, - direct=False, - filtered_relation=filtered_relation, - )] + return [ + PathInfo( + from_opts=from_opts, + to_opts=to_opts, + target_fields=(to_opts.pk,), + join_field=self, + m2m=False, + direct=False, + filtered_relation=filtered_relation, + ) + ] def get_reverse_path_info(self, filtered_relation=None): to_opts = self.model._meta from_opts = self.remote_field.model._meta - return [PathInfo( - from_opts=from_opts, - to_opts=to_opts, - target_fields=(to_opts.pk,), - join_field=self.remote_field, - m2m=False, - direct=False, - filtered_relation=filtered_relation, - )] + return [ + PathInfo( + from_opts=from_opts, + to_opts=to_opts, + target_fields=(to_opts.pk,), + join_field=self.remote_field, + m2m=False, + direct=False, + filtered_relation=filtered_relation, + ) + ] def contribute_to_class(self, cls, name, private_only=False): super().contribute_to_class(cls, name, private_only) @@ -87,6 +93,7 @@ class BrokenContainsRelation(StartsWithRelation): This model is designed to yield no join conditions and raise an exception in ``Join.as_sql()``. """ + def get_extra_restriction(self, alias, related_alias): return None @@ -94,19 +101,19 @@ class BrokenContainsRelation(StartsWithRelation): class SlugPage(models.Model): slug = models.CharField(max_length=20, unique=True) descendants = StartsWithRelation( - 'self', - from_fields=['slug'], - to_fields=['slug'], - related_name='ascendants', + "self", + from_fields=["slug"], + to_fields=["slug"], + related_name="ascendants", ) containers = BrokenContainsRelation( - 'self', - from_fields=['slug'], - to_fields=['slug'], + "self", + from_fields=["slug"], + to_fields=["slug"], ) class Meta: - ordering = ['slug'] + ordering = ["slug"] def __str__(self): - return 'SlugPage %s' % self.slug + return "SlugPage %s" % self.slug diff --git a/tests/foreign_object/models/person.py b/tests/foreign_object/models/person.py index cd04d1eeda..33063e728a 100644 --- a/tests/foreign_object/models/person.py +++ b/tests/foreign_object/models/person.py @@ -19,14 +19,14 @@ class Person(models.Model): # Relation Fields person_country = models.ForeignObject( Country, - from_fields=['person_country_id'], - to_fields=['id'], + from_fields=["person_country_id"], + to_fields=["id"], on_delete=models.CASCADE, ) - friends = models.ManyToManyField('self', through='Friendship', symmetrical=False) + friends = models.ManyToManyField("self", through="Friendship", symmetrical=False) class Meta: - ordering = ('name',) + ordering = ("name",) def __str__(self): return self.name @@ -36,10 +36,12 @@ class Group(models.Model): # Table Column Fields name = models.CharField(max_length=128) group_country = models.ForeignKey(Country, models.CASCADE) - members = models.ManyToManyField(Person, related_name='groups', through='Membership') + members = models.ManyToManyField( + Person, related_name="groups", through="Membership" + ) class Meta: - ordering = ('name',) + ordering = ("name",) def __str__(self): return self.name @@ -56,28 +58,30 @@ class Membership(models.Model): # Relation Fields person = models.ForeignObject( Person, - from_fields=['person_id', 'membership_country'], - to_fields=['id', 'person_country_id'], + from_fields=["person_id", "membership_country"], + to_fields=["id", "person_country_id"], on_delete=models.CASCADE, ) group = models.ForeignObject( Group, - from_fields=['group_id', 'membership_country'], - to_fields=['id', 'group_country'], + from_fields=["group_id", "membership_country"], + to_fields=["id", "group_country"], on_delete=models.CASCADE, ) class Meta: - ordering = ('date_joined', 'invite_reason') + ordering = ("date_joined", "invite_reason") def __str__(self): - group_name = self.group.name if self.group_id else 'NULL' + group_name = self.group.name if self.group_id else "NULL" return "%s is a member of %s" % (self.person.name, group_name) class Friendship(models.Model): # Table Column Fields - from_friend_country = models.ForeignKey(Country, models.CASCADE, related_name="from_friend_country") + from_friend_country = models.ForeignKey( + Country, models.CASCADE, related_name="from_friend_country" + ) from_friend_id = models.IntegerField() to_friend_country_id = models.IntegerField() to_friend_id = models.IntegerField() @@ -86,23 +90,23 @@ class Friendship(models.Model): from_friend = models.ForeignObject( Person, on_delete=models.CASCADE, - from_fields=['from_friend_country', 'from_friend_id'], - to_fields=['person_country_id', 'id'], - related_name='from_friend', + from_fields=["from_friend_country", "from_friend_id"], + to_fields=["person_country_id", "id"], + related_name="from_friend", ) to_friend_country = models.ForeignObject( Country, - from_fields=['to_friend_country_id'], - to_fields=['id'], - related_name='to_friend_country', + from_fields=["to_friend_country_id"], + to_fields=["id"], + related_name="to_friend_country", on_delete=models.CASCADE, ) to_friend = models.ForeignObject( Person, - from_fields=['to_friend_country_id', 'to_friend_id'], - to_fields=['person_country_id', 'id'], - related_name='to_friend', + from_fields=["to_friend_country_id", "to_friend_id"], + to_fields=["person_country_id", "id"], + related_name="to_friend", on_delete=models.CASCADE, ) |
