Mox mode setup tweak; refactoring.
authorIvan Tashkinov <ivantashkinov@gmail.com>
Mon, 18 Jan 2021 21:23:39 +0000 (00:23 +0300)
committerIvan Tashkinov <ivantashkinov@gmail.com>
Mon, 18 Jan 2021 21:23:39 +0000 (00:23 +0300)
test/pleroma/gun/connection_pool_test.exs
test/support/channel_case.ex
test/support/conn_case.ex
test/support/data_case.ex

index 459d19b1150a8e6d08e9c575dc02c0fb59340c01..9cbaf09786a4fe3f4e0432094c2062f2b26baaba 100644 (file)
@@ -19,7 +19,6 @@ defmodule Pleroma.Gun.ConnectionPoolTest do
     :ok
   end
 
-  setup :set_mox_from_context
   setup :gun_mock
 
   test "gives the same connection to 2 concurrent requests" do
index 6888984a2571b8b050de6dd0dc6b933ed4c06cfe..1fbf6f100f83e2594b4b9b2bb1b732aad58564c9 100644 (file)
@@ -30,19 +30,5 @@ defmodule Pleroma.Web.ChannelCase do
     end
   end
 
-  setup tags do
-    :ok = Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo)
-
-    if tags[:async] do
-      Mox.stub_with(Pleroma.CachexMock, Pleroma.NullCache)
-      Mox.set_mox_private()
-    else
-      Ecto.Adapters.SQL.Sandbox.mode(Pleroma.Repo, {:shared, self()})
-      Mox.stub_with(Pleroma.CachexMock, Pleroma.CachexProxy)
-      Mox.set_mox_global()
-      Pleroma.DataCase.clear_cachex()
-    end
-
-    :ok
-  end
+  setup tags, do: Pleroma.DataCase.setup_multi_process_mode(tags)
 end
index 5b7111fd3d274be678a3294b9e43aecd22ddf44c..953aa010abccb094762261c0fe7b8a118af7e5ec 100644 (file)
@@ -19,6 +19,8 @@ defmodule Pleroma.Web.ConnCase do
 
   use ExUnit.CaseTemplate
 
+  alias Pleroma.DataCase
+
   using do
     quote do
       # Import conveniences for testing with connections
@@ -116,27 +118,9 @@ defmodule Pleroma.Web.ConnCase do
   end
 
   setup tags do
-    :ok = Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo)
-
-    if tags[:async] do
-      Mox.stub_with(Pleroma.CachexMock, Pleroma.NullCache)
-      Mox.set_mox_private()
-    else
-      Ecto.Adapters.SQL.Sandbox.mode(Pleroma.Repo, {:shared, self()})
-      Mox.stub_with(Pleroma.CachexMock, Pleroma.CachexProxy)
-      Mox.set_mox_global()
-      Pleroma.DataCase.clear_cachex()
-    end
-
-    if tags[:needs_streamer] do
-      start_supervised(%{
-        id: Pleroma.Web.Streamer.registry(),
-        start:
-          {Registry, :start_link, [[keys: :duplicate, name: Pleroma.Web.Streamer.registry()]]}
-      })
-    end
-
-    Pleroma.DataCase.stub_pipeline()
+    DataCase.setup_multi_process_mode(tags)
+    DataCase.setup_streamer(tags)
+    DataCase.stub_pipeline()
 
     Mox.verify_on_exit!()
 
index 9db3478bcbe11d9034a4aeac322a9918ff782c20..c309d2f41c08dcbb4478f54f1292e04f8fda1ecd 100644 (file)
@@ -62,7 +62,7 @@ defmodule Pleroma.DataCase do
     end)
   end
 
-  setup tags do
+  def setup_multi_process_mode(tags) do
     :ok = Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo)
 
     if tags[:async] do
@@ -70,11 +70,16 @@ defmodule Pleroma.DataCase do
       Mox.set_mox_private()
     else
       Ecto.Adapters.SQL.Sandbox.mode(Pleroma.Repo, {:shared, self()})
-      Mox.stub_with(Pleroma.CachexMock, Pleroma.CachexProxy)
+
       Mox.set_mox_global()
+      Mox.stub_with(Pleroma.CachexMock, Pleroma.CachexProxy)
       clear_cachex()
     end
 
+    :ok
+  end
+
+  def setup_streamer(tags) do
     if tags[:needs_streamer] do
       start_supervised(%{
         id: Pleroma.Web.Streamer.registry(),
@@ -83,6 +88,12 @@ defmodule Pleroma.DataCase do
       })
     end
 
+    :ok
+  end
+
+  setup tags do
+    setup_multi_process_mode(tags)
+    setup_streamer(tags)
     stub_pipeline()
 
     Mox.verify_on_exit!()