Merge branch 'feature/jobs' into 'develop'

Job Queue

See merge request pleroma/pleroma!732
This commit is contained in:
kaniini 2019-02-18 19:43:06 +00:00
commit 833161b5d2
16 changed files with 370 additions and 152 deletions

View file

@ -15,22 +15,6 @@ defmodule Pleroma.Web.FederatorTest do
:ok
end
test "enqueues an element according to priority" do
queue = [%{item: 1, priority: 2}]
new_queue = Federator.enqueue_sorted(queue, 2, 1)
assert new_queue == [%{item: 2, priority: 1}, %{item: 1, priority: 2}]
new_queue = Federator.enqueue_sorted(queue, 2, 3)
assert new_queue == [%{item: 1, priority: 2}, %{item: 2, priority: 3}]
end
test "pop first item" do
queue = [%{item: 2, priority: 1}, %{item: 1, priority: 2}]
assert {2, [%{item: 1, priority: 2}]} = Federator.queue_pop(queue)
end
describe "Publish an activity" do
setup do
user = insert(:user)
@ -50,7 +34,7 @@ defmodule Pleroma.Web.FederatorTest do
relay_mock: relay_mock
} do
with_mocks([relay_mock]) do
Federator.handle(:publish, activity)
Federator.publish(activity)
end
assert_received :relay_publish
@ -63,7 +47,7 @@ defmodule Pleroma.Web.FederatorTest do
Pleroma.Config.put([:instance, :allow_relay], false)
with_mocks([relay_mock]) do
Federator.handle(:publish, activity)
Federator.publish(activity)
end
refute_received :relay_publish
@ -104,11 +88,9 @@ defmodule Pleroma.Web.FederatorTest do
{:ok, _activity} =
CommonAPI.post(user, %{"status" => "HI @nick1@domain.com, @nick2@domain2.com!"})
assert called(
Federator.enqueue(:publish_single_ap, %{inbox: inbox1, unreachable_since: dt})
)
assert called(Federator.publish_single_ap(%{inbox: inbox1, unreachable_since: dt}))
refute called(Federator.enqueue(:publish_single_ap, %{inbox: inbox2}))
refute called(Federator.publish_single_ap(%{inbox: inbox2}))
end
test_with_mock "it federates only to reachable instances via Websub",
@ -140,13 +122,13 @@ defmodule Pleroma.Web.FederatorTest do
{:ok, _activity} = CommonAPI.post(user, %{"status" => "HI"})
assert called(
Federator.enqueue(:publish_single_websub, %{
Federator.publish_single_websub(%{
callback: sub2.callback,
unreachable_since: dt
})
)
refute called(Federator.enqueue(:publish_single_websub, %{callback: sub1.callback}))
refute called(Federator.publish_single_websub(%{callback: sub1.callback}))
end
test_with_mock "it federates only to reachable instances via Salmon",
@ -180,13 +162,13 @@ defmodule Pleroma.Web.FederatorTest do
CommonAPI.post(user, %{"status" => "HI @nick1@domain.com, @nick2@domain2.com!"})
assert called(
Federator.enqueue(:publish_single_salmon, %{
Federator.publish_single_salmon(%{
recipient: remote_user2,
unreachable_since: dt
})
)
refute called(Federator.enqueue(:publish_single_websub, %{recipient: remote_user1}))
refute called(Federator.publish_single_websub(%{recipient: remote_user1}))
end
end
@ -206,7 +188,7 @@ defmodule Pleroma.Web.FederatorTest do
"to" => ["https://www.w3.org/ns/activitystreams#Public"]
}
{:ok, _activity} = Federator.handle(:incoming_ap_doc, params)
{:ok, _activity} = Federator.incoming_ap_doc(params)
end
test "rejects incoming AP docs with incorrect origin" do
@ -224,7 +206,7 @@ defmodule Pleroma.Web.FederatorTest do
"to" => ["https://www.w3.org/ns/activitystreams#Public"]
}
:error = Federator.handle(:incoming_ap_doc, params)
:error = Federator.incoming_ap_doc(params)
end
end
end