A router can choose to implement a subset of methods
(self)
| 1424 | self.assertTrue(router.allow_migrate_model("other", Book)) |
| 1425 | |
| 1426 | def test_partial_router(self): |
| 1427 | "A router can choose to implement a subset of methods" |
| 1428 | dive = Book.objects.using("other").create( |
| 1429 | title="Dive into Python", published=datetime.date(2009, 5, 4) |
| 1430 | ) |
| 1431 | |
| 1432 | # First check the baseline behavior. |
| 1433 | |
| 1434 | self.assertEqual(router.db_for_read(User), "other") |
| 1435 | self.assertEqual(router.db_for_read(Book), "other") |
| 1436 | |
| 1437 | self.assertEqual(router.db_for_write(User), "default") |
| 1438 | self.assertEqual(router.db_for_write(Book), "default") |
| 1439 | |
| 1440 | self.assertTrue(router.allow_relation(dive, dive)) |
| 1441 | |
| 1442 | self.assertTrue(router.allow_migrate_model("default", User)) |
| 1443 | self.assertTrue(router.allow_migrate_model("default", Book)) |
| 1444 | |
| 1445 | with override_settings( |
| 1446 | DATABASE_ROUTERS=[WriteRouter(), AuthRouter(), TestRouter()] |
| 1447 | ): |
| 1448 | self.assertEqual(router.db_for_read(User), "default") |
| 1449 | self.assertEqual(router.db_for_read(Book), "other") |
| 1450 | |
| 1451 | self.assertEqual(router.db_for_write(User), "writer") |
| 1452 | self.assertEqual(router.db_for_write(Book), "writer") |
| 1453 | |
| 1454 | self.assertTrue(router.allow_relation(dive, dive)) |
| 1455 | |
| 1456 | self.assertFalse(router.allow_migrate_model("default", User)) |
| 1457 | self.assertTrue(router.allow_migrate_model("default", Book)) |
| 1458 | |
| 1459 | def test_database_routing(self): |
| 1460 | marty = Person.objects.using("default").create(name="Marty Alchin") |
nothing calls this directly
no test coverage detected