Skip to content

Commit bcd3911

Browse files
committed
Update tests
1 parent 13c78f5 commit bcd3911

File tree

4 files changed

+28
-10
lines changed

4 files changed

+28
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ htmlcov
1515
venv*
1616
node_modules
1717
.editorconfig
18+
.vscode/

djangocms_alias/cms_plugins.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ def detach_alias_plugin_view(self, request, plugin_pk):
276276
language = get_language_from_request(request)
277277

278278
plugins = instance.alias.get_plugins(language, show_draft_content=True)
279-
print(plugins)
280279
can_detach = self.can_detach(request.user, instance.placeholder, plugins)
281280

282281
if not can_detach:

tests/test_models.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from cms.models import Placeholder
33
from django.contrib.sites.models import Site
44
from django.core.exceptions import ValidationError
5+
from django.db.models import ProtectedError
56
from django.urls import reverse
67

78
from djangocms_alias.cms_plugins import Alias
@@ -383,21 +384,24 @@ def test_pages_and_aliases_using_objects(self):
383384
)
384385

385386
def test_delete(self):
387+
"""Deleting an Alias MUST NOT delete plugins."""
386388
self.page.delete()
387389

388390
alias = self._create_alias([self.plugin])
389-
add_plugin(
391+
plugin = add_plugin(
390392
self.placeholder,
391393
Alias,
392394
language=self.language,
393395
alias=alias,
394396
)
395397
self.assertEqual(Placeholder.objects.count(), 1)
396-
alias.delete()
397-
self.assertFalse(alias.__class__.objects.filter(pk=alias.pk).exists())
398-
self.assertEqual(Placeholder.objects.count(), 0)
398+
with self.assertRaises(ProtectedError):
399+
alias.delete()
400+
self.assertTrue(alias.__class__.objects.filter(pk=alias.pk).exists())
401+
self.assertEqual(Placeholder.objects.count(), 1)
399402
alias.save() # Django 4.1+ disallows to use relations (cmsplugins) of unsaved objects.
400-
self.assertEqual(alias.cms_plugins.count(), 0)
403+
self.assertEqual(alias.cms_plugins.count(), 1)
404+
plugin.placeholder.delete_plugin(plugin)
401405

402406
def test_category_get_admin_change_url(self):
403407
"""

tests/test_views.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,20 @@ def test_alias_usage_view(self):
908908
)
909909

910910
def test_delete_alias_view_get(self):
911+
alias = self._create_alias([self.plugin])
912+
with self.login_user_context(self.superuser):
913+
response = self.client.get(
914+
admin_reverse(
915+
DELETE_ALIAS_URL_NAME,
916+
args=[alias.pk],
917+
),
918+
)
919+
self.assertContains(
920+
response,
921+
f'Are you sure you want to delete the alias "{alias.name}"?', # noqa: E501
922+
)
923+
924+
def test_delete_alias_view_get_protected(self):
911925
alias = self._create_alias([self.plugin])
912926
add_plugin(
913927
self.placeholder,
@@ -922,13 +936,13 @@ def test_delete_alias_view_get(self):
922936
args=[alias.pk],
923937
),
924938
)
925-
self.assertContains(
926-
response,
927-
f'Are you sure you want to delete the alias "{alias.name}"?', # noqa: E501
928-
)
939+
940+
self.assertContains(response, "Cannot delete alias")
941+
self.assertContains(response, "This alias is used by following objects")
929942

930943
def test_delete_alias_view_get_using_objects(self):
931944
alias = self._create_alias([self.plugin])
945+
932946
add_plugin(
933947
self.placeholder,
934948
"Alias",

0 commit comments

Comments
 (0)