summaryrefslogtreecommitdiff
path: root/test/tasks/uploads_test.exs
diff options
context:
space:
mode:
authorraeno <just.raeno@gmail.com>2018-12-18 14:59:32 +0100
committerraeno <just.raeno@gmail.com>2018-12-18 14:59:32 +0100
commita3003364598b42849e384a216948dad810481f51 (patch)
tree2ed2b04efab457220a60fb7630906b1b26f24df3 /test/tasks/uploads_test.exs
parent30812f84518f1b2fcc70a416d1a6b9f81264f3a5 (diff)
parentb6ae412fcd7c67d64dd1467e8e35d17140e992df (diff)
downloadpleroma-a3003364598b42849e384a216948dad810481f51.tar.gz
pleroma-a3003364598b42849e384a216948dad810481f51.zip
Merge branch 'develop' into oembed_provider
Diffstat (limited to 'test/tasks/uploads_test.exs')
-rw-r--r--test/tasks/uploads_test.exs52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/tasks/uploads_test.exs b/test/tasks/uploads_test.exs
new file mode 100644
index 000000000..93035abb6
--- /dev/null
+++ b/test/tasks/uploads_test.exs
@@ -0,0 +1,52 @@
+defmodule Mix.Tasks.Pleroma.UploadsTest do
+ alias Pleroma.Upload
+ use Pleroma.DataCase
+
+ import Mock
+
+ setup_all do
+ Mix.shell(Mix.Shell.Process)
+
+ on_exit(fn ->
+ Mix.shell(Mix.Shell.IO)
+ end)
+
+ :ok
+ end
+
+ describe "running migrate_local" do
+ test "uploads migrated" do
+ with_mock Upload,
+ store: fn %Upload{name: _file, path: _path}, _opts -> {:ok, %{}} end do
+ Mix.Tasks.Pleroma.Uploads.run(["migrate_local", "S3"])
+
+ assert_received {:mix_shell, :info, [message]}
+ assert message =~ "Migrating files from local"
+
+ assert_received {:mix_shell, :info, [message]}
+
+ assert %{"total_count" => total_count} =
+ Regex.named_captures(~r"^Found (?<total_count>\d+) uploads$", message)
+
+ assert_received {:mix_shell, :info, [message]}
+
+ # @logevery in Mix.Tasks.Pleroma.Uploads
+ count =
+ min(50, String.to_integer(total_count))
+ |> to_string()
+
+ assert %{"count" => ^count, "total_count" => ^total_count} =
+ Regex.named_captures(
+ ~r"^Uploaded (?<count>\d+)/(?<total_count>\d+) files$",
+ message
+ )
+ end
+ end
+
+ test "nonexistent uploader" do
+ assert_raise RuntimeError, ~r/The uploader .* is not an existing/, fn ->
+ Mix.Tasks.Pleroma.Uploads.run(["migrate_local", "nonexistent"])
+ end
+ end
+ end
+end