diff options
author | rinpatch <rinpatch@sdf.org> | 2019-07-09 20:00:37 +0000 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2019-07-09 20:00:37 +0000 |
commit | 81f1017b84bbe1a493aaf6f43687af2f2546b6a1 (patch) | |
tree | bb2d77d97f46f51c7d3b3e719fe29faac41432af /lib | |
parent | 2bb945cb70751bc8e72c036040130bb54c32f391 (diff) | |
parent | 8a41d34673532c03cf99a2334399b9436e245f1b (diff) | |
download | pleroma-81f1017b84bbe1a493aaf6f43687af2f2546b6a1.tar.gz |
Merge branch '878-activity-object-decoupling-in-tests' into 'develop'
[#878] Refactored assumptions on embedded object presence in tests
Closes #878
See merge request pleroma/pleroma!1390
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/object.ex | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index b8647dd26..c8d339c19 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -44,7 +44,15 @@ defmodule Pleroma.Object do Repo.one(from(object in Object, where: fragment("(?)->>'id' = ?", object.data, ^ap_id))) end + defp warn_on_no_object_preloaded(ap_id) do + "Object.normalize() called without preloaded object (#{ap_id}). Consider preloading the object" + |> Logger.debug() + + Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}") + end + def normalize(_, fetch_remote \\ true, options \\ []) + # If we pass an Activity to Object.normalize(), we can try to use the preloaded object. # Use this whenever possible, especially when walking graphs in an O(N) loop! def normalize(%Object{} = object, _, _), do: object @@ -55,25 +63,15 @@ defmodule Pleroma.Object do %Object{id: "pleroma:fake_object_id", data: data} end - # Catch and log Object.normalize() calls where the Activity's child object is not - # preloaded. + # No preloaded object def normalize(%Activity{data: %{"object" => %{"id" => ap_id}}}, fetch_remote, _) do - Logger.debug( - "Object.normalize() called without preloaded object (#{ap_id}). Consider preloading the object!" - ) - - Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}") - + warn_on_no_object_preloaded(ap_id) normalize(ap_id, fetch_remote) end + # No preloaded object def normalize(%Activity{data: %{"object" => ap_id}}, fetch_remote, _) do - Logger.debug( - "Object.normalize() called without preloaded object (#{ap_id}). Consider preloading the object!" - ) - - Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}") - + warn_on_no_object_preloaded(ap_id) normalize(ap_id, fetch_remote) end |