bdd tests: directly call python code for setup-website

This commit is contained in:
Sarah Hoffmann 2021-02-19 18:20:55 +01:00
parent 389138abfe
commit f08078ccca
2 changed files with 8 additions and 5 deletions

View 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

View 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):