X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/8c02786820e771031b9fff5e6d2a540ceb1815c9..42ec67f63c36eb6317ec72b3071437d33d0ce3d0:/test/python/test_cli.py diff --git a/test/python/test_cli.py b/test/python/test_cli.py index 36da3cd2..eae4f65a 100644 --- a/test/python/test_cli.py +++ b/test/python/test_cli.py @@ -48,6 +48,7 @@ def test_cli_help(capsys): captured = capsys.readouterr() assert captured.out.startswith('usage:') + @pytest.mark.parametrize("command,script", [ (('import', '--continue', 'load-data'), 'setup'), (('freeze',), 'setup'), @@ -65,6 +66,57 @@ def test_legacy_commands_simple(mock_run_legacy, command, script): assert mock_run_legacy.called == 1 assert mock_run_legacy.last_args[0] == script + '.php' + +@pytest.mark.parametrize("name,oid", [('file', 'foo.osm'), ('diff', 'foo.osc'), + ('node', 12), ('way', 8), ('relation', 32)]) +def test_add_data_command(mock_run_legacy, name, oid): + assert 0 == call_nominatim('add-data', '--' + name, str(oid)) + + assert mock_run_legacy.called == 1 + assert mock_run_legacy.last_args == ('update.php', '--import-' + name, oid) + + +@pytest.mark.parametrize("params,do_bnds,do_ranks", [ + ([], 1, 1), + (['--boundaries-only'], 1, 0), + (['--no-boundaries'], 0, 1), + (['--boundaries-only', '--no-boundaries'], 0, 0)]) +def test_index_command(monkeypatch, params, do_bnds, do_ranks): + bnd_mock = MockParamCapture() + monkeypatch.setattr(nominatim.cli.Indexer, 'index_boundaries', bnd_mock) + rank_mock = MockParamCapture() + monkeypatch.setattr(nominatim.cli.Indexer, 'index_by_rank', rank_mock) + + assert 0 == call_nominatim('index', *params) + + assert bnd_mock.called == do_bnds + assert rank_mock.called == do_ranks + + +@pytest.mark.parametrize("command,params", [ + ('postcodes', ('update.php', '--calculate-postcodes')), + ('word-counts', ('update.php', '--recompute-word-counts')), + ('address-levels', ('update.php', '--update-address-levels')), + ('functions', ('setup.php',)), + ('wiki-data', ('setup.php', '--import-wikipedia-articles')), + ('importance', ('update.php', '--recompute-importance')), + ('website', ('setup.php', '--setup-website')), + ]) +def test_refresh_command(mock_run_legacy, command, params): + assert 0 == call_nominatim('refresh', '--' + command) + + assert mock_run_legacy.called == 1 + assert len(mock_run_legacy.last_args) >= len(params) + assert mock_run_legacy.last_args[:len(params)] == params + + +def test_refresh_importance_computed_after_wiki_import(mock_run_legacy): + assert 0 == call_nominatim('refresh', '--importance', '--wiki-data') + + assert mock_run_legacy.called == 2 + assert mock_run_legacy.last_args == ('update.php', '--recompute-importance') + + @pytest.mark.parametrize("params", [ ('search', '--query', 'new'), ('reverse', '--lat', '0', '--lon', '0'),