|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from subliminal_patch import core
|
|
|
|
|
|
|
|
|
|
|
|
def test_scan_video_movie(tmpdir):
|
|
|
|
video_path = Path(tmpdir, "Taxi Driver 1976 Bluray 720p x264.mkv")
|
|
|
|
video_path.touch()
|
|
|
|
|
|
|
|
result = core.scan_video(str(video_path))
|
|
|
|
assert isinstance(result, core.Movie)
|
|
|
|
|
|
|
|
|
|
|
|
def test_scan_video_episode(tmpdir):
|
|
|
|
video_path = Path(tmpdir, "The Wire S01E01 Bluray 720p x264.mkv")
|
|
|
|
video_path.touch()
|
|
|
|
|
|
|
|
result = core.scan_video(str(video_path))
|
|
|
|
assert isinstance(result, core.Episode)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def pool_instance():
|
|
|
|
yield core.SZProviderPool({"argenteam"}, {})
|
|
|
|
|
|
|
|
|
|
|
|
def test_pool_update_w_nothing(pool_instance):
|
|
|
|
pool_instance.update({}, {}, [], {})
|
|
|
|
assert pool_instance.providers == set()
|
|
|
|
assert pool_instance.discarded_providers == set()
|
|
|
|
|
|
|
|
|
|
|
|
def test_pool_update_w_multiple_providers(pool_instance):
|
|
|
|
assert pool_instance.providers == {"argenteam"}
|
|
|
|
pool_instance.update({"argenteam", "subdivx", "subf2m"}, {}, [], {})
|
|
|
|
assert pool_instance.providers == {"argenteam", "subdivx", "subf2m"}
|
|
|
|
|
|
|
|
|
|
|
|
def test_pool_update_discarded_providers(pool_instance):
|
|
|
|
assert pool_instance.providers == {"argenteam"}
|
|
|
|
|
|
|
|
# Provider was discarded internally
|
|
|
|
pool_instance.discarded_providers = {"argenteam"}
|
|
|
|
|
|
|
|
assert pool_instance.discarded_providers == {"argenteam"}
|
|
|
|
|
|
|
|
# Provider is set to be used again
|
|
|
|
pool_instance.update({"subdivx", "argenteam"}, {}, [], {})
|
|
|
|
|
|
|
|
assert pool_instance.providers == {"argenteam", "subdivx"}
|
|
|
|
|
|
|
|
# Provider should disappear from discarded providers
|
|
|
|
assert pool_instance.discarded_providers == set()
|
|
|
|
|
|
|
|
|
|
|
|
def test_pool_update_discarded_providers_2(pool_instance):
|
|
|
|
assert pool_instance.providers == {"argenteam"}
|
|
|
|
|
|
|
|
# Provider was discarded internally
|
|
|
|
pool_instance.discarded_providers = {"argenteam"}
|
|
|
|
|
|
|
|
assert pool_instance.discarded_providers == {"argenteam"}
|
|
|
|
|
|
|
|
# Provider is not set to be used again
|
|
|
|
pool_instance.update({"subdivx"}, {}, [], {})
|
|
|
|
|
|
|
|
assert pool_instance.providers == {"subdivx"}
|
|
|
|
|
|
|
|
# Provider should not disappear from discarded providers
|
|
|
|
assert pool_instance.discarded_providers == {"argenteam"}
|