Merge branch 'improve-410-handling' into 'develop'
Handle HTTP 404 and 410 response Closes #977 See merge request pleroma/pleroma!1278
This commit is contained in:
commit
a2318e9dd6
|
@ -85,6 +85,9 @@ def fetch_and_contain_remote_object_from_id(id) do
|
||||||
:ok <- Containment.contain_origin_from_id(id, data) do
|
:ok <- Containment.contain_origin_from_id(id, data) do
|
||||||
{:ok, data}
|
{:ok, data}
|
||||||
else
|
else
|
||||||
|
{:ok, %{status: code}} when code in [404, 410] ->
|
||||||
|
{:error, "Object has been deleted"}
|
||||||
|
|
||||||
e ->
|
e ->
|
||||||
{:error, e}
|
{:error, e}
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,17 @@ defmodule Pleroma.Object.FetcherTest do
|
||||||
import Tesla.Mock
|
import Tesla.Mock
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
mock(fn
|
||||||
|
%{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)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,10 +91,24 @@ test "it can fetch peertube videos" do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "all objects with fake directions are rejected by the object fetcher" do
|
test "all objects with fake directions are rejected by the object fetcher" do
|
||||||
{:error, _} =
|
assert {:error, _} =
|
||||||
Fetcher.fetch_and_contain_remote_object_from_id(
|
Fetcher.fetch_and_contain_remote_object_from_id(
|
||||||
"https://info.pleroma.site/activity4.json"
|
"https://info.pleroma.site/activity4.json"
|
||||||
)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "handle HTTP 410 Gone response" do
|
||||||
|
assert {:error, "Object has been deleted"} ==
|
||||||
|
Fetcher.fetch_and_contain_remote_object_from_id(
|
||||||
|
"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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue