Delete thumbnails and post source immediately on post delete

This commit is contained in:
ReAnzu 2018-02-24 01:57:31 -06:00
parent a1fbeb91a0
commit 0815c99740
5 changed files with 34 additions and 10 deletions

View file

@ -399,7 +399,9 @@ def _after_post_update(
def _before_post_delete(
_mapper: Any, _connection: Any, post: model.Post) -> None:
if post.post_id:
image_hash.delete_image(post.post_id)
image_hash.delete_image(str(post.post_id))
files.delete(get_post_content_path(post))
files.delete(get_post_thumbnail_path(post))
def _sync_post_content(post: model.Post) -> None:
@ -686,12 +688,14 @@ def merge_posts(
merge_favorites(source_post.post_id, target_post.post_id)
merge_relations(source_post.post_id, target_post.post_id)
delete(source_post)
db.session.flush()
content = None
if replace_content:
content = files.get(get_post_content_path(source_post))
delete(source_post)
db.session.flush()
if content is not None:
update_post_content(target_post, content)

View file

@ -1,12 +1,14 @@
from unittest.mock import patch
import pytest
from szurubooru import api, db, model, errors
from szurubooru.func import posts, tags, snapshots
from szurubooru.func import posts, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({'privileges': {'posts:delete': model.User.RANK_REGULAR}})
config_injector({'secret': 'secret', 'data_dir': '', 'privileges': {'posts:delete': model.User.RANK_REGULAR}})
def test_deleting(user_factory, post_factory, context_factory):

View file

@ -1,7 +1,9 @@
import os
from unittest.mock import patch
from datetime import datetime
from unittest.mock import patch
import os
import pytest
from szurubooru import db, model
from szurubooru.func import (
posts, users, comments, tags, images, files, util, image_hash)
@ -936,6 +938,6 @@ def test_merge_posts_replaces_content(
assert posts.try_get_post_by_id(source_post.post_id) is None
post = posts.get_post_by_id(target_post.post_id)
assert post is not None
assert os.path.exists(source_path)
assert not os.path.exists(source_path)
assert os.path.exists(target_path1)
assert not os.path.exists(target_path2)

View file

@ -1,7 +1,15 @@
from datetime import datetime
import pytest
from szurubooru import db, model
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({'secret': 'secret', 'data_dir': ''})
def test_saving_post(post_factory, user_factory, tag_factory):
user = user_factory()
tag1 = tag_factory()

View file

@ -1,7 +1,15 @@
from datetime import datetime
import pytest
from szurubooru import db, model
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({'secret': 'secret', 'data_dir': ''})
def test_saving_tag(tag_factory):
sug1 = tag_factory(names=['sug1'])
sug2 = tag_factory(names=['sug2'])