aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-06-13 17:13:35 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-06-13 17:13:35 +0700
commit30e54fd7e2f967364f2c1c17d739b629d2900167 (patch)
treecc67dffe19b4f02ac6a6e5ca04a9b785685decee
parentafae3ada22fb714735fd75448c574276353f2e1d (diff)
downloadpleroma-30e54fd7e2f967364f2c1c17d739b629d2900167.tar.gz
Handle HTTP 404 response
-rw-r--r--lib/pleroma/object/fetcher.ex2
-rw-r--r--test/object/fetcher_test.exs10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/pleroma/object/fetcher.ex b/lib/pleroma/object/fetcher.ex
index f7d724668..c422490ac 100644
--- a/lib/pleroma/object/fetcher.ex
+++ b/lib/pleroma/object/fetcher.ex
@@ -85,7 +85,7 @@ defmodule Pleroma.Object.Fetcher do
:ok <- Containment.contain_origin_from_id(id, data) do
{:ok, data}
else
- {:ok, %{status: 410}} ->
+ {:ok, %{status: code}} when code in [404, 410] ->
{:error, "Object has been deleted"}
e ->
diff --git a/test/object/fetcher_test.exs b/test/object/fetcher_test.exs
index 58abcfe55..26dc9496d 100644
--- a/test/object/fetcher_test.exs
+++ b/test/object/fetcher_test.exs
@@ -11,6 +11,9 @@ defmodule Pleroma.Object.FetcherTest do
%{method: :get, url: "https://mastodon.example.org/users/userisgone"} ->
%Tesla.Env{status: 410}
+ %{method: :get, url: "https://mastodon.example.org/users/userisgone404"} ->
+ %Tesla.Env{status: 404}
+
env ->
apply(HttpRequestMock, :request, [env])
end)
@@ -100,6 +103,13 @@ defmodule Pleroma.Object.FetcherTest do
"https://mastodon.example.org/users/userisgone"
)
end
+
+ test "handle HTTP 404 response" do
+ assert {:error, "Object has been deleted"} ==
+ Fetcher.fetch_and_contain_remote_object_from_id(
+ "https://mastodon.example.org/users/userisgone404"
+ )
+ end
end
describe "pruning" do