X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/7075a5828e658cda653955096932a610bbbe0f99..e4691005e29a540c1b18a553b9bc8e93bad59512:/test/bdd/environment.py diff --git a/test/bdd/environment.py b/test/bdd/environment.py index 162346de..0ac92104 100644 --- a/test/bdd/environment.py +++ b/test/bdd/environment.py @@ -5,7 +5,6 @@ import psycopg2 import psycopg2.extras import subprocess import tempfile -from nose.tools import * # for assert functions from sys import version_info as python_version logger = logging.getLogger(__name__) @@ -14,15 +13,20 @@ userconfig = { 'BUILDDIR' : os.path.join(os.path.split(__file__)[0], "../../build"), 'REMOVE_TEMPLATE' : False, 'KEEP_TEST_DB' : False, + 'DB_HOST' : None, + 'DB_PORT' : None, + 'DB_USER' : None, + 'DB_PASS' : None, 'TEMPLATE_DB' : 'test_template_nominatim', 'TEST_DB' : 'test_nominatim', 'API_TEST_DB' : 'test_api_nominatim', - 'TEST_SETTINGS_FILE' : '/tmp/nominatim_settings.php', + 'SERVER_MODULE_PATH' : None, 'PHPCOV' : False, # set to output directory to enable code coverage } use_step_matcher("re") + class NominatimEnvironment(object): """ Collects all functions for the execution of Nominatim functions. """ @@ -30,17 +34,35 @@ class NominatimEnvironment(object): def __init__(self, config): self.build_dir = os.path.abspath(config['BUILDDIR']) self.src_dir = os.path.abspath(os.path.join(os.path.split(__file__)[0], "../..")) + self.db_host = config['DB_HOST'] + self.db_port = config['DB_PORT'] + self.db_user = config['DB_USER'] + self.db_pass = config['DB_PASS'] self.template_db = config['TEMPLATE_DB'] self.test_db = config['TEST_DB'] self.api_test_db = config['API_TEST_DB'] - self.local_settings_file = config['TEST_SETTINGS_FILE'] + self.server_module_path = config['SERVER_MODULE_PATH'] self.reuse_template = not config['REMOVE_TEMPLATE'] self.keep_scenario_db = config['KEEP_TEST_DB'] self.code_coverage_path = config['PHPCOV'] self.code_coverage_id = 1 - os.environ['NOMINATIM_SETTINGS'] = self.local_settings_file + self.test_env = None self.template_db_done = False + self.website_dir = None + + def connect_database(self, dbname): + dbargs = {'database': dbname} + if self.db_host: + dbargs['host'] = self.db_host + if self.db_port: + dbargs['port'] = self.db_port + if self.db_user: + dbargs['user'] = self.db_user + if self.db_pass: + dbargs['password'] = self.db_pass + conn = psycopg2.connect(**dbargs) + return conn def next_code_coverage_file(self): fn = os.path.join(self.code_coverage_path, "%06d.cov" % self.code_coverage_id) @@ -49,19 +71,34 @@ class NominatimEnvironment(object): return fn def write_nominatim_config(self, dbname): - f = open(self.local_settings_file, 'w') - f.write("