summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/filtered_relation/models.py2
-rw-r--r--tests/filtered_relation/tests.py36
2 files changed, 38 insertions, 0 deletions
diff --git a/tests/filtered_relation/models.py b/tests/filtered_relation/models.py
index d34a86305f..765d4956e2 100644
--- a/tests/filtered_relation/models.py
+++ b/tests/filtered_relation/models.py
@@ -36,6 +36,8 @@ class Book(models.Model):
related_query_name="book",
)
editor = models.ForeignKey(Editor, models.CASCADE)
+ number_editor = models.IntegerField(default=-1)
+ editor_number = models.IntegerField(default=-2)
generic_author = GenericRelation(Author)
state = models.CharField(max_length=9, choices=STATES, default=AVAILABLE)
diff --git a/tests/filtered_relation/tests.py b/tests/filtered_relation/tests.py
index 5a21a47f36..19714e8443 100644
--- a/tests/filtered_relation/tests.py
+++ b/tests/filtered_relation/tests.py
@@ -792,6 +792,42 @@ class FilteredRelationTests(TestCase):
).filter(my_books__isnull=True)
self.assertSequenceEqual(qs, [])
+ def test_conditional_expression_rhs_contains_relation_name(self):
+ qs = Book.objects.annotate(
+ rel=FilteredRelation(
+ "editor",
+ condition=Q(id=1 * F("number_editor")),
+ )
+ ).filter(rel__isnull=True)
+ self.assertSequenceEqual(qs, [])
+
+ def test_conditional_expression_rhs_startswith_relation_name(self):
+ qs = Book.objects.annotate(
+ rel=FilteredRelation(
+ "editor",
+ condition=Q(id=1 * F("editor_number")),
+ )
+ ).filter(rel__isnull=True)
+ self.assertSequenceEqual(qs, [])
+
+ def test_conditional_expression_lhs_startswith_relation_name(self):
+ qs = Book.objects.annotate(
+ rel=FilteredRelation(
+ "editor",
+ condition=Q(editor_number__gt=1),
+ )
+ ).filter(rel__isnull=True)
+ self.assertSequenceEqual(qs, [])
+
+ def test_conditional_expression_lhs_contains_relation_name(self):
+ qs = Book.objects.annotate(
+ rel=FilteredRelation(
+ "editor",
+ condition=Q(number_editor__gt=1),
+ )
+ ).filter(rel__isnull=True)
+ self.assertSequenceEqual(qs, [])
+
class FilteredRelationAggregationTests(TestCase):
@classmethod