# SPDX-License-Identifier: GPL-2.0-only # # This file is part of Nominatim. (https://nominatim.org) # # Copyright (C) 2022 by the Nominatim developer community. # For a full list of authors see the git log. """ Tests for status table manipulation. """ import datetime as dt import pytest import nominatim.db.status from nominatim.errors import UsageError OSM_NODE_DATA = """\ """ def iso_date(date): return dt.datetime.strptime(date, nominatim.db.status.ISODATE_FORMAT)\ .replace(tzinfo=dt.timezone.utc) @pytest.fixture(autouse=True) def setup_status_table(status_table): pass def test_compute_database_date_place_empty(place_table, temp_db_conn): with pytest.raises(UsageError): nominatim.db.status.compute_database_date(temp_db_conn) def test_compute_database_date_valid(monkeypatch, place_row, temp_db_conn): place_row(osm_type='N', osm_id=45673) requested_url = [] def mock_url(url): requested_url.append(url) return OSM_NODE_DATA monkeypatch.setattr(nominatim.db.status, "get_url", mock_url) date = nominatim.db.status.compute_database_date(temp_db_conn) assert requested_url == ['https://www.openstreetmap.org/api/0.6/node/45673/1'] assert date == iso_date('2006-01-27T22:09:10') def test_compute_database_broken_api(monkeypatch, place_row, temp_db_conn): place_row(osm_type='N', osm_id=45673) requested_url = [] def mock_url(url): requested_url.append(url) return '