def test_get_content_payloads_dest_profile( job_type: JobType, create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job = create_sync_job( job_type, dest_profile="20", ) profiles: Profiles = [ Profile(name="Any", id=1), Profile(name="Other One", id=10), Profile(name="Profile", id=20), ] item_one = create_content_item(job_type, quality_profile_id=1) content: ContentItems = [ item_one, ] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=profiles, dest_languages=[], ) payload = payloads[0] assert payload assert payload.quality_profile_id == 20
def test_get_content_payloads_lidarr_metadata_profile( create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job_type = JobType.Lidarr job = create_sync_job(job_type, dest_metadata_profile="other") profiles: Profiles = [ Profile(name="Any", id=1), ] metadata_profiles: Profiles = [ Profile(name="Standard", id=1), Profile(name="Other", id=10), ] item_one = create_content_item(job_type, metadata_profile_id=1) content: ContentItems = [ item_one, ] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=metadata_profiles, dest_languages=[], ) payload = payloads[0] assert isinstance(payload, LidarrContent) assert payload.metadata_profile_id == 10
def test_find_job_profile(query: str, result: Dict[str, Any]) -> None: profiles = [ Profile(name="Profile 1", id=1), Profile(name="Profile 2", id=2), Profile(name="Profile 3", id=3), Profile(name="Profile 4", id=4), ] found_profile = find_in_list(profiles, query) assert result == found_profile
def test_find_job_profiles() -> None: profiles = [ Profile(name="Profile 1", id=1), Profile(name="Profile 2", id=2), Profile(name="Profile 3", id=3), Profile(name="Profile 4", id=4), ] profile_list = ["1", "profile 4"] found_profile_ids = find_ids_in_list(profiles, profile_list) assert "1" in found_profile_ids assert "4" in found_profile_ids
def test_get_content_payloads_lidarr_no_metdata_profile( create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job_type = JobType.Lidarr job = create_sync_job(job_type) profiles: Profiles = [ Profile(name="Any", id=1), ] metadata_profiles: Profiles = [] item_one = create_content_item(job_type, metadata_profile_id=1) content: ContentItems = [ item_one, ] with pytest.raises(Exception): get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=metadata_profiles, dest_languages=[], )
def test_get_content_payloads_sonarr_languages( create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job_type = JobType.Sonarr job = create_sync_job(job_type, dest_language_profile="2") profiles: Profiles = [ Profile(name="Any", id=1), ] languages: Languages = [ Language(name="English", id=1), Language(name="Test", id=2) ] item_one = create_content_item(job_type, language_profile_id=1) content: ContentItems = [item_one] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=[], dest_languages=languages, ) payload = payloads[0] assert isinstance(payload, SonarrContent) assert payload.language_profile_id == 2
def test_get_content_payloads_monitored( job_type: JobType, create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job = create_sync_job( job_type, dest_monitor=True, ) profiles: Profiles = [ Profile(name="Any", id=1), ] item_one = create_content_item(job_type, monitored=False, quality_profile_id=10) content: ContentItems = [item_one] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=profiles, dest_languages=[], ) payload = payloads[0] assert payload assert payload.monitored
def test_get_content_payloads_dest_path( job_type: JobType, create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job = create_sync_job( job_type, dest_path="/data/path", ) profiles: Profiles = [ Profile(name="Any", id=1), ] item_one = create_content_item(job_type, root_folder_path="/old/path") content: ContentItems = [ item_one, ] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=profiles, dest_languages=[], ) payload = payloads[0] assert payload assert payload.root_folder_path == "/data/path"
def test_calculate_content_quality_profile_include( job_type: JobType, create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job = create_sync_job(job_type, source_profile_include=" other one , 20") source_profiles: Profiles = [ Profile(name="Any", id=1), Profile(name="Other One", id=10), Profile(name="Profile", id=20), ] item_one = create_content_item(job_type, quality_profile_id=1) item_two = create_content_item(job_type, quality_profile_id=10) item_three = create_content_item(job_type, quality_profile_id=20) source_content: ContentItems = [ item_one, item_two, item_three, ] dest_content: ContentItems = [] content_diff = calculate_content_diff( job=job, source_content=source_content, source_tags=[], source_profiles=source_profiles, dest_content=dest_content, ) print(content_diff) assert len(content_diff) == 2 assert item_in_list(content_diff, item_three) assert item_in_list(content_diff, item_two) assert not item_in_list(content_diff, item_one)
def test_get_content_payloads_search_missing( job_type: JobType, create_sync_job: CreateSyncJob, create_content_item: CreateContentItem, ) -> None: job = create_sync_job( job_type, dest_search_missing=True, ) profiles: Profiles = [ Profile(name="Any", id=1), ] item_one = create_content_item(job_type) content: ContentItems = [item_one] payloads = get_content_payloads( job=job, content=content, dest_profiles=profiles, dest_metadata_profiles=profiles, dest_languages=[], ) payload = payloads[0] assert payload assert payload.add_options if job_type is JobType.Sonarr: assert payload.add_options["searchForMissingEpisodes"] elif job_type is JobType.Radarr: assert payload.add_options["searchForMovie"] elif job_type is JobType.Lidarr: assert payload.add_options["searchForMissingAlbums"] else: _assert_never(job_type)