Update functions in object fetcher for tesla and set up a proper mock for tests
authorrinpatch <rinpatch@sdf.org>
Wed, 17 Apr 2019 11:21:39 +0000 (14:21 +0300)
committerrinpatch <rinpatch@sdf.org>
Wed, 17 Apr 2019 11:21:39 +0000 (14:21 +0300)
lib/pleroma/object/fetcher.ex
test/object/fetcher_test.exs
test/web/mastodon_api/status_view_test.exs
test/web/twitter_api/views/activity_view_test.exs

index 19d9c51af2ee7646520d3d65580d24d507ca4de2..138e7866f4c2ec494982ce73f13b1d1952f72b9b 100644 (file)
@@ -27,7 +27,7 @@ defmodule Pleroma.Object.Fetcher do
            },
            :ok <- Containment.contain_origin(id, params),
            {:ok, activity} <- Transmogrifier.handle_incoming(params) do
-        {:ok, Object.normalize(activity.data["object"], false)}
+        {:ok, Object.normalize(activity, false)}
       else
         {:error, {:reject, nil}} ->
           {:reject, nil}
@@ -56,16 +56,13 @@ defmodule Pleroma.Object.Fetcher do
   end
 
   def fetch_and_contain_remote_object_from_id(id) do
-    Logger.info("Fetching #{id} via AP")
+    Logger.info("Fetching object #{id} via AP")
 
     with true <- String.starts_with?(id, "http"),
-         {:ok, %{body: body, status_code: code}} when code in 200..299 <-
+         {:ok, %{body: body, status: code}} when code in 200..299 <-
            @httpoison.get(
              id,
-             [Accept: "application/activity+json"],
-             follow_redirect: true,
-             timeout: 10000,
-             recv_timeout: 20000
+             [{:Accept, "application/activity+json"}]
            ),
          {:ok, data} <- Jason.decode(body),
          :ok <- Containment.contain_origin_from_id(id, data) do
index 568c5cc4c845d8955938d91f80548929105e9304..72f61678291d02deb61f6ccc8e8d87461fadae7c 100644 (file)
@@ -4,6 +4,12 @@ defmodule Pleroma.Object.FetcherTest do
   alias Pleroma.Activity
   alias Pleroma.Object
   alias Pleroma.Object.Fetcher
+  import Tesla.Mock
+
+  setup do
+    mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
+    :ok
+  end
 
   describe "actor origin containment" do
     test "it rejects objects with a bogus origin" do
@@ -24,7 +30,7 @@ defmodule Pleroma.Object.FetcherTest do
       {:ok, object} =
         Fetcher.fetch_object_from_id("http://mastodon.example.org/@admin/99541947525187367")
 
-      assert activity = Activity.get_create_activity_by_object_ap_id(object.data["id"])
+      assert activity = Activity.get_create_by_object_ap_id(object.data["id"])
       assert activity.data["id"]
 
       {:ok, object_again} =
@@ -38,7 +44,7 @@ defmodule Pleroma.Object.FetcherTest do
 
     test "it works with objects only available via Ostatus" do
       {:ok, object} = Fetcher.fetch_object_from_id("https://shitposter.club/notice/2827873")
-      assert activity = Activity.get_create_activity_by_object_ap_id(object.data["id"])
+      assert activity = Activity.get_create_by_object_ap_id(object.data["id"])
       assert activity.data["id"]
 
       {:ok, object_again} = Fetcher.fetch_object_from_id("https://shitposter.club/notice/2827873")
index 4ea50c7c698dbeec43d33f7b9287b9e0ea3b703b..cc5a84b5d7b3ae92a071c533e8dea81c352455a6 100644 (file)
@@ -9,7 +9,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
   alias Pleroma.User
   alias Pleroma.Repo
   alias Pleroma.Object
-  alias Pleroma.Web.ActivityPub.ActivityPub
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.CommonAPI.Utils
   alias Pleroma.Web.MastodonAPI.AccountView
@@ -232,7 +231,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
     user = insert(:user)
 
     {:ok, object} =
-      ActivityPub.fetch_object_from_id(
+      Pleroma.Object.Fetcher.fetch_object_from_id(
         "https://peertube.moe/videos/watch/df5f464b-be8d-46fb-ad81-2d4c2d1630e3"
       )
 
index 7ef0270cc01583124057b4d94dffdc9927d7f528..b5440c6126c45965a135f40c6a45a5eb26066294 100644 (file)
@@ -360,7 +360,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do
 
   test "a peertube video" do
     {:ok, object} =
-      ActivityPub.fetch_object_from_id(
+      Pleroma.Object.Fetcher.fetch_object_from_id(
         "https://peertube.moe/videos/watch/df5f464b-be8d-46fb-ad81-2d4c2d1630e3"
       )