1*9c5db199SXin Li#!/usr/bin/python3 2*9c5db199SXin Li# Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 3*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be 4*9c5db199SXin Li# found in the LICENSE file. 5*9c5db199SXin Li# pylint: disable-msg=C0111 6*9c5db199SXin Li 7*9c5db199SXin Liimport unittest 8*9c5db199SXin Liimport common 9*9c5db199SXin Lifrom autotest_lib.site_utils import test_that 10*9c5db199SXin Li 11*9c5db199SXin Li 12*9c5db199SXin Liclass TestThatUnittests(unittest.TestCase): 13*9c5db199SXin Li def test_validate_arguments(self): 14*9c5db199SXin Li # Deferred until validate_arguments allows for lab runs. 15*9c5db199SXin Li pass 16*9c5db199SXin Li 17*9c5db199SXin Li def test_parse_arguments(self): 18*9c5db199SXin Li args = test_that.parse_arguments( 19*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '--args', 'some_args', 20*9c5db199SXin Li 'some_remote', 'test1', 'test2']) 21*9c5db199SXin Li self.assertEqual('some_board', args.board) 22*9c5db199SXin Li self.assertEqual('some_image', args.build) 23*9c5db199SXin Li self.assertEqual('some_args', args.args) 24*9c5db199SXin Li self.assertEqual('some_remote', args.remote) 25*9c5db199SXin Li self.assertEqual(['test1', 'test2'], args.tests) 26*9c5db199SXin Li 27*9c5db199SXin Li def test_parse_arguments_internal(self): 28*9c5db199SXin Li args, remote_argv = test_that._parse_arguments_internal( 29*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '--args', 'some_args', 30*9c5db199SXin Li 'some_remote', 'test1', 'test2']) 31*9c5db199SXin Li self.assertEqual('some_board', args.board) 32*9c5db199SXin Li self.assertEqual('some_image', args.build) 33*9c5db199SXin Li self.assertEqual('some_args', args.args) 34*9c5db199SXin Li self.assertEqual('some_remote', args.remote) 35*9c5db199SXin Li self.assertEqual(['test1', 'test2'], args.tests) 36*9c5db199SXin Li self.assertEqual(remote_argv, 37*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '--args', 38*9c5db199SXin Li 'some_args', 'some_remote', 'test1', 'test2']) 39*9c5db199SXin Li 40*9c5db199SXin Li def test_parse_arguments_internal_with_local_argument(self): 41*9c5db199SXin Li args, remote_argv = test_that._parse_arguments_internal( 42*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '-w', 'server:port', 43*9c5db199SXin Li '--args', 'some_args', 'some_remote', 'test1', 'test2']) 44*9c5db199SXin Li self.assertEqual('server:port', args.web) 45*9c5db199SXin Li self.assertEqual('some_board', args.board) 46*9c5db199SXin Li self.assertEqual('some_image', args.build) 47*9c5db199SXin Li self.assertEqual('some_args', args.args) 48*9c5db199SXin Li self.assertEqual('some_remote', args.remote) 49*9c5db199SXin Li self.assertEqual(['test1', 'test2'], args.tests) 50*9c5db199SXin Li self.assertEqual(remote_argv, 51*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '--args', 52*9c5db199SXin Li 'some_args', 'some_remote', 'test1', 'test2']) 53*9c5db199SXin Li 54*9c5db199SXin Li def test_parse_arguments_with_local_argument(self): 55*9c5db199SXin Li args = test_that.parse_arguments( 56*9c5db199SXin Li ['-b', 'some_board', '-i', 'some_image', '-w', 'server:port', 57*9c5db199SXin Li '--args', 'some_args', 'some_remote', 'test1', 'test2']) 58*9c5db199SXin Li self.assertEqual('server:port', args.web) 59*9c5db199SXin Li self.assertEqual('some_board', args.board) 60*9c5db199SXin Li self.assertEqual('some_image', args.build) 61*9c5db199SXin Li self.assertEqual('some_args', args.args) 62*9c5db199SXin Li self.assertEqual('some_remote', args.remote) 63*9c5db199SXin Li self.assertEqual(['test1', 'test2'], args.tests) 64*9c5db199SXin Li 65*9c5db199SXin Li def test_parse_arguments_lab_run_requires_build(self): 66*9c5db199SXin Li """Running against :lab: requires certain extra arguments.""" 67*9c5db199SXin Li args = test_that.parse_arguments(['-b', 'some_board', ':lab:', 'test1']) 68*9c5db199SXin Li with self.assertRaises(ValueError): 69*9c5db199SXin Li test_that.validate_arguments(args) 70*9c5db199SXin Li 71*9c5db199SXin Li def test_parse_arguments_lab_run_disallows_suite_args(self): 72*9c5db199SXin Li """Running against :lab: requires certain extra arguments.""" 73*9c5db199SXin Li args = test_that.parse_arguments([ 74*9c5db199SXin Li '-b', 'some_board', '-i', 'some_image', '--args', 'some_args', 75*9c5db199SXin Li ':lab:', 'test1']) 76*9c5db199SXin Li with self.assertRaises(ValueError): 77*9c5db199SXin Li test_that.validate_arguments(args) 78*9c5db199SXin Li 79*9c5db199SXin Li 80*9c5db199SXin Liif __name__ == '__main__': 81*9c5db199SXin Li unittest.main() 82