Exemple #1
0
async def test_WebDbSearchJob_initialize_sets_query_from_path(tmp_path, foodb):
    foodb.sanitize_query.return_value = Query('this query')
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        db=foodb,
        query='path/to/foo',
    )
    assert job.query == Query('this query')
    assert foodb.sanitize_query.call_args_list == [
        call(Query.from_path('path/to/foo')),
    ]
Exemple #2
0
async def test_WebDbSearchJob_initialize_sets_no_id_ok(no_id_ok, exp_no_id_ok,
                                                       tmp_path, foodb):
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        db=foodb,
        query=Query(title='The Foo', year=2010),
        no_id_ok=no_id_ok,
    )
    assert job.no_id_ok == exp_no_id_ok
    assert foodb.sanitize_query.call_args_list == [
        call(Query(title='The Foo', year=2010)),
    ]
Exemple #3
0
def job(foodb, tmp_path, mocker):
    mocker.patch('upsies.jobs.webdb._Searcher',
                 Mock(return_value=Mock(wait=AsyncMock())))
    mocker.patch('upsies.jobs.webdb._InfoUpdater',
                 Mock(return_value=Mock(wait=AsyncMock())))
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        ignore_cache=False,
        db=foodb,
        query=Query('Mock Title'),
    )
    assert job._db is foodb
    return job
Exemple #4
0
async def test_WebDbSearchJob_initialize_creates_info_updater(
        tmp_path, mocker, foodb):
    InfoUpdater_mock = mocker.patch('upsies.jobs.webdb._InfoUpdater', Mock())
    make_update_info_func_mock = mocker.patch(
        'upsies.jobs.webdb.WebDbSearchJob._make_update_info_func',
        Mock(side_effect=(
            'id func',
            'summary func',
            'title_original func',
            'title_english func',
            'genres func',
            'directors func',
            'cast func',
            'countries func',
        ), ))
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        ignore_cache=False,
        db=foodb,
        query='path/to/foo',
    )
    assert job._info_updater is InfoUpdater_mock.return_value
    assert InfoUpdater_mock.call_args_list == [
        call(
            error_callback=job.warn,
            exception_callback=job.exception,
            targets={
                'id': 'id func',
                'summary': 'summary func',
                'title_original': 'title_original func',
                'title_english': 'title_english func',
                'genres': 'genres func',
                'directors': 'directors func',
                'cast': 'cast func',
                'countries': 'countries func',
            },
        )
    ]
    assert make_update_info_func_mock.call_args_list == [
        call('id'),
        call('summary'),
        call('title_original'),
        call('title_english'),
        call('genres'),
        call('directors'),
        call('cast'),
        call('countries'),
    ]
Exemple #5
0
async def test_WebDbSearchJob_make_update_info_func(tmp_path, mocker, foodb):
    mocker.patch('upsies.jobs.webdb.WebDbSearchJob._update_info')
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        ignore_cache=False,
        db=foodb,
        query='path/to/foo',
    )
    func = job._make_update_info_func('key')
    func('value 1')
    assert job._update_info.call_args_list == [call('key', 'value 1')]
    func('value 2')
    assert job._update_info.call_args_list == [
        call('key', 'value 1'), call('key', 'value 2')
    ]
Exemple #6
0
async def test_WebDbSearchJob_initialize_creates_searcher(
        tmp_path, mocker, foodb):
    Searcher_mock = mocker.patch('upsies.jobs.webdb._Searcher', Mock())
    job = webdb.WebDbSearchJob(
        home_directory=tmp_path,
        cache_directory=tmp_path,
        ignore_cache=False,
        db=foodb,
        query='path/to/foo',
    )
    assert job._searcher is Searcher_mock.return_value
    assert Searcher_mock.call_args_list == [
        call(
            search_coro=foodb.search,
            results_callback=job._handle_search_results,
            error_callback=job.warn,
            exception_callback=job.exception,
            searching_callback=job._handle_searching_status,
        )
    ]