123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from pathlib import Path
- import pytest
- from django.core.files.base import ContentFile
- from django.urls import reverse
- from ....test import assert_has_error_message
- from ...models import Theme, Css, Media
- @pytest.fixture
- def delete_link(theme):
- return reverse("misago:admin:appearance:themes:delete", kwargs={"pk": theme.pk})
- def test_theme_without_children_can_be_deleted(admin_client, delete_link, theme):
- admin_client.post(delete_link)
- with pytest.raises(Theme.DoesNotExist):
- theme.refresh_from_db()
- def test_theme_css_are_deleted_together_with_theme(admin_client, delete_link, css):
- admin_client.post(delete_link)
- with pytest.raises(Css.DoesNotExist):
- css.refresh_from_db()
- def test_theme_source_css_files_are_deleted_together_with_theme(
- admin_client, delete_link, css
- ):
- admin_client.post(delete_link)
- assert not Path(css.source_file.path).exists()
- def test_theme_build_css_files_are_deleted_together_with_theme(
- admin_client, delete_link, css
- ):
- css.build_file = ContentFile("body {}", name="test.css")
- css.build_hash = "abcdefgh"
- css.save()
- admin_client.post(delete_link)
- assert not Path(css.build_file.path).exists()
- def test_theme_media_are_deleted_together_with_theme(admin_client, delete_link, media):
- admin_client.post(delete_link)
- with pytest.raises(Media.DoesNotExist):
- media.refresh_from_db()
- def test_theme_images_are_deleted_together_with_theme(admin_client, delete_link, image):
- admin_client.post(delete_link)
- with pytest.raises(Media.DoesNotExist):
- image.refresh_from_db()
- def test_theme_media_files_are_deleted_together_with_theme(
- admin_client, delete_link, media
- ):
- admin_client.post(delete_link)
- assert not Path(media.file.path).exists()
- def test_theme_image_files_are_deleted_together_with_theme(
- admin_client, delete_link, image
- ):
- admin_client.post(delete_link)
- assert not Path(image.thumbnail.path).exists()
- def test_deleting_default_theme_sets_error_message(admin_client, default_theme):
- delete_link = reverse(
- "misago:admin:appearance:themes:delete", kwargs={"pk": default_theme.pk}
- )
- response = admin_client.post(delete_link)
- assert_has_error_message(response)
- def test_default_theme_is_not_deleted(admin_client, default_theme):
- delete_link = reverse(
- "misago:admin:appearance:themes:delete", kwargs={"pk": default_theme.pk}
- )
- response = admin_client.post(delete_link)
- default_theme.refresh_from_db()
- def test_deleting_active_theme_sets_error_message(admin_client, theme):
- theme.is_active = True
- theme.save()
- delete_link = reverse(
- "misago:admin:appearance:themes:delete", kwargs={"pk": theme.pk}
- )
- response = admin_client.post(delete_link)
- assert_has_error_message(response)
- def test_active_theme_is_not_deleted(admin_client, theme):
- theme.is_active = True
- theme.save()
- delete_link = reverse(
- "misago:admin:appearance:themes:delete", kwargs={"pk": theme.pk}
- )
- admin_client.post(delete_link)
- theme.refresh_from_db()
|