In new get() function, will raise ParamNotFound error if parameter not found in params and no default value set for it.
This feature is controlled by check parameter in get() function, default value is False, which means do not check available to compatible with old code. Signed-off-by: Feng Yang <[email protected]> --- virttest/utils_params.py | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) diff --git a/virttest/utils_params.py b/virttest/utils_params.py index 67538c1..c56d677 100644 --- a/virttest/utils_params.py +++ b/virttest/utils_params.py @@ -1,7 +1,16 @@ import UserDict +from autotest.client.shared import error -class Params(UserDict.IterableUserDict): +class ParamNotFound(error.TestError): + """ + Indicates that asked parameter could not found in dict. + Here could not found means not in dict and also no default value for it. + """ + pass + + +class Params(UserDict.IterableUserDict, object): """ A dict-like object passed to every test. """ @@ -35,3 +44,23 @@ class Params(UserDict.IterableUserDict): new_key = key.split(suffix)[0] new_dict[new_key] = self[key] return new_dict + + + def get(self, key, default=None, check=False): + """ + Return the value of the set key, default will be used it no value + available. + + @param key: The name of the key whose value lists the objects + (e.g. 'nics'). + @param default: Default value for the key. + @param check: Check key's value available or not. Here available means + find key in dict or default value set. + @raise ParamNotFound: Raised if value is not available. + + @return: The value of the set key. + """ + value = super(Params, self).get(key, default) + if value is None and check: + raise ParamNotFound("Please set a value for parameter '%s'" % key) + return value -- 1.7.1 _______________________________________________ Virt-test-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-test-devel
