+class TestCli:
+
+ @pytest.fixture(autouse=True)
+ def setup_cli_call(self, cli_call):
+ self.call_nominatim = cli_call
+
+
+ def test_cli_help(self, capsys):
+ """ Running nominatim tool without arguments prints help.
+ """
+ assert self.call_nominatim() == 1
+
+ captured = capsys.readouterr()
+ assert captured.out.startswith('usage:')
+
+
+ @pytest.mark.parametrize("command,script", [
+ (('add-data', '--file', 'foo.osm'), 'update'),
+ (('export',), 'export')
+ ])
+ def test_legacy_commands_simple(self, mock_run_legacy, command, script):
+ assert self.call_nominatim(*command) == 0
+
+ assert mock_run_legacy.called == 1
+ assert mock_run_legacy.last_args[0] == script + '.php'
+
+
+ @pytest.mark.parametrize("params", [('--warm', ),
+ ('--warm', '--reverse-only'),
+ ('--warm', '--search-only')])
+ def test_admin_command_legacy(self, mock_func_factory, params):
+ mock_run_legacy = mock_func_factory(nominatim.clicmd.admin, 'run_legacy_script')
+
+ assert self.call_nominatim('admin', *params) == 0
+
+ assert mock_run_legacy.called == 1
+
+
+ def test_admin_command_check_database(self, mock_func_factory):
+ mock = mock_func_factory(nominatim.tools.check_database, 'check_database')
+
+ assert self.call_nominatim('admin', '--check-database') == 0
+ assert mock.called == 1
+
+
+ @pytest.mark.parametrize("name,oid", [('file', 'foo.osm'), ('diff', 'foo.osc'),
+ ('node', 12), ('way', 8), ('relation', 32)])
+ def test_add_data_command(self, mock_run_legacy, name, oid):
+ assert self.call_nominatim('add-data', '--' + name, str(oid)) == 0
+
+ assert mock_run_legacy.called == 1
+ assert mock_run_legacy.last_args == ('update.php', '--import-' + name, oid)