Allow additional parameters to be specified with test plans. Also wrap
the control file for each test in the test plan, so that the Test
Planner can prefix each intended test with a verify_test, along with
any site-specific prefixes that may be required.
Allowing additional parameters gives the users the option to directly
specify the parameters for the verify_test, along with what
site-specific prefixes, if any, to attach.
Signed-off-by: James Ren <jamesren@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@4469 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/planner/models_test.py b/frontend/planner/models_test.py
index cd95d39..8a68f77 100755
--- a/frontend/planner/models_test.py
+++ b/frontend/planner/models_test.py
@@ -4,7 +4,7 @@
import common
from autotest_lib.frontend import setup_django_environment
from autotest_lib.frontend.afe import frontend_test_utils, rpc_utils
-from autotest_lib.frontend.planner import models
+from autotest_lib.frontend.planner import models, model_attributes
class ModelWithHashTestBase(frontend_test_utils.FrontendTestMixin):
@@ -61,5 +61,57 @@
'value' : 'test_value'}
+class AdditionalParameterTest(frontend_test_utils.FrontendTestMixin,
+ unittest.TestCase):
+ def setUp(self):
+ self._frontend_common_setup()
+ self.plan = models.Plan.objects.create(name='plan')
+ self.param_type = model_attributes.AdditionalParameterType.VERIFY
+
+ def tearDown(self):
+ self._frontend_common_teardown()
+
+
+ def test_find_applicable_control_parameter_match(self):
+ parameter = models.AdditionalParameter.objects.create(
+ plan=self.plan, hostname_regex='host.*',
+ param_type=self.param_type, application_order=0)
+ found = models.AdditionalParameter.find_applicable_additional_parameter(
+ plan=self.plan, hostname='host1', param_type=self.param_type)
+
+ self.assertEqual(parameter, found)
+
+
+ def test_find_applicable_additional_parameter_ordered(self):
+ additional1 = models.AdditionalParameter.objects.create(
+ plan=self.plan, hostname_regex='host.*',
+ param_type=self.param_type, application_order=0)
+ additional2 = models.AdditionalParameter.objects.create(
+ plan=self.plan, hostname_regex='.*',
+ param_type=self.param_type, application_order=1)
+
+ found1 = (
+ models.AdditionalParameter.find_applicable_additional_parameter(
+ plan=self.plan, hostname='host1',
+ param_type=self.param_type))
+ found2 = (
+ models.AdditionalParameter.find_applicable_additional_parameter(
+ plan=self.plan, hostname='other',
+ param_type=self.param_type))
+
+ self.assertEqual(additional1, found1)
+ self.assertEqual(additional2, found2)
+
+
+ def test_find_applicable_additional_parameter_no_match(self):
+ models.AdditionalParameter.objects.create(
+ plan=self.plan, hostname_regex='host.*',
+ param_type=self.param_type, application_order=0)
+ found = models.AdditionalParameter.find_applicable_additional_parameter(
+ plan=self.plan, hostname='other', param_type=self.param_type)
+
+ self.assertEqual(None, found)
+
+
if __name__ == '__main__':
unittest.main()