xref: /aosp_15_r20/external/autotest/site_utils/test_that_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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