xref: /aosp_15_r20/external/autotest/server/cros/provision_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li#!/usr/bin/python3
2*9c5db199SXin Li# Copyright 2017 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
6*9c5db199SXin Liimport unittest
7*9c5db199SXin Li
8*9c5db199SXin Liimport common
9*9c5db199SXin Lifrom autotest_lib.server.cros import provision
10*9c5db199SXin Li
11*9c5db199SXin Li_CROS_VERSION_SAMPLES = [
12*9c5db199SXin Li    'cave-release/R57-9030.0.0',
13*9c5db199SXin Li    'grunt-llvm-next-toolchain-tryjob/R69-10851.0.0-b2726174'
14*9c5db199SXin Li    'eve-tot-chrome-pfq-informational/R69-10822.0.0-b2700960',
15*9c5db199SXin Li]
16*9c5db199SXin Li_CROS_ANDROID_VERSION_SAMPLES = [
17*9c5db199SXin Li    'git_nyc-mr1-arc/cheets_arm-user/4866647',
18*9c5db199SXin Li    'git_nyc-mr1-arc/cheets_arm-user/P6244267',
19*9c5db199SXin Li    'git_nyc-mr1-arc/cheets_x86-user/P6256537',
20*9c5db199SXin Li]
21*9c5db199SXin Li
22*9c5db199SXin Li
23*9c5db199SXin Liclass ActionTestCase(unittest.TestCase):
24*9c5db199SXin Li    """Tests for Action functions."""
25*9c5db199SXin Li    #pylint:disable=missing-docstring
26*9c5db199SXin Li
27*9c5db199SXin Li    def test__get_label_action_with_keyval_label(self):
28*9c5db199SXin Li        got = provision._get_label_action('cros-version:foo')
29*9c5db199SXin Li        self.assertEqual(got, provision._Action('cros-version', 'foo'))
30*9c5db199SXin Li
31*9c5db199SXin Li    def test__get_label_action_with_plain_label(self):
32*9c5db199SXin Li        got = provision._get_label_action('webcam')
33*9c5db199SXin Li        self.assertEqual(got, provision._Action('webcam', None))
34*9c5db199SXin Li
35*9c5db199SXin Li    def test__get_label_action_with_empty_string(self):
36*9c5db199SXin Li        got = provision._get_label_action('')
37*9c5db199SXin Li        self.assertEqual(got, provision._Action('', None))
38*9c5db199SXin Li
39*9c5db199SXin Li
40*9c5db199SXin Liclass ImageParsingTests(unittest.TestCase):
41*9c5db199SXin Li    """Unit tests for `provision.get_version_label_prefix()`."""
42*9c5db199SXin Li
43*9c5db199SXin Li    def _do_test_prefixes(self, expected, version_samples):
44*9c5db199SXin Li        for v in version_samples:
45*9c5db199SXin Li            prefix = provision.get_version_label_prefix(v)
46*9c5db199SXin Li            self.assertEqual(prefix, expected)
47*9c5db199SXin Li
48*9c5db199SXin Li    def test_cros_prefix(self):
49*9c5db199SXin Li        """Test handling of ChromeOS version strings."""
50*9c5db199SXin Li        self._do_test_prefixes(provision.CROS_VERSION_PREFIX,
51*9c5db199SXin Li                               _CROS_VERSION_SAMPLES)
52*9c5db199SXin Li
53*9c5db199SXin Li    def test_cros_android_prefix(self):
54*9c5db199SXin Li        """Test handling of ChromeOS version strings."""
55*9c5db199SXin Li        self._do_test_prefixes(provision.CROS_ANDROID_VERSION_PREFIX,
56*9c5db199SXin Li                               _CROS_ANDROID_VERSION_SAMPLES)
57*9c5db199SXin Li
58*9c5db199SXin Li
59*9c5db199SXin Liif __name__ == '__main__':
60*9c5db199SXin Li    unittest.main()
61