summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-12-12 10:14:25 +0100
committerPetr Viktorin <pviktori@redhat.com>2014-03-05 10:00:58 +0100
commit2150481f2aa9615c7ae89af8501831a37be9d660 (patch)
treef730f6b792ddd4ef248d83e25dcb35e3234cb53c /ipatests
parentef0264f75fb55e08ef4d54c7fe5936123e35ef27 (diff)
downloadfreeipa-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.py19
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)