提交 36c33baa 编写于 作者: A Ademar de Souza Reis Jr

avocado.plugins.runner: Validate --force-job-id

Job ID needs to be a 40 digit hex number. Error out if it's not.

Includes functional tests
Signed-off-by: NAdemar de Souza Reis Jr <areis@redhat.com>
上级 cfe82467
......@@ -17,6 +17,7 @@ Base Test Runner Plugins.
"""
import os
import sys
from avocado.plugins import plugin
from avocado.core import data_dir
......@@ -127,10 +128,22 @@ class TestRunner(plugin.Plugin):
:param args: Command line args received from the run subparser.
"""
if args.unique_job_id is not None:
try:
int(args.unique_job_id, 16)
if len(args.unique_job_id) != 40:
raise Exception
except:
print >> sys.stderr, \
'Error: Unique Job ID needs to be a 40 digit hex number'
return -1
job_instance = job.Job(args)
rc = job_instance.run()
if not args.url:
self.parser.print_help()
return rc
......
......@@ -186,6 +186,20 @@ class RunnerOperationTest(unittest.TestCase):
self.assertIn('NOT_FOUND', result.stderr)
self.assertIn('NOT FOUND : 1', result.stderr)
def test_invalid_unique_id(self):
cmd_line = './scripts/avocado run --force-job-id foobar skiptest'
result = process.run(cmd_line, ignore_status=True)
self.assertNotEqual(0, result.exit_status)
self.assertIn('Error', result.stderr)
self.assertIn('needs to be a 40 digit hex', result.stderr)
def test_valid_unique_id(self):
cmd_line = './scripts/avocado run --force-job-id 975de258ac05ce5e490648dec4753657b7ccc7d1 skiptest'
result = process.run(cmd_line, ignore_status=True)
self.assertEqual(0, result.exit_status)
self.assertNotIn('needs to be a 40 digit hex', result.stderr)
self.assertIn('SKIP', result.stderr)
class RunnerDropinTest(unittest.TestCase):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册