diff options
author | Petr Viktorin <pviktori@redhat.com> | 2013-12-12 10:14:25 +0100 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2014-03-05 10:00:58 +0100 |
commit | 2150481f2aa9615c7ae89af8501831a37be9d660 (patch) | |
tree | f730f6b792ddd4ef248d83e25dcb35e3234cb53c /ipatests | |
parent | ef0264f75fb55e08ef4d54c7fe5936123e35ef27 (diff) | |
download | freeipa-2150481f2aa9615c7ae89af8501831a37be9d660.tar.gz freeipa-2150481f2aa9615c7ae89af8501831a37be9d660.tar.xz freeipa-2150481f2aa9615c7ae89af8501831a37be9d660.zip |
test_integration.config: Add environment variables for JSON/YAML
Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
Reviewed-By: Tomas Babej <tbabej@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r-- | ipatests/test_integration/config.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ipatests/test_integration/config.py b/ipatests/test_integration/config.py index 080eed284..a8694d03d 100644 --- a/ipatests/test_integration/config.py +++ b/ipatests/test_integration/config.py @@ -23,6 +23,7 @@ import os import collections import random +import json from ipapython import ipautil from ipapython.dn import DN @@ -117,7 +118,12 @@ class Config(object): def from_env(cls, env): """Create a test config from environment variables - Input variables: + If IPATEST_YAML_CONFIG or IPATEST_JSON_CONFIG is set, + configuration is read from the named file. + For YAML, the PyYAML (python-yaml) library needs to be installed. + + Otherwise, configuration is read from various curiously + named environment variables: See _setting_infos for test-wide settings @@ -143,6 +149,17 @@ class Config(object): Also see env_normalize() for alternate variable names """ + if 'IPATEST_YAML_CONFIG' in env: + import yaml + with open(env['IPATEST_YAML_CONFIG']) as file: + data = yaml.safe_load(file) + return cls.from_dict(data) + + if 'IPATEST_JSON_CONFIG' in env: + with open(env['IPATEST_JSON_CONFIG']) as file: + data = json.load(file) + return cls.from_dict(data) + env_normalize(env) kwargs = {s.name: env.get(s.var_name, s.default) |