diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-23 21:08:07 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-23 21:22:12 +0300 |
commit | 755bf36437632d51c720517c9a0c09a0459b7084 (patch) | |
tree | 82edc76d09da5d99794809d932f59ba468d8b1cb /test | |
parent | aa06fc584b7a5f87a75722e0015097cd666f1961 (diff) | |
download | pleroma-755bf36437632d51c720517c9a0c09a0459b7084.tar.gz |
fix mediaproxy invalidations
Diffstat (limited to 'test')
-rw-r--r-- | test/web/media_proxy/invalidation_test.exs | 51 | ||||
-rw-r--r-- | test/web/media_proxy/invalidations/http_test.exs | 4 | ||||
-rw-r--r-- | test/web/media_proxy/invalidations/script_test.exs | 16 |
3 files changed, 62 insertions, 9 deletions
diff --git a/test/web/media_proxy/invalidation_test.exs b/test/web/media_proxy/invalidation_test.exs new file mode 100644 index 000000000..e97cf9fc1 --- /dev/null +++ b/test/web/media_proxy/invalidation_test.exs @@ -0,0 +1,51 @@ +defmodule Pleroma.Web.MediaProxy.InvalidationTest do + use ExUnit.Case + use Pleroma.Tests.Helpers + + alias Pleroma.Config + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + import Mock + import Tesla.Mock + + setup do: clear_config([:media_proxy]) + + describe "Invalidation.Http" do + test "perform request to clear cache" do + Config.put([:media_proxy, :invalidation, :enabled], true) + Config.put([:media_proxy, :invalidation, :provider], Invalidation.Http) + + Config.put([Invalidation.Http], method: :purge, headers: [{"x-refresh", 1}]) + + mock(fn + %{ + method: :purge, + url: "http://example.com/media/example.jpg", + headers: [{"x-refresh", 1}] + } -> + %Tesla.Env{status: 200} + end) + + assert capture_log(fn -> + assert Invalidation.purge(["http://example.com/media/example.jpg"]) == + {:ok, "success"} + end) =~ "Running cache purge: [\"http://example.com/media/example.jpg\"]" + end + end + + describe "Invalidation.Script" do + test "run script to clear cache" do + Config.put([:media_proxy, :invalidation, :enabled], true) + Config.put([:media_proxy, :invalidation, :provider], Invalidation.Script) + Config.put([Invalidation.Script], script_path: "purge-nginx") + + with_mocks [{System, [], [cmd: fn _, _ -> {"ok", 0} end]}] do + assert capture_log(fn -> + assert Invalidation.purge(["http://example.com/media/example.jpg"]) == + {:ok, "success"} + end) =~ "Running cache purge: [\"http://example.com/media/example.jpg\"]" + end + end + end +end diff --git a/test/web/media_proxy/invalidations/http_test.exs b/test/web/media_proxy/invalidations/http_test.exs index 8a3b4141c..553b86b76 100644 --- a/test/web/media_proxy/invalidations/http_test.exs +++ b/test/web/media_proxy/invalidations/http_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do refute capture_log(fn -> assert Invalidation.Http.purge( ["http://example.com/media/example.jpg"], - %{} + [] ) == {:ok, "success"} end) =~ "Error while cache purge" end @@ -28,7 +28,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do assert capture_log(fn -> assert Invalidation.Http.purge( ["http://example.com/media/example1.jpg"], - %{} + [] ) == {:ok, "success"} end) =~ "Error while cache purge: url - http://example.com/media/example1.jpg" end diff --git a/test/web/media_proxy/invalidations/script_test.exs b/test/web/media_proxy/invalidations/script_test.exs index 1358963ab..4f95d40ef 100644 --- a/test/web/media_proxy/invalidations/script_test.exs +++ b/test/web/media_proxy/invalidations/script_test.exs @@ -8,13 +8,15 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do assert capture_log(fn -> assert Invalidation.Script.purge( ["http://example.com/media/example.jpg"], - %{script_path: "./example"} - ) == {:error, "\"%ErlangError{original: :enoent}\""} - end) =~ "Error while cache purge: \"%ErlangError{original: :enoent}\"" + script_path: "./example" + ) == {:error, "%ErlangError{original: :enoent}"} + end) =~ "Error while cache purge: %ErlangError{original: :enoent}" - assert Invalidation.Script.purge( - ["http://example.com/media/example.jpg"], - %{} - ) == {:error, "not found script path"} + capture_log(fn -> + assert Invalidation.Script.purge( + ["http://example.com/media/example.jpg"], + [] + ) == {:error, "\"not found script path\""} + end) end end |