diff options
Diffstat (limited to 'tests/basic/tests.py')
| -rw-r--r-- | tests/basic/tests.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 3c2d1dead9..c6ad1faefd 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -926,24 +926,32 @@ class ModelRefreshTests(TestCase): def test_prefetched_cache_cleared(self): a = Article.objects.create(pub_date=datetime(2005, 7, 28)) - s = SelfRef.objects.create(article=a) + s = SelfRef.objects.create(article=a, article_cited=a) # refresh_from_db() without fields=[...] - a1_prefetched = Article.objects.prefetch_related("selfref_set").first() + a1_prefetched = Article.objects.prefetch_related("selfref_set", "cited").first() self.assertCountEqual(a1_prefetched.selfref_set.all(), [s]) + self.assertCountEqual(a1_prefetched.cited.all(), [s]) s.article = None + s.article_cited = None s.save() # Relation is cleared and prefetch cache is stale. self.assertCountEqual(a1_prefetched.selfref_set.all(), [s]) + self.assertCountEqual(a1_prefetched.cited.all(), [s]) a1_prefetched.refresh_from_db() # Cache was cleared and new results are available. self.assertCountEqual(a1_prefetched.selfref_set.all(), []) + self.assertCountEqual(a1_prefetched.cited.all(), []) # refresh_from_db() with fields=[...] - a2_prefetched = Article.objects.prefetch_related("selfref_set").first() + a2_prefetched = Article.objects.prefetch_related("selfref_set", "cited").first() self.assertCountEqual(a2_prefetched.selfref_set.all(), []) + self.assertCountEqual(a2_prefetched.cited.all(), []) s.article = a + s.article_cited = a s.save() # Relation is added and prefetch cache is stale. self.assertCountEqual(a2_prefetched.selfref_set.all(), []) - a2_prefetched.refresh_from_db(fields=["selfref_set"]) + self.assertCountEqual(a2_prefetched.cited.all(), []) + a2_prefetched.refresh_from_db(fields=["selfref_set", "cited"]) # Cache was cleared and new results are available. self.assertCountEqual(a2_prefetched.selfref_set.all(), [s]) + self.assertCountEqual(a2_prefetched.cited.all(), [s]) |
