diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py
index e1a8805..4d46cae 100644
|
a
|
b
|
class BaseAggregateTestCase(TestCase):
|
| 596 | 596 | self.assertEqual( |
| 597 | 597 | max_books_per_rating, |
| 598 | 598 | {'books_per_rating__max': 3}) |
| | 599 | |
| | 600 | def test_ticket17424(self): |
| | 601 | """ |
| | 602 | Check that doing exclude() on a foreign model after annotate() |
| | 603 | doesn't crash. |
| | 604 | """ |
| | 605 | all_books = list(Book.objects.values_list('pk', flat=True).order_by('pk')) |
| | 606 | annotated_books = Book.objects.order_by('pk').annotate(one=Count("id")) |
| | 607 | |
| | 608 | # The value doesn't matter, we just need any negative |
| | 609 | # constraint on a related model that's a noop. |
| | 610 | excluded_books = annotated_books.exclude(publisher__name="__UNLIKELY_VALUE__") |
| | 611 | |
| | 612 | # Try to generate query tree |
| | 613 | str(excluded_books.query) |
| | 614 | |
| | 615 | self.assertQuerysetEqual(excluded_books, all_books, lambda x: x.pk) |
| | 616 | |
| | 617 | # Check internal state |
| | 618 | self.assertIsNone(annotated_books.query.alias_map["aggregation_book"].join_type) |
| | 619 | self.assertIsNone(excluded_books.query.alias_map["aggregation_book"].join_type) |