From 7d6ebde33349dadf1600a5ccf4e35982171864ff Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Wed, 1 Apr 2020 12:15:57 +0200 Subject: [PATCH] server_environment: running_env default to `test` (fix #44) --- server_environment/readme/CONFIGURE.rst | 2 ++ server_environment/serv_config.py | 21 ++++++++++++------- server_environment/tests/common.py | 6 +++++- .../tests/test_environment_variable.py | 10 +++++++++ 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/server_environment/readme/CONFIGURE.rst b/server_environment/readme/CONFIGURE.rst index deca37c..6610f44 100644 --- a/server_environment/readme/CONFIGURE.rst +++ b/server_environment/readme/CONFIGURE.rst @@ -8,6 +8,8 @@ used values are 'dev', 'test', 'production':: Values associated to keys containing 'passw' are only displayed in the 'dev' environment. +If you don't provide any value, `test` is used as a safe default. + You have several possibilities to set configuration values: server_environment_files diff --git a/server_environment/serv_config.py b/server_environment/serv_config.py index a18bd22..56cbf3d 100644 --- a/server_environment/serv_config.py +++ b/server_environment/serv_config.py @@ -45,14 +45,19 @@ ENV_VAR_NAMES = ('SERVER_ENV_CONFIG', 'SERVER_ENV_CONFIG_SECRET') _boolean_states = {'1': True, 'yes': True, 'true': True, 'on': True, '0': False, 'no': False, 'false': False, 'off': False} -if not system_base_config.get('running_env', False): - raise Exception( - "The parameter 'running_env' has not be set neither in base config " - "file option -c or in openerprc.\n" - "We strongly recommend against using the rc file but instead use an " - "explicit config file with this content:\n" - "[options]\nrunning_env = dev" - ) + +def _load_running_env(): + if not system_base_config.get("running_env"): + _logger.warning("`running_env` not found. Using default = `test`.") + _logger.warning( + "We strongly recommend against using the rc file but instead use an " + "explicit config file or env variable." + ) + # safe default + system_base_config["running_env"] = "test" + + +_load_running_env() ck_path = None if _dir: diff --git a/server_environment/tests/common.py b/server_environment/tests/common.py index d74a133..d71703d 100644 --- a/server_environment/tests/common.py +++ b/server_environment/tests/common.py @@ -15,10 +15,14 @@ import odoo.addons.server_environment.models.server_env_mixin as \ class ServerEnvironmentCase(common.SavepointCase): + _test_case_running_env = "testing" + def setUp(self): super().setUp() self._original_running_env = config.get('running_env') - config['running_env'] = 'testing' + if self._test_case_running_env is not None: + config['running_env'] = self._test_case_running_env + server_env._load_running_env() def tearDown(self): super().tearDown() diff --git a/server_environment/tests/test_environment_variable.py b/server_environment/tests/test_environment_variable.py index 469bc18..3ff948c 100644 --- a/server_environment/tests/test_environment_variable.py +++ b/server_environment/tests/test_environment_variable.py @@ -2,6 +2,8 @@ # License GPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo.tools.config import config + from odoo.addons.server_environment import server_env from .common import ServerEnvironmentCase @@ -43,3 +45,11 @@ class TestEnvironmentVariables(ServerEnvironmentCase): parser = server_env._load_config() val = parser.get('external_service.ftp', 'user') self.assertEqual(val, 'foo') + + +class TestRunningEnv(ServerEnvironmentCase): + + _test_case_running_env = '' # empty -> no env set + + def test_running_env_default(self): + self.assertEqual(config['running_env'], 'test')