Tests
This commit is contained in:
parent
03cb68abe1
commit
f7e2c03edc
2 changed files with 61 additions and 7 deletions
|
|
@ -11,6 +11,16 @@ defmodule Pinchflat.Metadata.MetadataFileHelpersTest do
|
||||||
{:ok, %{media_item: media_item}}
|
{:ok, %{media_item: media_item}}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "metadata_directory_for/1" do
|
||||||
|
test "returns the metadata directory for the given record", %{media_item: media_item} do
|
||||||
|
base_metadata_directory = Application.get_env(:pinchflat, :metadata_directory)
|
||||||
|
|
||||||
|
metadata_directory = Helpers.metadata_directory_for(media_item)
|
||||||
|
|
||||||
|
assert metadata_directory == Path.join([base_metadata_directory, "media_items", "#{media_item.id}"])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "compress_and_store_metadata_for/2" do
|
describe "compress_and_store_metadata_for/2" do
|
||||||
test "returns the filepath", %{media_item: media_item} do
|
test "returns the filepath", %{media_item: media_item} do
|
||||||
metadata_map = %{"foo" => "bar"}
|
metadata_map = %{"foo" => "bar"}
|
||||||
|
|
@ -142,13 +152,20 @@ defmodule Pinchflat.Metadata.MetadataFileHelpersTest do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "metadata_directory_for/1" do
|
describe "season_and_episode_from_media_filepath/1" do
|
||||||
test "returns the metadata directory for the given record", %{media_item: media_item} do
|
test "returns a season and episode if one can be determined" do
|
||||||
base_metadata_directory = Application.get_env(:pinchflat, :metadata_directory)
|
assert {:ok, {"1", "2"}} = Helpers.season_and_episode_from_media_filepath("/foo/s1e2 - test.mp4")
|
||||||
|
assert {:ok, {"1", "2"}} = Helpers.season_and_episode_from_media_filepath("/foo/S1E2 - test.mp4")
|
||||||
|
assert {:ok, {"001", "002"}} = Helpers.season_and_episode_from_media_filepath("/foo/s001e002 - test.mp4")
|
||||||
|
assert {:ok, {"1", "2"}} = Helpers.season_and_episode_from_media_filepath("/foo/s1e2bar - test.mp4")
|
||||||
|
assert {:ok, {"1", "2"}} = Helpers.season_and_episode_from_media_filepath("/foo/bar s1e2 - test.mp4")
|
||||||
|
end
|
||||||
|
|
||||||
metadata_directory = Helpers.metadata_directory_for(media_item)
|
test "returns an error if a season and episode can't be determined" do
|
||||||
|
assert {:error, :indeterminable} = Helpers.season_and_episode_from_media_filepath("/foo/test.mp4")
|
||||||
assert metadata_directory == Path.join([base_metadata_directory, "media_items", "#{media_item.id}"])
|
assert {:error, :indeterminable} = Helpers.season_and_episode_from_media_filepath("/foo/s1 - test.mp4")
|
||||||
|
assert {:error, :indeterminable} = Helpers.season_and_episode_from_media_filepath("/foo/s1e - test.mp4")
|
||||||
|
assert {:error, :indeterminable} = Helpers.season_and_episode_from_media_filepath("/foo/s1etest.mp4")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ defmodule Pinchflat.Metadata.NfoBuilderTest do
|
||||||
alias Pinchflat.Utils.FilesystemUtils
|
alias Pinchflat.Utils.FilesystemUtils
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
filepath = FilesystemUtils.generate_metadata_tmpfile(:json)
|
filepath = FilesystemUtils.generate_metadata_tmpfile(:nfo)
|
||||||
|
|
||||||
on_exit(fn -> File.rm!(filepath) end)
|
on_exit(fn -> File.rm!(filepath) end)
|
||||||
|
|
||||||
|
|
@ -45,6 +45,43 @@ defmodule Pinchflat.Metadata.NfoBuilderTest do
|
||||||
|
|
||||||
assert String.contains?(nfo, "hello' & <world>")
|
assert String.contains?(nfo, "hello' & <world>")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "uses the season and episode number from the filepath if it can be determined" do
|
||||||
|
metadata = %{
|
||||||
|
"title" => "title",
|
||||||
|
"uploader" => "uploader",
|
||||||
|
"id" => "id",
|
||||||
|
"description" => "description",
|
||||||
|
"upload_date" => "20210101"
|
||||||
|
}
|
||||||
|
|
||||||
|
tmpfile_directory = Application.get_env(:pinchflat, :tmpfile_directory)
|
||||||
|
filepath = Path.join([tmpfile_directory, "foo/s0123e456.nfo"])
|
||||||
|
|
||||||
|
result = NfoBuilder.build_and_store_for_media_item(filepath, metadata)
|
||||||
|
nfo = File.read!(result)
|
||||||
|
|
||||||
|
assert String.contains?(nfo, "<season>0123</season>")
|
||||||
|
assert String.contains?(nfo, "<episode>456</episode>")
|
||||||
|
|
||||||
|
File.rm!(filepath)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "uses the upload date if the season and episode number can't be determined", %{filepath: filepath} do
|
||||||
|
metadata = %{
|
||||||
|
"title" => "title",
|
||||||
|
"uploader" => "uploader",
|
||||||
|
"id" => "id",
|
||||||
|
"description" => "description",
|
||||||
|
"upload_date" => "20210101"
|
||||||
|
}
|
||||||
|
|
||||||
|
result = NfoBuilder.build_and_store_for_media_item(filepath, metadata)
|
||||||
|
nfo = File.read!(result)
|
||||||
|
|
||||||
|
assert String.contains?(nfo, "<season>2021</season>")
|
||||||
|
assert String.contains?(nfo, "<episode>0101</episode>")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "build_and_store_for_source/2" do
|
describe "build_and_store_for_source/2" do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue