|
4 | 4 | from django.conf import settings
|
5 | 5 | from django.contrib.auth import get_user_model
|
6 | 6 | from django.contrib.auth.models import Group
|
7 |
| -from django.test import TransactionTestCase |
| 7 | +from django.test import TransactionTestCase, override_settings |
8 | 8 |
|
9 | 9 | from tests.models import TestModel, ShardedTestModelIDs, PostgresCustomAutoIDModel, PostgresShardUser
|
10 | 10 | from django_sharding_library.exceptions import InvalidMigrationException
|
@@ -524,6 +524,42 @@ def test_lookup_fallback_if_migration_directory_not_the_same_as_the_model(self):
|
524 | 524 | can_migrate_shard=False,
|
525 | 525 | )
|
526 | 526 |
|
| 527 | + @override_settings(DJANGO_SHARDING_SETTINGS={"DELETED_MODELS": {"deleted.Whatever": {"database": "app_shard_002"}}}) |
| 528 | + def test_deleted_model_in_settings__specific_database(self): |
| 529 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='default', app_label='deleted', **{})) |
| 530 | + self.assertTrue(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 531 | + |
| 532 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='default', app_label='deleted', **{})) |
| 533 | + self.assertTrue(self.sut.allow_migrate(model_name="Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 534 | + |
| 535 | + @override_settings(DJANGO_SHARDING_SETTINGS={"DELETED_MODELS": {"deleted.Whatever": {"shard_group": "default"}}}) |
| 536 | + def test_deleted_model_in_settings__shard_group(self): |
| 537 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='default', app_label='deleted', **{})) |
| 538 | + self.assertTrue(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001', app_label='deleted', **{})) |
| 539 | + self.assertTrue(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 540 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001_replica_001', app_label='deleted', **{})) |
| 541 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001_replica_002', app_label='deleted', **{})) |
| 542 | + |
| 543 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='default', app_label='deleted', **{})) |
| 544 | + self.assertTrue(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001', app_label='deleted', **{})) |
| 545 | + self.assertTrue(self.sut.allow_migrate(model_name="Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 546 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001_replica_001', app_label='deleted', **{})) |
| 547 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001_replica_002', app_label='deleted', **{})) |
| 548 | + |
| 549 | + @override_settings(DJANGO_SHARDING_SETTINGS={"DELETED_MODELS": {"deleted.Whatever": None}}) |
| 550 | + def test_deleted_model_in_settings__unsharded(self): |
| 551 | + self.assertTrue(self.sut.allow_migrate(model_name="deleted.Whatever", db='default', app_label='deleted', **{})) |
| 552 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001', app_label='deleted', **{})) |
| 553 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 554 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001_replica_001', app_label='deleted', **{})) |
| 555 | + self.assertFalse(self.sut.allow_migrate(model_name="deleted.Whatever", db='app_shard_001_replica_002', app_label='deleted', **{})) |
| 556 | + |
| 557 | + self.assertTrue(self.sut.allow_migrate(model_name="Whatever", db='default', app_label='deleted', **{})) |
| 558 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001', app_label='deleted', **{})) |
| 559 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_002', app_label='deleted', **{})) |
| 560 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001_replica_001', app_label='deleted', **{})) |
| 561 | + self.assertFalse(self.sut.allow_migrate(model_name="Whatever", db='app_shard_001_replica_002', app_label='deleted', **{})) |
| 562 | + |
527 | 563 |
|
528 | 564 | class RouterForPostgresIDFieldTest(TransactionTestCase):
|
529 | 565 |
|
|
0 commit comments