MCPcopy
hub / github.com/django/django / test_alter_model_managers

Method test_alter_model_managers

tests/migrations/test_operations.py:5451–5487  ·  view source on GitHub ↗

The managers on a model are set.

(self)

Source from the content-addressed store, hash-verified

5449 )
5450
5451 def test_alter_model_managers(self):
5452 """
5453 The managers on a model are set.
5454 """
5455 project_state = self.set_up_test_model("test_almoma")
5456 # Test the state alteration
5457 operation = migrations.AlterModelManagers(
5458 "Pony",
5459 managers=[
5460 ("food_qs", FoodQuerySet.as_manager()),
5461 ("food_mgr", FoodManager("a", "b")),
5462 ("food_mgr_kwargs", FoodManager("x", "y", 3, 4)),
5463 ],
5464 )
5465 self.assertEqual(operation.describe(), "Change managers on Pony")
5466 self.assertEqual(operation.formatted_description(), "~ Change managers on Pony")
5467 self.assertEqual(operation.migration_name_fragment, "alter_pony_managers")
5468 managers = project_state.models["test_almoma", "pony"].managers
5469 self.assertEqual(managers, [])
5470
5471 new_state = project_state.clone()
5472 operation.state_forwards("test_almoma", new_state)
5473 self.assertIn(("test_almoma", "pony"), new_state.models)
5474 managers = new_state.models["test_almoma", "pony"].managers
5475 self.assertEqual(managers[0][0], "food_qs")
5476 self.assertIsInstance(managers[0][1], models.Manager)
5477 self.assertEqual(managers[1][0], "food_mgr")
5478 self.assertIsInstance(managers[1][1], FoodManager)
5479 self.assertEqual(managers[1][1].args, ("a", "b", 1, 2))
5480 self.assertEqual(managers[2][0], "food_mgr_kwargs")
5481 self.assertIsInstance(managers[2][1], FoodManager)
5482 self.assertEqual(managers[2][1].args, ("x", "y", 3, 4))
5483 rendered_state = new_state.apps
5484 model = rendered_state.get_model("test_almoma", "pony")
5485 self.assertIsInstance(model.food_qs, models.Manager)
5486 self.assertIsInstance(model.food_mgr, FoodManager)
5487 self.assertIsInstance(model.food_mgr_kwargs, FoodManager)
5488
5489 def test_alter_model_managers_emptying(self):
5490 """

Callers

nothing calls this directly

Calls 8

describeMethod · 0.95
state_forwardsMethod · 0.95
FoodManagerClass · 0.85
as_managerMethod · 0.80
formatted_descriptionMethod · 0.80
set_up_test_modelMethod · 0.45
cloneMethod · 0.45
get_modelMethod · 0.45

Tested by

no test coverage detected