Add test for custom base_url when deleting an attachment

This commit is contained in:
Roman Chvanikov 2020-01-28 17:22:24 +03:00
parent 804a702f97
commit d18a2e4e36
2 changed files with 33 additions and 3 deletions

View file

@ -8,8 +8,6 @@ defmodule Pleroma.Workers.AttachmentsCleanupWorker do
alias Pleroma.Object
alias Pleroma.Repo
require Logger
use Pleroma.Workers.WorkerHelper, queue: "attachments_cleanup"
@impl Oban.Worker
@ -83,7 +81,6 @@ defmodule Pleroma.Workers.AttachmentsCleanupWorker do
file_path = String.trim_leading(href, "#{base_url}/#{prefix}")
Logger.warn("Deleting file #{file_path} (orig: #{href}, base_url: #{base_url})")
uploader.delete_file(file_path)
end

View file

@ -177,6 +177,39 @@ defmodule Pleroma.ObjectTest do
assert {:ok, []} == File.ls("#{uploads_dir}/#{path}")
end
test "With custom base_url" do
Pleroma.Config.put([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)
Pleroma.Config.put([Pleroma.Upload, :base_url], "https://sub.domain.tld/dir/")
file = %Plug.Upload{
content_type: "image/jpg",
path: Path.absname("test/fixtures/image.jpg"),
filename: "an_image.jpg"
}
user = insert(:user)
{:ok, %Object{} = attachment} =
Pleroma.Web.ActivityPub.ActivityPub.upload(file, actor: user.ap_id)
%{data: %{"attachment" => [%{"url" => [%{"href" => href}]}]}} =
note = insert(:note, %{user: user, data: %{"attachment" => [attachment.data]}})
uploads_dir = Pleroma.Config.get!([Pleroma.Uploaders.Local, :uploads])
path = href |> Path.dirname() |> Path.basename()
assert {:ok, ["an_image.jpg"]} == File.ls("#{uploads_dir}/#{path}")
Object.delete(note)
ObanHelpers.perform(all_enqueued(worker: Pleroma.Workers.AttachmentsCleanupWorker))
assert Object.get_by_id(attachment.id) == nil
assert {:ok, []} == File.ls("#{uploads_dir}/#{path}")
end
end
describe "normalizer" do