[Housekeeping] Improve test stability (#232)
* Ensured all tests use at least the DataCase module * addressed one flakey test * More flakey tests * Consolidated Mox usage
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.Boot.PreJobStartupTasksTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.JobFixtures
|
||||
|
||||
alias Pinchflat.Settings
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.Downloading.DownloadingHelpersTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
@@ -10,8 +9,6 @@ defmodule Pinchflat.Downloading.DownloadingHelpersTest do
|
||||
alias Pinchflat.Downloading.DownloadingHelpers
|
||||
alias Pinchflat.Downloading.MediaDownloadWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "enqueue_pending_download_tasks/1" do
|
||||
test "it enqueues a job for each pending media item" do
|
||||
source = source_fixture()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
|
||||
alias Pinchflat.Media
|
||||
@@ -9,8 +8,6 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do
|
||||
alias Pinchflat.Utils.FilesystemUtils
|
||||
alias Pinchflat.Downloading.MediaDownloadWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
setup do
|
||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
||||
stub(HTTPClientMock, :get, fn _url, _headers, _opts -> {:ok, ""} end)
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
defmodule Pinchflat.Downloading.MediaDownloaderTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
|
||||
alias Pinchflat.Downloading.MediaDownloader
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
setup do
|
||||
media_item =
|
||||
Repo.preload(
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
defmodule Pinchflat.Downloading.MediaRetentionWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
|
||||
alias Pinchflat.Media
|
||||
alias Pinchflat.Downloading.MediaRetentionWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "perform/1" do
|
||||
setup do
|
||||
stub(UserScriptRunnerMock, :run, fn _event_type, _data -> :ok end)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Downloading.OutputPath.ParserTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Downloading.OutputPath.Parser
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.FastIndexing.FastIndexingHelpersTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
@@ -11,8 +10,6 @@ defmodule Pinchflat.FastIndexing.FastIndexingHelpersTest do
|
||||
alias Pinchflat.Downloading.MediaDownloadWorker
|
||||
alias Pinchflat.FastIndexing.FastIndexingHelpers
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "kickoff_download_tasks_from_youtube_rss_feed/1" do
|
||||
setup do
|
||||
stub(YtDlpRunnerMock, :run, fn _url, _opts, _ot ->
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
defmodule Pinchflat.FastIndexing.FastIndexingWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.SourcesFixtures
|
||||
|
||||
alias Pinchflat.Settings
|
||||
alias Pinchflat.Sources.Source
|
||||
alias Pinchflat.FastIndexing.FastIndexingWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "kickoff_with_task/2" do
|
||||
test "starts the worker" do
|
||||
source = source_fixture(fast_index: true)
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
defmodule Pinchflat.FastIndexing.YoutubeRssTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.SourcesFixtures
|
||||
|
||||
alias Pinchflat.FastIndexing.YoutubeRss
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
setup do
|
||||
source = source_fixture()
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Lifecycle.Notifications.CommandRunnerTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Lifecycle.Notifications.CommandRunner, as: Runner
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.Lifecycle.Notifications.SourceNotificationsTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
|
||||
@@ -9,8 +8,6 @@ defmodule Pinchflat.Lifecycle.Notifications.SourceNotificationsTest do
|
||||
|
||||
@apprise_servers ["server_1", "server_2"]
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "wrap_new_media_notification/3" do
|
||||
test "sends a notification when the pending count changes" do
|
||||
source = source_fixture()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Lifecycle.UserScripts.CommandRunnerTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.FilesystemUtils
|
||||
alias Pinchflat.Lifecycle.UserScripts.CommandRunner, as: Runner
|
||||
@@ -15,11 +15,12 @@ defmodule Pinchflat.Lifecycle.UserScripts.CommandRunnerTest do
|
||||
test "runs the provided lifecycle file if present" do
|
||||
# We *love* indirectly testing side effects
|
||||
tmp_dir = Application.get_env(:pinchflat, :tmpfile_directory)
|
||||
File.write(filepath(), "#!/bin/bash\ntouch #{tmp_dir}/test_file\n")
|
||||
filename = "#{tmp_dir}/test_file-#{Enum.random(1..1000)}"
|
||||
File.write(filepath(), "#!/bin/bash\ntouch #{filename}\n")
|
||||
|
||||
refute File.exists?("#{tmp_dir}/test_file")
|
||||
refute File.exists?(filename)
|
||||
assert :ok = Runner.run(:media_downloaded, %{})
|
||||
assert File.exists?("#{tmp_dir}/test_file")
|
||||
assert File.exists?(filename)
|
||||
end
|
||||
|
||||
test "passes the event name to the script" do
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.MediaTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.TasksFixtures
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
@@ -13,8 +12,6 @@ defmodule Pinchflat.MediaTest do
|
||||
|
||||
alias Pinchflat.YtDlp.Media, as: YtDlpMedia
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
@invalid_attrs %{title: nil, media_id: nil, media_filepath: nil}
|
||||
|
||||
describe "schema" do
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
defmodule Pinchflat.Metadata.MetadataFileHelpersTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.MediaFixtures
|
||||
|
||||
alias Pinchflat.Metadata.MetadataFileHelpers, as: Helpers
|
||||
@@ -11,8 +11,6 @@ defmodule Pinchflat.Metadata.MetadataFileHelpersTest do
|
||||
{:ok, %{media_item: media_item}}
|
||||
end
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "compress_and_store_metadata_for/2" do
|
||||
test "returns the filepath", %{media_item: media_item} do
|
||||
metadata_map = %{"foo" => "bar"}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
defmodule Pinchflat.Metadata.SourceMetadataStorageWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.SourcesFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
|
||||
@@ -11,8 +11,6 @@ defmodule Pinchflat.Metadata.SourceMetadataStorageWorkerTest do
|
||||
@source_details_ot "%(.{channel,channel_id,playlist_id,playlist_title,filename})j"
|
||||
@metadata_ot "playlist:%()j"
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "kickoff_with_task/1" do
|
||||
test "enqueues a new worker for the source" do
|
||||
source = source_fixture()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.ProfilesTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
@@ -11,8 +10,6 @@ defmodule Pinchflat.ProfilesTest do
|
||||
|
||||
@invalid_attrs %{name: nil, output_path_template: nil}
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "schema" do
|
||||
test "can be JSON encoded without error" do
|
||||
profile = media_profile_fixture()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.SlowIndexing.FileFollowerServerTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias alias Pinchflat.Utils.FilesystemUtils
|
||||
alias Pinchflat.SlowIndexing.FileFollowerServer
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.SlowIndexing.MediaCollectionIndexingWorkerTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.TasksFixtures
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
@@ -13,8 +12,6 @@ defmodule Pinchflat.SlowIndexing.MediaCollectionIndexingWorkerTest do
|
||||
alias Pinchflat.Downloading.MediaDownloadWorker
|
||||
alias Pinchflat.SlowIndexing.MediaCollectionIndexingWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "kickoff_with_task/3" do
|
||||
setup do
|
||||
source = source_fixture(index_frequency_minutes: 10)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
defmodule Pinchflat.SlowIndexing.SlowIndexingHelpersTest do
|
||||
use Pinchflat.DataCase
|
||||
|
||||
import Mox
|
||||
import Pinchflat.TasksFixtures
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.SourcesFixtures
|
||||
@@ -15,8 +14,6 @@ defmodule Pinchflat.SlowIndexing.SlowIndexingHelpersTest do
|
||||
alias Pinchflat.SlowIndexing.SlowIndexingHelpers
|
||||
alias Pinchflat.SlowIndexing.MediaCollectionIndexingWorker
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "kickoff_indexing_task/3" do
|
||||
test "it schedules a job" do
|
||||
source = source_fixture(index_frequency_minutes: 1)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
defmodule Pinchflat.SourcesTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.TasksFixtures
|
||||
import Pinchflat.MediaFixtures
|
||||
import Pinchflat.ProfilesFixtures
|
||||
@@ -18,8 +18,6 @@ defmodule Pinchflat.SourcesTest do
|
||||
|
||||
@invalid_source_attrs %{name: nil, collection_id: nil}
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "schema" do
|
||||
test "source_metadata is deleted when the source is deleted" do
|
||||
source =
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.ChangesetUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
defmodule MockSchema do
|
||||
use Ecto.Schema
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.CliUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.CliUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.DatetimeUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.DatetimeUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.FunctionUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.FunctionUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.NumberUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.NumberUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.StringUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.StringUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.Utils.XmlUtilsTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.XmlUtils
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
defmodule Pinchflat.YtDlp.CommandRunnerTest do
|
||||
use ExUnit.Case, async: false
|
||||
use Pinchflat.DataCase
|
||||
|
||||
alias Pinchflat.Utils.FilesystemUtils
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
defmodule Pinchflat.YtDlp.MediaCollectionTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.SourcesFixtures
|
||||
|
||||
alias Pinchflat.YtDlp.Media
|
||||
@@ -8,8 +8,6 @@ defmodule Pinchflat.YtDlp.MediaCollectionTest do
|
||||
|
||||
@channel_url "https://www.youtube.com/c/PinchflatTestChannel"
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "get_media_attributes_for_collection/2" do
|
||||
test "returns a list of video attributes with no blank elements" do
|
||||
expect(YtDlpRunnerMock, :run, fn _url, _opts, _ot, _addl_opts ->
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
defmodule Pinchflat.YtDlp.MediaTest do
|
||||
use Pinchflat.DataCase
|
||||
import Mox
|
||||
|
||||
import Pinchflat.MediaFixtures
|
||||
|
||||
alias Pinchflat.YtDlp.Media
|
||||
|
||||
@media_url "https://www.youtube.com/watch?v=TiZPUDkDYbk"
|
||||
|
||||
setup :verify_on_exit!
|
||||
|
||||
describe "download/2" do
|
||||
test "it calls the backend runner with the expected arguments" do
|
||||
expect(YtDlpRunnerMock, :run, fn @media_url, opts, ot, addl ->
|
||||
|
||||
Reference in New Issue
Block a user