Home | History | Annotate | Download | only in cros
      1 # Copyright 2017 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import unittest
      6 
      7 import common
      8 from autotest_lib.server.cros import provision
      9 
     10 _CROS_VERSION_SAMPLES = ['cave-release/R57-9030.0.0']
     11 _ANDROID_VERSION_SAMPLES = ['git_mnc-release/shamu-userdebug/2457013']
     12 _TESTBED_VERSION_SAMPLES = [
     13     ','.join(_ANDROID_VERSION_SAMPLES * 2),
     14     _ANDROID_VERSION_SAMPLES[0] + '#4'
     15 ]
     16 
     17 class ImageParsingTests(unittest.TestCase):
     18     """Unit tests for `provision.get_version_label_prefix()`."""
     19 
     20     def _do_test_prefixes(self, expected, version_samples):
     21         for v in version_samples:
     22             prefix = provision.get_version_label_prefix(v)
     23             self.assertEqual(prefix, expected)
     24 
     25     def test_cros_prefix(self):
     26         """Test handling of Chrome OS version strings."""
     27         self._do_test_prefixes(provision.CROS_VERSION_PREFIX,
     28                                _CROS_VERSION_SAMPLES)
     29 
     30     def test_android_prefix(self):
     31         """Test handling of Android version strings."""
     32         self._do_test_prefixes(provision.ANDROID_BUILD_VERSION_PREFIX,
     33                                _ANDROID_VERSION_SAMPLES)
     34 
     35     def test_testbed_prefix(self):
     36         """Test handling of Testbed version strings."""
     37         self._do_test_prefixes(provision.TESTBED_BUILD_VERSION_PREFIX,
     38                                _TESTBED_VERSION_SAMPLES)
     39 
     40 
     41 if __name__ == '__main__':
     42     unittest.main()
     43