mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-27 21:54:17 +01:00
379 lines
18 KiB
Python
379 lines
18 KiB
Python
import platform
|
|
import unittest
|
|
|
|
from svtplay_dl.service import Service
|
|
from svtplay_dl.utils.output import _formatname
|
|
from svtplay_dl.utils.output import formatname
|
|
from svtplay_dl.utils.parser import setup_defaults
|
|
|
|
|
|
class formatnameTest(unittest.TestCase):
|
|
all_combo = [
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-21-0xdeadface-99-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface-99-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface-99",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-21-0xdeadface-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}-{episodename}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"test-title-service-mp4-0xdeadface-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-21-99-service-episodename-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-99-service-episodename-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-99-service-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-21-service-episodename-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-episodename-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"test-{title}-{episode}-{season}-{service}-{episodename}-{id}-{ext}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"test-title-service-episodename-0xdeadface-mp4",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99-mp4-21-episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99-mp4-episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99-mp4-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-mp4-21-episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-mp4-episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}-{ext}-{episode}-{episodename}-{title}-{service}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"0xdeadface-mp4-episodename-title-service",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"service-mp4-99-0xdeadface-title-episodename-21",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"service-mp4-99-0xdeadface-title-episodename",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"service-mp4-99-0xdeadface-title",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"service-mp4-0xdeadface-title-episodename-21",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"service-mp4-0xdeadface-title-episodename",
|
|
],
|
|
[
|
|
"{service}-{ext}-{season}-{id}-{title}-{episodename}-{episode}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"service-mp4-0xdeadface-title-episodename",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-21-0xdeadface-99",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface-99",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface-99",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-21-0xdeadface",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"test-title-service-mp4-0xdeadface",
|
|
],
|
|
[
|
|
"test-{title}-{service}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"test-title-service-mp4-0xdeadface",
|
|
],
|
|
[
|
|
"{title}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-21-0xdeadface-99",
|
|
],
|
|
[
|
|
"{title}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-0xdeadface-99",
|
|
],
|
|
["{title}-{ext}-{episode}-{id}-{season}", {"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"}, "title-mp4-0xdeadface-99"],
|
|
[
|
|
"{title}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-21-0xdeadface",
|
|
],
|
|
[
|
|
"{title}-{ext}-{episode}-{id}-{season}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-0xdeadface",
|
|
],
|
|
["{title}-{ext}-{episode}-{id}-{season}", {"title": "title", "episodename": "episodename", "id": "0xdeadface"}, "title-mp4-0xdeadface"],
|
|
[
|
|
"{title}-{ext}.{episode}-{id}.{season}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4.21-0xdeadface.99",
|
|
],
|
|
[
|
|
"{title}-{ext}.{episode}-{id}.{season}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-0xdeadface.99",
|
|
],
|
|
["{title}-{ext}.{episode}-{id}.{season}", {"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"}, "title-mp4-0xdeadface.99"],
|
|
[
|
|
"{title}-{ext}.{episode}-{id}.{season}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4.21-0xdeadface",
|
|
],
|
|
[
|
|
"{title}-{ext}.{episode}-{id}.{season}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title-mp4-0xdeadface",
|
|
],
|
|
["{title}-{ext}.{episode}-{id}.{season}", {"title": "title", "episodename": "episodename", "id": "0xdeadface"}, "title-mp4-0xdeadface"],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99mp4-21episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99mp4episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadface-99mp4-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadfacemp4-21episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"0xdeadfacemp4episodename-title-service",
|
|
],
|
|
[
|
|
"{id}-{season}{ext}-{episode}{episodename}-{title}-{service}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"0xdeadfacemp4episodename-title-service",
|
|
],
|
|
[
|
|
"{episodename}a{title}-{service}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"episodenameatitle-service",
|
|
],
|
|
[
|
|
"{episodename}a{title}-{service}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"episodenameatitle-service",
|
|
],
|
|
["{episodename}a{title}-{service}", {"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"}, "atitle-service"],
|
|
[
|
|
"{episodename}a{title}-{service}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"episodenameatitle-service",
|
|
],
|
|
[
|
|
"{episodename}a{title}-{service}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"episodenameatitle-service",
|
|
],
|
|
["{episodename}a{title}-{service}", {"title": "title", "episodename": "episodename", "id": "0xdeadface"}, "episodenameatitle-service"],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.21.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "season": 99, "id": "0xdeadface", "ext": "ext"},
|
|
"title-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.21.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "episodename": "episodename", "id": "0xdeadface"},
|
|
"title.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.s{season}e{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "season": 99, "episode": 21, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.s99e21.episodename-0xdeadface-service.mp4",
|
|
],
|
|
[
|
|
"{title}.s{season}e{episode}.{episodename}-{id}-{service}.{ext}",
|
|
{"title": "title", "season": 99, "episodename": "episodename", "id": "0xdeadface", "ext": "ext"},
|
|
"title.s99.episodename-0xdeadface-service.mp4",
|
|
],
|
|
]
|
|
|
|
def test_formatname(self):
|
|
for item in self.all_combo:
|
|
config = setup_defaults()
|
|
config.set("filename", item[0])
|
|
service = Service(config, "localhost")
|
|
service.output.update(item[1])
|
|
assert _formatname(service.output, config, "mp4") == item[2]
|
|
|
|
|
|
class formatnameTest2(unittest.TestCase):
|
|
def test_formatnameEmpty(self):
|
|
config = setup_defaults()
|
|
service = Service(config, "http://localhost")
|
|
assert formatname(service.output, config) == "-service.mp4"
|
|
|
|
def test_formatnameOutput(self):
|
|
config = setup_defaults()
|
|
config.set("output", "/tmp")
|
|
service = Service(config, "http://localhost")
|
|
if platform.system() == "Windows":
|
|
assert formatname(service.output, config) == "/tmp.mp4"
|
|
else:
|
|
assert formatname(service.output, config) == "/tmp/-service.mp4"
|
|
|
|
def test_formatnameBasedir(self):
|
|
config = setup_defaults()
|
|
service = Service(config, "http://localhost")
|
|
service.output["basedir"] = True
|
|
assert formatname(service.output, config) == "-service.mp4"
|
|
|
|
def test_formatnameTvshow(self):
|
|
config = setup_defaults()
|
|
service = Service(config, "http://localhost")
|
|
service.output["tvshow"] = True
|
|
service.output["title"] = "kalle"
|
|
service.output["season"] = 2
|
|
service.output["episode"] = 2
|
|
assert formatname(service.output, config) == "kalle.s02e02-service.mp4"
|
|
|
|
def test_formatnameTvshowSubfolder(self):
|
|
config = setup_defaults()
|
|
config.set("subfolder", True)
|
|
service = Service(config, "http://localhost")
|
|
service.output["tvshow"] = True
|
|
service.output["title"] = "kalle"
|
|
service.output["season"] = 2
|
|
service.output["episode"] = 2
|
|
if platform.system() == "Windows":
|
|
assert formatname(service.output, config) == r"kalle\kalle.s02e02-service.mp4"
|
|
else:
|
|
assert formatname(service.output, config) == "kalle/kalle.s02e02-service.mp4"
|
|
|
|
def test_formatnameTvshowSubfolderMovie(self):
|
|
config = setup_defaults()
|
|
config.set("subfolder", True)
|
|
service = Service(config, "http://localhost")
|
|
service.output["tvshow"] = False
|
|
service.output["title"] = "kalle"
|
|
service.output["season"] = 2
|
|
service.output["episode"] = 2
|
|
if platform.system() == "Windows":
|
|
assert formatname(service.output, config) == r"movies\kalle.s02e02-service.mp4"
|
|
else:
|
|
assert formatname(service.output, config) == "movies/kalle.s02e02-service.mp4"
|
|
|
|
def test_formatnameTvshowPath(self):
|
|
config = setup_defaults()
|
|
if platform.system() == "Windows":
|
|
config.set("path", "c:")
|
|
else:
|
|
config.set("path", "/tmp")
|
|
service = Service(config, "http://localhost")
|
|
service.output["title"] = "kalle"
|
|
service.output["season"] = 2
|
|
service.output["episode"] = 2
|
|
if platform.system() == "Windows":
|
|
assert formatname(service.output, config) == r"c:kalle.s02e02-service.mp4"
|
|
else:
|
|
assert formatname(service.output, config) == "/tmp/kalle.s02e02-service.mp4"
|