casecfgcheck.py
---
casecfgcheck.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
create mode 100644 casecfgcheck.py
diff --git a/casecfgcheck.py b/casecfgcheck.py
new file mode 100644
index 0000000..3c4696d
--- /dev/null
+++ b/casecfgcheck.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+#
+# libvirt-test-API is copyright 2010, 2012 Red Hat, Inc.
+#
+# libvirt-test-API is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version. This program is distributed in
+# the hope that it will be useful, but WITHOUT ANY WARRANTY; without
+# even the implied warranties of TITLE, NON-INFRINGEMENT,
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# The GPL text is available in the file COPYING that accompanies this
+# distribution and at <
http://www.gnu.org/licenses>.
+#
+
+import proxy
+
+class CaseCfgCheck(object):
+ """validate the options in testcase config file"""
+ def __init__(self, unique_testcases, activities_list):
+ self.unique_testcases = unique_testcases
+
+ # XXX to check the first testcase list in activities_list
+ self.activitie = activities_list[0]
+
+ proxy_obj = proxy.Proxy(self.unique_testcases)
+ self.case_params = proxy_obj.get_params_variables()
+
+ def check(self):
+ """check options to each testcase in case config
file"""
+ case_number = 0
+ error_flag = 0
+ passed_testcase = []
+ for testcase in self.activitie:
+ case_number += 1
+ if testcase in passed_testcase:
+ continue
+
+ testcase_name = testcase.keys()[0]
+ actual_params = testcase.values()[0]
+
+ required_params, optional_params = self.case_params[testcase_name]
+ ret = self._check_params(required_params, optional_params, actual_params)
+ if ret:
+ error_flag = 1
+ print "the No.%s : %s\n" % (case_number, testcase_name)
+
+ passed_testcase.append(testcase)
+
+ if error_flag:
+ return 1
+ return 0
+
+ def _check_params(self, required_params, optional_params, actual_params):
+ for p in required_params:
+ if p not in actual_params.keys():
+ print "Parameter %s is required" % p
+ return 1
+
+ for p in actual_params.keys():
+ if p not in required_params and p not in optional_params:
+ print "Unknown parameter '%s'" % p
+ return 1
+
+ return 0
--
1.7.7.5