projects
/
akkoma
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9015df2
)
pipeline_test: Fix usage of %Activity{}
author
Haelwenn (lanodan) Monnier
<contact@hacktivis.me>
Tue, 12 Jan 2021 13:11:29 +0000
(14:11 +0100)
committer
Haelwenn (lanodan) Monnier
<contact@hacktivis.me>
Thu, 1 Apr 2021 12:18:40 +0000
(14:18 +0200)
lib/pleroma/web/activity_pub/object_validator.ex
patch
|
blob
|
history
lib/pleroma/web/activity_pub/pipeline.ex
patch
|
blob
|
history
test/pleroma/web/activity_pub/pipeline_test.exs
patch
|
blob
|
history
diff --git
a/lib/pleroma/web/activity_pub/object_validator.ex
b/lib/pleroma/web/activity_pub/object_validator.ex
index f757442039b54b3d2f33a918a5b3ff42ed0b4f91..15784b28ce709c76f5dbde8270416956d55d4d1d 100644
(file)
--- a/
lib/pleroma/web/activity_pub/object_validator.ex
+++ b/
lib/pleroma/web/activity_pub/object_validator.ex
@@
-169,7
+169,7
@@
defmodule Pleroma.Web.ActivityPub.ObjectValidator do
def cast_and_apply(o), do: {:error, {:validator_not_set, o}}
def cast_and_apply(o), do: {:error, {:validator_not_set, o}}
- # is_struct/1
isn't present in Elixir 1.8.x
+ # is_struct/1
appears in Elixir 1.11
def stringify_keys(%{__struct__: _} = object) do
object
|> Map.from_struct()
def stringify_keys(%{__struct__: _} = object) do
object
|> Map.from_struct()
diff --git
a/lib/pleroma/web/activity_pub/pipeline.ex
b/lib/pleroma/web/activity_pub/pipeline.ex
index 195596f94e3e4138cc286113b45c116c2032c5ac..0aa504e728cb45f5fbee2a012496e33da4cd311f 100644
(file)
--- a/
lib/pleroma/web/activity_pub/pipeline.ex
+++ b/
lib/pleroma/web/activity_pub/pipeline.ex
@@
-40,6
+40,8
@@
defmodule Pleroma.Web.ActivityPub.Pipeline do
end
end
end
end
+ def do_common_pipeline(%{__struct__: _}, _meta), do: {:error, :is_struct}
+
def do_common_pipeline(object, meta) do
with {_, {:ok, validated_object, meta}} <-
{:validate_object, @object_validator.validate(object, meta)},
def do_common_pipeline(object, meta) do
with {_, {:ok, validated_object, meta}} <-
{:validate_object, @object_validator.validate(object, meta)},
diff --git
a/test/pleroma/web/activity_pub/pipeline_test.exs
b/test/pleroma/web/activity_pub/pipeline_test.exs
index 52fa933ee2d91b2fdde5811f3abf820846ce80b8..e606fa3d11fbc3353ab797b29203f2e41d50b0aa 100644
(file)
--- a/
test/pleroma/web/activity_pub/pipeline_test.exs
+++ b/
test/pleroma/web/activity_pub/pipeline_test.exs
@@
-25,9
+25,6
@@
defmodule Pleroma.Web.ActivityPub.PipelineTest do
MRFMock
|> expect(:pipeline_filter, fn o, m -> {:ok, o, m} end)
MRFMock
|> expect(:pipeline_filter, fn o, m -> {:ok, o, m} end)
- ActivityPubMock
- |> expect(:persist, fn o, m -> {:ok, o, m} end)
-
SideEffectsMock
|> expect(:handle, fn o, m -> {:ok, o, m} end)
|> expect(:handle_after_transaction, fn m -> m end)
SideEffectsMock
|> expect(:handle, fn o, m -> {:ok, o, m} end)
|> expect(:handle_after_transaction, fn m -> m end)
@@
-42,6
+39,9
@@
defmodule Pleroma.Web.ActivityPub.PipelineTest do
activity_with_object = %{activity | data: Map.put(activity.data, "object", object)}
activity_with_object = %{activity | data: Map.put(activity.data, "object", object)}
+ ActivityPubMock
+ |> expect(:persist, fn _, m -> {:ok, activity, m} end)
+
FederatorMock
|> expect(:publish, fn ^activity_with_object -> :ok end)
FederatorMock
|> expect(:publish, fn ^activity_with_object -> :ok end)
@@
-50,7
+50,7
@@
defmodule Pleroma.Web.ActivityPub.PipelineTest do
assert {:ok, ^activity, ^meta} =
Pleroma.Web.ActivityPub.Pipeline.common_pipeline(
assert {:ok, ^activity, ^meta} =
Pleroma.Web.ActivityPub.Pipeline.common_pipeline(
- activity,
+ activity
.data
,
meta
)
end
meta
)
end
@@
-59,6
+59,9
@@
defmodule Pleroma.Web.ActivityPub.PipelineTest do
activity = insert(:note_activity)
meta = [local: true]
activity = insert(:note_activity)
meta = [local: true]
+ ActivityPubMock
+ |> expect(:persist, fn _, m -> {:ok, activity, m} end)
+
FederatorMock
|> expect(:publish, fn ^activity -> :ok end)
FederatorMock
|> expect(:publish, fn ^activity -> :ok end)
@@
-66,29
+69,35
@@
defmodule Pleroma.Web.ActivityPub.PipelineTest do
|> expect(:get, fn [:instance, :federating] -> true end)
assert {:ok, ^activity, ^meta} =
|> expect(:get, fn [:instance, :federating] -> true end)
assert {:ok, ^activity, ^meta} =
- Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity, meta)
+ Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity
.data
, meta)
end
test "it goes through validation, filtering, persisting, side effects without federation for remote activities" do
activity = insert(:note_activity)
meta = [local: false]
end
test "it goes through validation, filtering, persisting, side effects without federation for remote activities" do
activity = insert(:note_activity)
meta = [local: false]
+ ActivityPubMock
+ |> expect(:persist, fn _, m -> {:ok, activity, m} end)
+
ConfigMock
|> expect(:get, fn [:instance, :federating] -> true end)
assert {:ok, ^activity, ^meta} =
ConfigMock
|> expect(:get, fn [:instance, :federating] -> true end)
assert {:ok, ^activity, ^meta} =
- Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity, meta)
+ Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity
.data
, meta)
end
test "it goes through validation, filtering, persisting, side effects without federation for local activities if federation is deactivated" do
activity = insert(:note_activity)
meta = [local: true]
end
test "it goes through validation, filtering, persisting, side effects without federation for local activities if federation is deactivated" do
activity = insert(:note_activity)
meta = [local: true]
+ ActivityPubMock
+ |> expect(:persist, fn _, m -> {:ok, activity, m} end)
+
ConfigMock
|> expect(:get, fn [:instance, :federating] -> false end)
assert {:ok, ^activity, ^meta} =
ConfigMock
|> expect(:get, fn [:instance, :federating] -> false end)
assert {:ok, ^activity, ^meta} =
- Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity, meta)
+ Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity
.data
, meta)
end
end
end
end
end
end