summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2016-05-03 14:39:30 -0700
committerDylan Baker <dylan@pnwbakers.com>2016-05-10 14:35:19 -0700
commitcc4fcb5d966098ba4ea8b88e41441872694ef7ca (patch)
tree4df71585d90fc62f0b5c71b51007e0ef7f8c525f
parent69d635b17d66957b8a598c7cb8dbdbd0ebdab657 (diff)
framework/profile: Fail gracefully when reordering of tests fail
Currently if a test name is passed that doesn't exist in the first profile a stack trace will be generated. This isn't necessary, since it's an expected behavior that reordering fails when asked to order a test not contained in the profile. Instead just fail gracefully with a helpful message. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com>
-rw-r--r--framework/profile.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/framework/profile.py b/framework/profile.py
index 9bdc720ea..987873bb4 100644
--- a/framework/profile.py
+++ b/framework/profile.py
@@ -170,8 +170,15 @@ class TestDict(collections.MutableMapping):
def reorder(self, order):
"""Reorder the TestDict to match the order of the provided list."""
new = collections.OrderedDict()
- for k in order:
- new[k] = self.__container[k]
+ try:
+ for k in order:
+ new[k] = self.__container[k]
+ except KeyError:
+ # If there is a name in order that isn't available in self there
+ # will be a KeyError, this is expected. In this case fail
+ # gracefully and report the error to the user.
+ raise exceptions.PiglitFatalError(
+ 'Cannot reorder test: "{}", it is not in the profile.'.format(k))
self.__container = new