Procházet zdrojové kódy

tests for Pleroma.Uploaders

tags/v1.1.4
Maksim kaniini před 4 roky
rodič
revize
11d08c2de0
5 změnil soubory, kde provedl 87 přidání a 2 odebrání
  1. +1
    -0
      docs/config.md
  2. +2
    -2
      lib/pleroma/uploaders/local.ex
  3. +2
    -0
      lib/pleroma/uploaders/mdii.ex
  4. +32
    -0
      test/uploaders/local_test.exs
  5. +50
    -0
      test/uploaders/mdii_test.exs

+ 1
- 0
docs/config.md Zobrazit soubor

@@ -18,6 +18,7 @@ Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`.

## Pleroma.Uploaders.S3
* `bucket`: S3 bucket name
* `bucket_namespace`: S3 bucket namespace
* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.ap-northeast-1.amazonaws.com")
* `truncated_namespace`: If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or "" etc.
For example, when using CDN to S3 virtual host format, set "".


+ 2
- 2
lib/pleroma/uploaders/local.ex Zobrazit soubor

@@ -11,7 +11,7 @@ defmodule Pleroma.Uploaders.Local do

def put_file(upload) do
{local_path, file} =
case Enum.reverse(String.split(upload.path, "/", trim: true)) do
case Enum.reverse(Path.split(upload.path)) do
[file] ->
{upload_path(), file}

@@ -23,7 +23,7 @@ defmodule Pleroma.Uploaders.Local do

result_file = Path.join(local_path, file)

unless File.exists?(result_file) do
if not File.exists?(result_file) do
File.cp!(upload.tempfile, result_file)
end



+ 2
- 0
lib/pleroma/uploaders/mdii.ex Zobrazit soubor

@@ -3,6 +3,8 @@
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Uploaders.MDII do
@moduledoc "Represents uploader for https://github.com/hakaba-hitoyo/minimal-digital-image-infrastructure"

alias Pleroma.Config
alias Pleroma.HTTP



+ 32
- 0
test/uploaders/local_test.exs Zobrazit soubor

@@ -0,0 +1,32 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Uploaders.LocalTest do
use Pleroma.DataCase
alias Pleroma.Uploaders.Local

describe "get_file/1" do
test "it returns path to local folder for files" do
assert Local.get_file("") == {:ok, {:static_dir, "test/uploads"}}
end
end

describe "put_file/1" do
test "put file to local folder" do
file_path = "local_upload/files/image.jpg"

file = %Pleroma.Upload{
name: "image.jpg",
content_type: "image/jpg",
path: file_path,
tempfile: Path.absname("test/fixtures/image_tmp.jpg")
}

assert Local.put_file(file) == :ok

assert Path.join([Local.upload_path(), file_path])
|> File.exists?()
end
end
end

+ 50
- 0
test/uploaders/mdii_test.exs Zobrazit soubor

@@ -0,0 +1,50 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Uploaders.MDIITest do
use Pleroma.DataCase
alias Pleroma.Uploaders.MDII
import Tesla.Mock

describe "get_file/1" do
test "it returns path to local folder for files" do
assert MDII.get_file("") == {:ok, {:static_dir, "test/uploads"}}
end
end

describe "put_file/1" do
setup do
file_upload = %Pleroma.Upload{
name: "mdii-image.jpg",
content_type: "image/jpg",
path: "test_folder/mdii-image.jpg",
tempfile: Path.absname("test/fixtures/image_tmp.jpg")
}

[file_upload: file_upload]
end

test "save file", %{file_upload: file_upload} do
mock(fn
%{method: :post, url: "https://mdii.sakura.ne.jp/mdii-post.cgi?jpg"} ->
%Tesla.Env{status: 200, body: "mdii-image"}
end)

assert MDII.put_file(file_upload) ==
{:ok, {:url, "https://mdii.sakura.ne.jp/mdii-image.jpg"}}
end

test "save file to local if MDII isn`t available", %{file_upload: file_upload} do
mock(fn
%{method: :post, url: "https://mdii.sakura.ne.jp/mdii-post.cgi?jpg"} ->
%Tesla.Env{status: 500}
end)

assert MDII.put_file(file_upload) == :ok

assert Path.join([Pleroma.Uploaders.Local.upload_path(), file_upload.path])
|> File.exists?()
end
end
end

Načítá se…
Zrušit
Uložit