]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/api/test_api_status.py
restrict use of os.environ in Configuration
[nominatim.git] / test / python / api / test_api_status.py
index 6bc1fccc095d15572139558274f98ad8919eabcb..9341b52774f5cfe5c0170dff72e743e1a4be1685 100644 (file)
@@ -1,60 +1,56 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the status API call.
 """
-from pathlib import Path
 import datetime as dt
 import pytest
 
-from nominatim.version import NOMINATIM_VERSION, NominatimVersion
-from nominatim.api import NominatimAPI
+from nominatim_db.version import NominatimVersion
+from nominatim_api.version import NOMINATIM_API_VERSION
+import nominatim_api as napi
 
-def test_status_no_extra_info(apiobj, table_factory):
-    table_factory('import_status',
-                  definition="lastimportdate timestamp with time zone NOT NULL")
-    table_factory('nominatim_properties',
-                  definition='property TEXT, value TEXT')
-
-    result = apiobj.status()
+def test_status_no_extra_info(apiobj, frontend):
+    api = frontend(apiobj)
+    result = api.status()
 
     assert result.status == 0
     assert result.message == 'OK'
-    assert result.software_version == NOMINATIM_VERSION
+    assert result.software_version == NOMINATIM_API_VERSION
     assert result.database_version is None
     assert result.data_updated is None
 
 
-def test_status_full(apiobj, table_factory):
-    table_factory('import_status',
-                  definition="lastimportdate timestamp with time zone NOT NULL",
-                  content=(('2022-12-07 15:14:46+01',),))
-    table_factory('nominatim_properties',
-                  definition='property TEXT, value TEXT',
-                  content=(('database_version', '99.5.4-2'), ))
+def test_status_full(apiobj, frontend):
+    import_date = dt.datetime(2022, 12, 7, 14, 14, 46, 0, tzinfo=dt.timezone.utc)
+    apiobj.add_data('import_status',
+                    [{'lastimportdate': import_date}])
+    apiobj.add_data('properties',
+                    [{'property': 'database_version', 'value': '99.5.4-2'}])
 
-    result = apiobj.status()
+    api = frontend(apiobj)
+    result = api.status()
 
     assert result.status == 0
     assert result.message == 'OK'
-    assert result.software_version == NOMINATIM_VERSION
-    assert result.database_version == NominatimVersion(99, 5, 4, 2)
-    assert result.data_updated == dt.datetime(2022, 12, 7, 14, 14, 46, 0, tzinfo=dt.timezone.utc)
+    assert result.software_version == NOMINATIM_API_VERSION
+    assert result.database_version == '99.5.4-2'
+    assert result.data_updated == import_date
 
 
 def test_status_database_not_found(monkeypatch):
     monkeypatch.setenv('NOMINATIM_DATABASE_DSN', 'dbname=rgjdfkgjedkrgdfkngdfkg')
 
-    api = NominatimAPI(Path('/invalid'), {})
+    api = napi.NominatimAPI()
 
     result = api.status()
 
     assert result.status == 700
     assert result.message == 'Database connection failed'
-    assert result.software_version == NOMINATIM_VERSION
+    assert result.software_version == NOMINATIM_API_VERSION
     assert result.database_version is None
     assert result.data_updated is None