Refactored existing tests
This commit is contained in:
parent
dbd2841341
commit
92ff0e5177
12 changed files with 29 additions and 23 deletions
|
|
@ -64,8 +64,8 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do
|
||||||
|
|
||||||
{:ok, media_item} =
|
{:ok, media_item} =
|
||||||
case run_user_script(:media_pre_download, media_item) do
|
case run_user_script(:media_pre_download, media_item) do
|
||||||
{:ok, _, 0} -> {:ok, media_item}
|
{:ok, _, exit_code} when exit_code > 0 -> Media.update_media_item(media_item, %{prevent_download: true})
|
||||||
{:ok, _, _} -> Media.update_media_item(media_item, %{prevent_download: true})
|
_ -> {:ok, media_item}
|
||||||
end
|
end
|
||||||
|
|
||||||
Repo.preload(media_item, :source)
|
Repo.preload(media_item, :source)
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ defmodule Pinchflat.Lifecycle.UserScripts.CommandRunner do
|
||||||
def run(event_type, encodable_data) when event_type in @event_types do
|
def run(event_type, encodable_data) when event_type in @event_types do
|
||||||
case backend_executable() do
|
case backend_executable() do
|
||||||
{:ok, :no_executable} ->
|
{:ok, :no_executable} ->
|
||||||
:ok
|
{:ok, :no_executable}
|
||||||
|
|
||||||
{:ok, executable_path} ->
|
{:ok, executable_path} ->
|
||||||
{:ok, encoded_data} = Phoenix.json_library().encode(encodable_data)
|
{:ok, encoded_data} = Phoenix.json_library().encode(encodable_data)
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ defmodule Pinchflat.Media do
|
||||||
|
|
||||||
if delete_files do
|
if delete_files do
|
||||||
{:ok, _} = do_delete_media_files(media_item)
|
{:ok, _} = do_delete_media_files(media_item)
|
||||||
:ok = run_user_script(:media_deleted, media_item)
|
run_user_script(:media_deleted, media_item)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Should delete these no matter what
|
# Should delete these no matter what
|
||||||
|
|
@ -194,7 +194,7 @@ defmodule Pinchflat.Media do
|
||||||
|
|
||||||
Tasks.delete_tasks_for(media_item)
|
Tasks.delete_tasks_for(media_item)
|
||||||
{:ok, _} = do_delete_media_files(media_item)
|
{:ok, _} = do_delete_media_files(media_item)
|
||||||
:ok = run_user_script(:media_deleted, media_item)
|
run_user_script(:media_deleted, media_item)
|
||||||
|
|
||||||
update_media_item(media_item, Map.merge(filepath_attrs, addl_attrs))
|
update_media_item(media_item, Map.merge(filepath_attrs, addl_attrs))
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
stub(YtDlpRunnerMock, :run, fn _url, _opts, _ot -> {:ok, ""} end)
|
stub(YtDlpRunnerMock, :run, fn _url, _opts, _ot -> {:ok, ""} end)
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
stub(HTTPClientMock, :get, fn _url, _headers, _opts -> {:ok, ""} end)
|
stub(HTTPClientMock, :get, fn _url, _headers, _opts -> {:ok, ""} end)
|
||||||
|
|
||||||
media_item =
|
media_item =
|
||||||
|
|
@ -170,7 +170,7 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do
|
||||||
expect(UserScriptRunnerMock, :run, fn :media_downloaded, data ->
|
expect(UserScriptRunnerMock, :run, fn :media_downloaded, data ->
|
||||||
assert data.id == media_item.id
|
assert data.id == media_item.id
|
||||||
|
|
||||||
:ok
|
{:ok, "", 0}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
perform_job(MediaDownloadWorker, %{id: media_item.id})
|
perform_job(MediaDownloadWorker, %{id: media_item.id})
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ defmodule Pinchflat.Downloading.MediaRetentionWorkerTest do
|
||||||
alias Pinchflat.Downloading.MediaRetentionWorker
|
alias Pinchflat.Downloading.MediaRetentionWorker
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ defmodule Pinchflat.Lifecycle.UserScripts.CommandRunnerTest do
|
||||||
File.write(filepath(), "#!/bin/bash\ntouch #{filename}\n")
|
File.write(filepath(), "#!/bin/bash\ntouch #{filename}\n")
|
||||||
|
|
||||||
refute File.exists?(filename)
|
refute File.exists?(filename)
|
||||||
assert :ok = Runner.run(:media_downloaded, %{})
|
assert {:ok, _, _} = Runner.run(:media_downloaded, %{})
|
||||||
assert File.exists?(filename)
|
assert File.exists?(filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ defmodule Pinchflat.Lifecycle.UserScripts.CommandRunnerTest do
|
||||||
tmp_dir = Application.get_env(:pinchflat, :tmpfile_directory)
|
tmp_dir = Application.get_env(:pinchflat, :tmpfile_directory)
|
||||||
File.write(filepath(), "#!/bin/bash\necho $1 > #{tmp_dir}/event_name\n")
|
File.write(filepath(), "#!/bin/bash\necho $1 > #{tmp_dir}/event_name\n")
|
||||||
|
|
||||||
assert :ok = Runner.run(:media_downloaded, %{})
|
assert {:ok, _, _} = Runner.run(:media_downloaded, %{})
|
||||||
assert File.read!("#{tmp_dir}/event_name") == "media_downloaded\n"
|
assert File.read!("#{tmp_dir}/event_name") == "media_downloaded\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -35,26 +35,32 @@ defmodule Pinchflat.Lifecycle.UserScripts.CommandRunnerTest do
|
||||||
tmp_dir = Application.get_env(:pinchflat, :tmpfile_directory)
|
tmp_dir = Application.get_env(:pinchflat, :tmpfile_directory)
|
||||||
File.write(filepath(), "#!/bin/bash\necho $2 > #{tmp_dir}/encoded_data\n")
|
File.write(filepath(), "#!/bin/bash\necho $2 > #{tmp_dir}/encoded_data\n")
|
||||||
|
|
||||||
assert :ok = Runner.run(:media_downloaded, %{foo: "bar"})
|
assert {:ok, _, _} = Runner.run(:media_downloaded, %{foo: "bar"})
|
||||||
assert File.read!("#{tmp_dir}/encoded_data") == "{\"foo\":\"bar\"}\n"
|
assert File.read!("#{tmp_dir}/encoded_data") == "{\"foo\":\"bar\"}\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does nothing if the lifecycle file is not present" do
|
test "does nothing if the lifecycle file is not present" do
|
||||||
:ok = File.rm(filepath())
|
:ok = File.rm(filepath())
|
||||||
|
|
||||||
assert :ok = Runner.run(:media_downloaded, %{})
|
assert {:ok, :no_executable} = Runner.run(:media_downloaded, %{})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "does nothing if the lifecycle file is empty" do
|
test "does nothing if the lifecycle file is empty" do
|
||||||
File.write(filepath(), "")
|
File.write(filepath(), "")
|
||||||
|
|
||||||
assert :ok = Runner.run(:media_downloaded, %{})
|
assert {:ok, :no_executable} = Runner.run(:media_downloaded, %{})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "returns :ok if the command exits with a non-zero status" do
|
test "returns :ok if the command exits with a non-zero status" do
|
||||||
File.write(filepath(), "#!/bin/bash\nexit 1\n")
|
File.write(filepath(), "#!/bin/bash\nexit 1\n")
|
||||||
|
|
||||||
assert :ok = Runner.run(:media_downloaded, %{})
|
assert {:ok, _, 1} = Runner.run(:media_downloaded, %{})
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns the output of the command" do
|
||||||
|
File.write(filepath(), "#!/bin/bash\necho 'hello'\n")
|
||||||
|
|
||||||
|
assert {:ok, "hello\n", 0} = Runner.run(:media_downloaded, %{})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "gets upset if you pass an invalid event type" do
|
test "gets upset if you pass an invalid event type" do
|
||||||
|
|
|
||||||
|
|
@ -684,7 +684,7 @@ defmodule Pinchflat.MediaTest do
|
||||||
|
|
||||||
describe "delete_media_item/2 when testing file deletion" do
|
describe "delete_media_item/2 when testing file deletion" do
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
@ -745,7 +745,7 @@ defmodule Pinchflat.MediaTest do
|
||||||
expect(UserScriptRunnerMock, :run, fn :media_deleted, data ->
|
expect(UserScriptRunnerMock, :run, fn :media_deleted, data ->
|
||||||
assert data.id == media_item.id
|
assert data.id == media_item.id
|
||||||
|
|
||||||
:ok
|
{:ok, "", 0}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
assert {:ok, _} = Media.delete_media_item(media_item, delete_files: true)
|
assert {:ok, _} = Media.delete_media_item(media_item, delete_files: true)
|
||||||
|
|
@ -754,7 +754,7 @@ defmodule Pinchflat.MediaTest do
|
||||||
|
|
||||||
describe "delete_media_files/2" do
|
describe "delete_media_files/2" do
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
@ -817,7 +817,7 @@ defmodule Pinchflat.MediaTest do
|
||||||
expect(UserScriptRunnerMock, :run, fn :media_deleted, data ->
|
expect(UserScriptRunnerMock, :run, fn :media_deleted, data ->
|
||||||
assert data.id == media_item.id
|
assert data.id == media_item.id
|
||||||
|
|
||||||
:ok
|
{:ok, "", 0}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
assert {:ok, _} = Media.delete_media_files(media_item)
|
assert {:ok, _} = Media.delete_media_files(media_item)
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ defmodule Pinchflat.ProfilesTest do
|
||||||
|
|
||||||
describe "delete_media_profile/2 when deleting files" do
|
describe "delete_media_profile/2 when deleting files" do
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -617,7 +617,7 @@ defmodule Pinchflat.SourcesTest do
|
||||||
|
|
||||||
describe "delete_source/2 when deleting files" do
|
describe "delete_source/2 when deleting files" do
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ defmodule PinchflatWeb.MediaItemControllerTest do
|
||||||
describe "delete media" do
|
describe "delete media" do
|
||||||
setup do
|
setup do
|
||||||
media_item = media_item_with_attachments()
|
media_item = media_item_with_attachments()
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
%{media_item: media_item}
|
%{media_item: media_item}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ defmodule PinchflatWeb.MediaProfileControllerTest do
|
||||||
setup [:create_media_profile]
|
setup [:create_media_profile]
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,7 @@ defmodule PinchflatWeb.SourceControllerTest do
|
||||||
setup [:create_source]
|
setup [:create_source]
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> {:ok, "", 0} end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue