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. Changes from v1: Raise KeyError instead of ParamNotFound. Signed-off-by: Feng Yang <[email protected]> --- virttest/utils_params.py | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/virttest/utils_params.py b/virttest/utils_params.py index 67538c1..489a1fa 100644 --- a/virttest/utils_params.py +++ b/virttest/utils_params.py @@ -1,7 +1,7 @@ import UserDict -class Params(UserDict.IterableUserDict): +class Params(UserDict.IterableUserDict, object): """ A dict-like object passed to every test. """ @@ -35,3 +35,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 KeyError: Raised if key is not available. + + @return: The value of the set key. + """ + value = super(Params, self).get(key, default) + if value is None and check: + raise KeyError("Parameter '%s' does not exist!!!" % key) + return value -- 1.7.1 _______________________________________________ Virt-test-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-test-devel
