Browse Source

Add test case for attachment deletion when non-map data.url present in DB

revert/attachment-cleanup
Roman Chvanikov 4 years ago
parent
commit
0f1fc382d0
1 changed files with 34 additions and 0 deletions
  1. +34
    -0
      test/object_test.exs

+ 34
- 0
test/object_test.exs View File

@@ -143,6 +143,40 @@ defmodule Pleroma.ObjectTest do
assert {:ok, files} = File.ls(uploads_dir)
refute filename in files
end

test "with objects that have legacy data.url attribute" do
Pleroma.Config.put([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)

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)

{:ok, %Object{}} = Object.create(%{url: "https://google.com", 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


Loading…
Cancel
Save