#!/usr/bin/python2 # Copyright 2017 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Unittests for the lsbrelease_utils module.""" import unittest import common from autotest_lib.client.common_lib import lsbrelease_utils # pylint: disable=line-too-long _GUADO_MOBLAB_LSB_RELEASE_REDACTED = """ DEVICETYPE=CHROMEBOX CHROMEOS_RELEASE_BUILDER_PATH=guado_moblab-release/R61-9641.0.0 GOOGLE_RELEASE=9641.0.0 CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_BOARD=guado_moblab CHROMEOS_RELEASE_BUILD_NUMBER=9641 CHROMEOS_RELEASE_BRANCH_NUMBER=0 CHROMEOS_RELEASE_CHROME_MILESTONE=61 CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=testimage-channel CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel guado_moblab test CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_VERSION=9641.0.0 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 """ _LINK_LSB_RELEASE_REDACTED = """ DEVICETYPE=CHROMEBOOK CHROMEOS_RELEASE_BUILDER_PATH=link-release/R61-9641.0.0 GOOGLE_RELEASE=9641.0.0 CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_BOARD=link CHROMEOS_RELEASE_BUILD_NUMBER=9641 CHROMEOS_RELEASE_BRANCH_NUMBER=0 CHROMEOS_RELEASE_CHROME_MILESTONE=61 CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=testimage-channel CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel link test CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_VERSION=9641.0.0 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 """ _GALE_LSB_RELEASE_REDACTED = """ DEVICETYPE=OTHER HWID_OVERRIDE=GALE DOGFOOD CHROMEOS_RELEASE_BUILDER_PATH=gale-release/R61-9641.0.0 GOOGLE_RELEASE=9641.0.0 CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_BOARD=gale CHROMEOS_RELEASE_BUILD_NUMBER=9641 CHROMEOS_RELEASE_BRANCH_NUMBER=0 CHROMEOS_RELEASE_CHROME_MILESTONE=61 CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=testimage-channel CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel gale test CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_VERSION=9641.0.0 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 """ # pylint: disable=line-too-long _WHIRLWIND_LSB_RELEASE_REDACTED = """ DEVICETYPE=OTHER HWID_OVERRIDE=WHIRLWIND DOGFOOD CHROMEOS_RELEASE_BUILDER_PATH=whirlwind-release/R61-9641.0.0 GOOGLE_RELEASE=9641.0.0 CHROMEOS_DEVSERVER= CHROMEOS_RELEASE_BOARD=whirlwind CHROMEOS_RELEASE_BUILD_NUMBER=9641 CHROMEOS_RELEASE_BRANCH_NUMBER=0 CHROMEOS_RELEASE_CHROME_MILESTONE=61 CHROMEOS_RELEASE_PATCH_NUMBER=0 CHROMEOS_RELEASE_TRACK=testimage-channel CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel whirlwind test CHROMEOS_RELEASE_BUILD_TYPE=Official Build CHROMEOS_RELEASE_NAME=Chrome OS CHROMEOS_RELEASE_VERSION=9641.0.0 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 """ class LsbreleaseUtilsTestCase(unittest.TestCase): """Validates the helper free functions in lsbrelease_utils.""" def test_is_jetstream_with_link_lsbrelease(self): """Test helper function.""" self.assertFalse(lsbrelease_utils.is_jetstream( _LINK_LSB_RELEASE_REDACTED)) def test_is_jetstream_with_moblab_lsbrelease(self): """Test helper function.""" self.assertFalse(lsbrelease_utils.is_jetstream( _GUADO_MOBLAB_LSB_RELEASE_REDACTED)) def test_is_jestream_with_gale_lsbrelease(self): """Test helper function.""" self.assertTrue(lsbrelease_utils.is_jetstream( _GALE_LSB_RELEASE_REDACTED)) def test_is_jestream_with_whirlwind_lsbrelease(self): """Test helper function.""" self.assertTrue(lsbrelease_utils.is_jetstream( _WHIRLWIND_LSB_RELEASE_REDACTED)) def test_is_moblab_with_empty_lsbrelease(self): """is_moblab correctly validates trivial lsb-release information.""" self.assertFalse(lsbrelease_utils.is_moblab('')) def test_is_moblab_with_link_lsbrelease(self): """is_moblab correctly validates the contents from some other board.""" self.assertFalse(lsbrelease_utils.is_moblab( _LINK_LSB_RELEASE_REDACTED)) def test_is_moblab_with_moblab_lsbrelease(self): """is_moblab correctly validates the contents from a moblab device.""" self.assertTrue(lsbrelease_utils.is_moblab( _GUADO_MOBLAB_LSB_RELEASE_REDACTED)) def test_get_chromeos_release_version(self): """Test helper function.""" result = lsbrelease_utils.get_chromeos_release_builder_path( _GUADO_MOBLAB_LSB_RELEASE_REDACTED) self.assertEqual(result, 'guado_moblab-release/R61-9641.0.0') if __name__ == '__main__': unittest.main()