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')), ]
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)), ]
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
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'), ]
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') ]
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, ) ]