]> git.openstreetmap.org Git - nominatim.git/commitdiff
bdd tests: directly call python code for setup-website
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 19 Feb 2021 17:20:55 +0000 (18:20 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 19 Feb 2021 17:20:55 +0000 (18:20 +0100)
nominatim/config.py
test/bdd/steps/nominatim_environment.py

index 4de2052ee4987ff4892ef4a5a92b6fa3e53d21dd..564884f612a40d97eed89cff157abdc77d8008f8 100644 (file)
@@ -17,7 +17,7 @@ class Configuration:
         Nominatim uses dotenv to configure the software. Configuration options
         are resolved in the following order:
 
-         * from the OS environment
+         * from the OS environment (or the dirctionary given in `environ`
          * from the .env file in the project directory of the installation
          * from the default installation in the configuration directory
 
@@ -25,7 +25,8 @@ class Configuration:
         avoid conflicts with other environment variables.
     """
 
-    def __init__(self, project_dir, config_dir):
+    def __init__(self, project_dir, config_dir, environ=os.environ):
+        self.environ = environ
         self.project_dir = project_dir
         self.config_dir = config_dir
         self._config = dotenv_values(str((config_dir / 'env.defaults').resolve()))
@@ -42,7 +43,7 @@ class Configuration:
     def __getattr__(self, name):
         name = 'NOMINATIM_' + name
 
-        return os.environ.get(name) or self._config[name]
+        return self.environ.get(name) or self._config[name]
 
     def get_bool(self, name):
         """ Return the given configuration parameter as a boolean.
@@ -100,6 +101,6 @@ class Configuration:
             merged in.
         """
         env = dict(self._config)
-        env.update(os.environ)
+        env.update(self.environ)
 
         return env
index 0edb115980bd564ddac04a8b2070fb73d505e1de..811faf5cda6a9837a597feeb8a4afd4ebc548912 100644 (file)
@@ -8,6 +8,7 @@ import psycopg2.extras
 sys.path.insert(1, str((Path(__file__) / '..' / '..' / '..' / '..').resolve()))
 
 from nominatim.config import Configuration
+from nominatim.tools import refresh
 from steps.utils import run_script
 
 class NominatimEnvironment:
@@ -104,7 +105,8 @@ class NominatimEnvironment:
             self.website_dir.cleanup()
 
         self.website_dir = tempfile.TemporaryDirectory()
-        self.run_setup_script('setup-website')
+        cfg = Configuration(None, self.src_dir / 'settings', environ=self.test_env)
+        refresh.setup_website(Path(self.website_dir.name) / 'website', self.src_dir / 'lib-php', cfg)
 
 
     def db_drop_database(self, name):