diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-06-13 17:13:35 +0700 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-06-13 17:13:35 +0700 |
commit | 30e54fd7e2f967364f2c1c17d739b629d2900167 (patch) | |
tree | cc67dffe19b4f02ac6a6e5ca04a9b785685decee | |
parent | afae3ada22fb714735fd75448c574276353f2e1d (diff) | |
download | pleroma-30e54fd7e2f967364f2c1c17d739b629d2900167.tar.gz |
Handle HTTP 404 response
-rw-r--r-- | lib/pleroma/object/fetcher.ex | 2 | ||||
-rw-r--r-- | test/object/fetcher_test.exs | 10 |
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 |