From 039bfdc42c1b4a760c63915fab0f4cb60084b178 Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Thu, 1 Feb 2024 21:24:59 -0800 Subject: [PATCH] Got all tests working except controller tests --- lib/pinchflat/media/media_item.ex | 2 +- .../media_client/video_downloader.ex | 4 +- lib/pinchflat/tasks/task.ex | 2 +- .../media_client/video_downloader_test.exs | 2 +- test/pinchflat/tasks_test.exs | 46 +++++++++---------- .../workers/video_download_worker_test.exs | 2 +- .../controllers/channel_controller_test.exs | 2 +- 7 files changed, 30 insertions(+), 30 deletions(-) diff --git a/lib/pinchflat/media/media_item.ex b/lib/pinchflat/media/media_item.ex index 486f24a..903a000 100644 --- a/lib/pinchflat/media/media_item.ex +++ b/lib/pinchflat/media/media_item.ex @@ -22,7 +22,7 @@ defmodule Pinchflat.Media.MediaItem do # Will very likely revisit because I can't leave well-enough alone. field :subtitle_filepaths, {:array, {:array, :string}}, default: [] - belongs_to :channel, Channel, foreign_key: :source_id + belongs_to :source, Channel has_one :metadata, MediaMetadata, on_replace: :update diff --git a/lib/pinchflat/media_client/video_downloader.ex b/lib/pinchflat/media_client/video_downloader.ex index a993f59..68d7621 100644 --- a/lib/pinchflat/media_client/video_downloader.ex +++ b/lib/pinchflat/media_client/video_downloader.ex @@ -25,8 +25,8 @@ defmodule Pinchflat.MediaClient.VideoDownloader do Returns {:ok, %MediaItem{}} | {:error, any, ...any} """ def download_for_media_item(%MediaItem{} = media_item, backend \\ :yt_dlp) do - item_with_preloads = Repo.preload(media_item, [:metadata, channel: :media_profile]) - media_profile = item_with_preloads.channel.media_profile + item_with_preloads = Repo.preload(media_item, [:metadata, source: :media_profile]) + media_profile = item_with_preloads.source.media_profile case download_for_media_profile(media_item.media_id, media_profile, backend) do {:ok, parsed_json} -> diff --git a/lib/pinchflat/tasks/task.ex b/lib/pinchflat/tasks/task.ex index 5106302..fdd0f19 100644 --- a/lib/pinchflat/tasks/task.ex +++ b/lib/pinchflat/tasks/task.ex @@ -11,7 +11,7 @@ defmodule Pinchflat.Tasks.Task do schema "tasks" do belongs_to :job, Oban.Job - belongs_to :channel, Channel, foreign_key: :source_id + belongs_to :source, Channel belongs_to :media_item, MediaItem timestamps(type: :utc_datetime) diff --git a/test/pinchflat/media_client/video_downloader_test.exs b/test/pinchflat/media_client/video_downloader_test.exs index 50d19fe..3d31530 100644 --- a/test/pinchflat/media_client/video_downloader_test.exs +++ b/test/pinchflat/media_client/video_downloader_test.exs @@ -11,7 +11,7 @@ defmodule Pinchflat.MediaClient.VideoDownloaderTest do media_item = Repo.preload( media_item_fixture(%{title: nil, media_filepath: nil}), - [:metadata, channel: :media_profile] + [:metadata, source: :media_profile] ) {:ok, %{media_item: media_item}} diff --git a/test/pinchflat/tasks_test.exs b/test/pinchflat/tasks_test.exs index e559e46..d89c5b0 100644 --- a/test/pinchflat/tasks_test.exs +++ b/test/pinchflat/tasks_test.exs @@ -21,11 +21,11 @@ defmodule Pinchflat.TasksTest do end test "it does not delete the other record when a job gets deleted" do - task = Repo.preload(task_fixture(), [:channel, :job]) + task = Repo.preload(task_fixture(), [:source, :job]) {:ok, _} = Repo.delete(task.job) - assert Repo.reload!(task.channel) + assert Repo.reload!(task.source) end end @@ -40,14 +40,14 @@ defmodule Pinchflat.TasksTest do test "it lets you specify which record type/ID to join on" do task = task_fixture() - assert Tasks.list_tasks_for(:channel_id, task.channel_id) == [task] + assert Tasks.list_tasks_for(:source_id, task.source_id) == [task] end test "it lets you specify which job states to include" do task = task_fixture() - assert Tasks.list_tasks_for(:channel_id, task.channel_id, [:available]) == [task] - assert Tasks.list_tasks_for(:channel_id, task.channel_id, [:cancelled]) == [] + assert Tasks.list_tasks_for(:source_id, task.source_id, [:available]) == [task] + assert Tasks.list_tasks_for(:source_id, task.source_id, [:cancelled]) == [] end end @@ -55,14 +55,14 @@ defmodule Pinchflat.TasksTest do test "it lists pending tasks" do task = task_fixture() - assert Tasks.list_pending_tasks_for(:channel_id, task.channel_id) == [task] + assert Tasks.list_pending_tasks_for(:source_id, task.source_id) == [task] end test "it does not list non-pending tasks" do task = Repo.preload(task_fixture(), :job) :ok = Oban.cancel_job(task.job) - assert Tasks.list_pending_tasks_for(:channel_id, task.channel_id) == [] + assert Tasks.list_pending_tasks_for(:source_id, task.source_id) == [] end end @@ -84,14 +84,14 @@ defmodule Pinchflat.TasksTest do assert {:error, %Ecto.Changeset{}} = Tasks.create_task(@invalid_attrs) end - test "accepts a job and channel" do + test "accepts a job and source" do job = job_fixture() source = source_fixture() - assert {:ok, %Task{} = task} = Tasks.create_task(job, channel) + assert {:ok, %Task{} = task} = Tasks.create_task(job, source) assert task.job_id == job.id - assert task.channel_id == channel.id + assert task.source_id == source.id end test "accepts a job and media item" do @@ -117,23 +117,23 @@ defmodule Pinchflat.TasksTest do test "it creates a task record if successful" do source = source_fixture() - assert {:ok, %Task{} = task} = Tasks.create_job_with_task(TestJobWorker.new(%{}), channel) + assert {:ok, %Task{} = task} = Tasks.create_job_with_task(TestJobWorker.new(%{}), source) - assert task.channel_id == channel.id + assert task.source_id == source.id end test "it returns an error if the job already exists" do source = source_fixture() job = TestJobWorker.new(%{foo: "bar"}, unique: [period: :infinity]) - assert {:ok, %Task{}} = Tasks.create_job_with_task(job, channel) - assert {:error, :duplicate_job} = Tasks.create_job_with_task(job, channel) + assert {:ok, %Task{}} = Tasks.create_job_with_task(job, source) + assert {:error, :duplicate_job} = Tasks.create_job_with_task(job, source) end test "it returns an error if the job fails to enqueue" do source = source_fixture() - assert {:error, %Ecto.Changeset{}} = Tasks.create_job_with_task(%Ecto.Changeset{}, channel) + assert {:error, %Ecto.Changeset{}} = Tasks.create_job_with_task(%Ecto.Changeset{}, source) end end @@ -155,11 +155,11 @@ defmodule Pinchflat.TasksTest do end describe "delete_tasks_for/1" do - test "it deletes tasks attached to a channel" do + test "it deletes tasks attached to a source" do source = source_fixture() - task = task_fixture(channel_id: channel.id) + task = task_fixture(source_id: source.id) - assert :ok = Tasks.delete_tasks_for(channel) + assert :ok = Tasks.delete_tasks_for(source) assert_raise Ecto.NoResultsError, fn -> Tasks.get_task!(task.id) end end @@ -173,20 +173,20 @@ defmodule Pinchflat.TasksTest do end describe "delete_pending_tasks_for/1" do - test "it deletes pending tasks attached to a channel" do + test "it deletes pending tasks attached to a source" do source = source_fixture() - task = task_fixture(channel_id: channel.id) + task = task_fixture(source_id: source.id) - assert :ok = Tasks.delete_pending_tasks_for(channel) + assert :ok = Tasks.delete_pending_tasks_for(source) assert_raise Ecto.NoResultsError, fn -> Tasks.get_task!(task.id) end end test "it does not delete non-pending tasks" do source = source_fixture() - task = Repo.preload(task_fixture(channel_id: channel.id), :job) + task = Repo.preload(task_fixture(source_id: source.id), :job) :ok = Oban.cancel_job(task.job) - assert :ok = Tasks.delete_pending_tasks_for(channel) + assert :ok = Tasks.delete_pending_tasks_for(source) assert Tasks.get_task!(task.id) end diff --git a/test/pinchflat/workers/video_download_worker_test.exs b/test/pinchflat/workers/video_download_worker_test.exs index da4cb66..3a515f9 100644 --- a/test/pinchflat/workers/video_download_worker_test.exs +++ b/test/pinchflat/workers/video_download_worker_test.exs @@ -12,7 +12,7 @@ defmodule Pinchflat.Workers.VideoDownloadWorkerTest do media_item = Repo.preload( media_item_fixture(%{media_filepath: nil}), - [:metadata, channel: :media_profile] + [:metadata, source: :media_profile] ) {:ok, %{media_item: media_item}} diff --git a/test/pinchflat_web/controllers/channel_controller_test.exs b/test/pinchflat_web/controllers/channel_controller_test.exs index 604bb44..28d1cf7 100644 --- a/test/pinchflat_web/controllers/channel_controller_test.exs +++ b/test/pinchflat_web/controllers/channel_controller_test.exs @@ -104,7 +104,7 @@ defmodule PinchflatWeb.ChannelControllerTest do defp create_source(_) do source = source_fixture() - %{channel: channel} + %{channel: source} end defp runner_function_mock(_url, _opts, _ot) do