Browse Source

Add test assertions that theme files are deleted

rafalp 6 years ago
parent
commit
bc05d78d33

+ 27 - 0
misago/themes/admin/tests/test_deleting_assets.py

@@ -1,4 +1,7 @@
+from pathlib import Path
+
 import pytest
 import pytest
+from django.core.files.base import ContentFile
 from django.urls import reverse
 from django.urls import reverse
 
 
 from ....cache.test import assert_invalidates_cache
 from ....cache.test import assert_invalidates_cache
@@ -33,6 +36,20 @@ def test_theme_css_can_be_deleted(theme, delete_css, css):
     assert not theme.css.exists()
     assert not theme.css.exists()
 
 
 
 
+def test_deleting_css_also_deletes_css_source_files(theme, delete_css, css):
+    delete_css(theme, [css])
+    assert not Path(css.source_file.path).exists()
+
+
+def test_deleting_css_also_deletes_css_build_files(theme, delete_css, css):
+    css.build_file = ContentFile("body {}", name="test.css")
+    css.build_hash = "abcdefgh"
+    css.save()
+
+    delete_css(theme, [css])
+    assert not Path(css.build_file.path).exists()
+
+
 def test_theme_css_link_can_be_deleted(theme, delete_css, css_link):
 def test_theme_css_link_can_be_deleted(theme, delete_css, css_link):
     delete_css(theme, [css_link])
     delete_css(theme, [css_link])
     assert not theme.css.exists()
     assert not theme.css.exists()
@@ -50,11 +67,21 @@ def test_theme_media_can_be_deleted(theme, delete_media, media):
     assert not theme.media.exists()
     assert not theme.media.exists()
 
 
 
 
+def test_deleting_media_also_deletes_files(theme, delete_media, media):
+    delete_media(theme, [media])
+    assert not Path(media.file.path).exists()
+
+
 def test_theme_images_can_be_deleted(theme, delete_media, image):
 def test_theme_images_can_be_deleted(theme, delete_media, image):
     delete_media(theme, [image])
     delete_media(theme, [image])
     assert not theme.media.exists()
     assert not theme.media.exists()
 
 
 
 
+def test_deleting_image_also_deletes_files(theme, delete_media, image):
+    delete_media(theme, [image])
+    assert not Path(image.thumbnail.path).exists()
+
+
 def test_multiple_theme_media_can_be_deleted_at_single_time(
 def test_multiple_theme_media_can_be_deleted_at_single_time(
     theme, delete_media, media, image
     theme, delete_media, media, image
 ):
 ):

+ 13 - 0
misago/themes/admin/tests/test_deleting_themes.py

@@ -49,6 +49,12 @@ def test_theme_media_are_deleted_together_with_theme(admin_client, delete_link,
         media.refresh_from_db()
         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(
 def test_theme_media_files_are_deleted_together_with_theme(
     admin_client, delete_link, media
     admin_client, delete_link, media
 ):
 ):
@@ -56,6 +62,13 @@ def test_theme_media_files_are_deleted_together_with_theme(
     assert not Path(media.file.path).exists()
     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):
 def test_deleting_default_theme_sets_error_message(admin_client, default_theme):
     delete_link = reverse(
     delete_link = reverse(
         "misago:admin:appearance:themes:delete", kwargs={"pk": default_theme.pk}
         "misago:admin:appearance:themes:delete", kwargs={"pk": default_theme.pk}