Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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=[],
        )
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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"
Exemple #9
0
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)
Exemple #10
0
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)