mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Made an app-cache test not dependent on all models in defer_regress
This commit is contained in:
		| @@ -98,29 +98,36 @@ class DeferRegressionTest(TestCase): | |||||||
|         i2 = s["item"] |         i2 = s["item"] | ||||||
|         self.assertFalse(i2._deferred) |         self.assertFalse(i2._deferred) | ||||||
|  |  | ||||||
|  |         # Regression for #16409 - make sure defer() and only() work with annotate() | ||||||
|  |         self.assertIsInstance( | ||||||
|  |             list(SimpleItem.objects.annotate(Count('feature')).defer('name')), | ||||||
|  |             list) | ||||||
|  |         self.assertIsInstance( | ||||||
|  |             list(SimpleItem.objects.annotate(Count('feature')).only('name')), | ||||||
|  |             list) | ||||||
|  |  | ||||||
|  |     def test_ticket_11936(self): | ||||||
|         # Regression for #11936 - loading.get_models should not return deferred |         # Regression for #11936 - loading.get_models should not return deferred | ||||||
|         # models by default. |         # models by default. | ||||||
|         klasses = sorted( |         # Run a couple of defer queries so that app-cache must contain some | ||||||
|             cache.get_models(cache.get_app("defer_regress")), |         # deferred classes. It might contain a lot more classes depending on | ||||||
|             key=lambda klass: klass.__name__ |         # the order the tests are ran. | ||||||
|         ) |         list(Item.objects.defer("name")) | ||||||
|         self.assertEqual( |         list(Child.objects.defer("value")) | ||||||
|             klasses, [ |         klasses = set( | ||||||
|                 Child, |             map( | ||||||
|                 Feature, |                 attrgetter("__name__"), | ||||||
|                 Item, |                 cache.get_models(cache.get_app("defer_regress")) | ||||||
|                 ItemAndSimpleItem, |             ) | ||||||
|                 Leaf, |  | ||||||
|                 OneToOneItem, |  | ||||||
|                 Proxy, |  | ||||||
|                 RelatedItem, |  | ||||||
|                 ResolveThis, |  | ||||||
|                 SimpleItem, |  | ||||||
|                 SpecialFeature, |  | ||||||
|             ] |  | ||||||
|         ) |         ) | ||||||
|  |         self.assertIn("Child", klasses) | ||||||
|  |         self.assertIn("Item", klasses) | ||||||
|  |         self.assertNotIn("Child_Deferred_value", klasses) | ||||||
|  |         self.assertNotIn("Item_Deferred_name", klasses) | ||||||
|  |         self.assertFalse(any( | ||||||
|  |             k._deferred for k in cache.get_models(cache.get_app("defer_regress")))) | ||||||
|  |  | ||||||
|         klasses = sorted( |         klasses_with_deferred = set( | ||||||
|             map( |             map( | ||||||
|                 attrgetter("__name__"), |                 attrgetter("__name__"), | ||||||
|                 cache.get_models( |                 cache.get_models( | ||||||
| @@ -128,41 +135,15 @@ class DeferRegressionTest(TestCase): | |||||||
|                 ), |                 ), | ||||||
|             ) |             ) | ||||||
|         ) |         ) | ||||||
|         # FIXME: This is dependent on the order in which tests are run -- |         self.assertIn("Child", klasses_with_deferred) | ||||||
|         # this test case has to be the first, otherwise a LOT more classes |         self.assertIn("Item", klasses_with_deferred) | ||||||
|         # appear. |         self.assertIn("Child_Deferred_value", klasses_with_deferred) | ||||||
|         self.assertEqual( |         self.assertIn("Item_Deferred_name", klasses_with_deferred) | ||||||
|             klasses, [ |         self.assertTrue(any( | ||||||
|                 "Child", |             k._deferred for k in cache.get_models( | ||||||
|                 "Child_Deferred_value", |                 cache.get_app("defer_regress"), include_deferred=True)) | ||||||
|                 "Feature", |  | ||||||
|                 "Item", |  | ||||||
|                 "ItemAndSimpleItem", |  | ||||||
|                 "Item_Deferred_name", |  | ||||||
|                 "Item_Deferred_name_other_value_text", |  | ||||||
|                 "Item_Deferred_name_other_value_value", |  | ||||||
|                 "Item_Deferred_other_value_text_value", |  | ||||||
|                 "Item_Deferred_text_value", |  | ||||||
|                 "Leaf", |  | ||||||
|                 "Leaf_Deferred_child_id_second_child_id_value", |  | ||||||
|                 "Leaf_Deferred_name_value", |  | ||||||
|                 "Leaf_Deferred_second_child_id_value", |  | ||||||
|                 "Leaf_Deferred_value", |  | ||||||
|                 "OneToOneItem", |  | ||||||
|                 "Proxy", |  | ||||||
|                 "RelatedItem", |  | ||||||
|                 "RelatedItem_Deferred_", |  | ||||||
|                 "RelatedItem_Deferred_item_id", |  | ||||||
|                 "ResolveThis", |  | ||||||
|                 "SimpleItem", |  | ||||||
|                 "SpecialFeature", |  | ||||||
|             ] |  | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         # Regression for #16409 - make sure defer() and only() work with annotate() |  | ||||||
|         self.assertIsInstance(list(SimpleItem.objects.annotate(Count('feature')).defer('name')), list) |  | ||||||
|         self.assertIsInstance(list(SimpleItem.objects.annotate(Count('feature')).only('name')), list) |  | ||||||
|  |  | ||||||
|     def test_only_and_defer_usage_on_proxy_models(self): |     def test_only_and_defer_usage_on_proxy_models(self): | ||||||
|         # Regression for #15790 - only() broken for proxy models |         # Regression for #15790 - only() broken for proxy models | ||||||
|         proxy = Proxy.objects.create(name="proxy", value=42) |         proxy = Proxy.objects.create(name="proxy", value=42) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user