1 #!/usr/bin/python2 2 # Copyright 2017 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 """Unittests for the lsbrelease_utils module.""" 7 8 import unittest 9 10 import common 11 from autotest_lib.client.common_lib import lsbrelease_utils 12 13 14 # pylint: disable=line-too-long 15 _GUADO_MOBLAB_LSB_RELEASE_REDACTED = """ 16 DEVICETYPE=CHROMEBOX 17 CHROMEOS_RELEASE_BUILDER_PATH=guado_moblab-release/R61-9641.0.0 18 GOOGLE_RELEASE=9641.0.0 19 CHROMEOS_DEVSERVER= 20 CHROMEOS_RELEASE_BOARD=guado_moblab 21 CHROMEOS_RELEASE_BUILD_NUMBER=9641 22 CHROMEOS_RELEASE_BRANCH_NUMBER=0 23 CHROMEOS_RELEASE_CHROME_MILESTONE=61 24 CHROMEOS_RELEASE_PATCH_NUMBER=0 25 CHROMEOS_RELEASE_TRACK=testimage-channel 26 CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel guado_moblab test 27 CHROMEOS_RELEASE_BUILD_TYPE=Official Build 28 CHROMEOS_RELEASE_NAME=Chrome OS 29 CHROMEOS_RELEASE_VERSION=9641.0.0 30 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 31 """ 32 33 _LINK_LSB_RELEASE_REDACTED = """ 34 DEVICETYPE=CHROMEBOOK 35 CHROMEOS_RELEASE_BUILDER_PATH=link-release/R61-9641.0.0 36 GOOGLE_RELEASE=9641.0.0 37 CHROMEOS_DEVSERVER= 38 CHROMEOS_RELEASE_BOARD=link 39 CHROMEOS_RELEASE_BUILD_NUMBER=9641 40 CHROMEOS_RELEASE_BRANCH_NUMBER=0 41 CHROMEOS_RELEASE_CHROME_MILESTONE=61 42 CHROMEOS_RELEASE_PATCH_NUMBER=0 43 CHROMEOS_RELEASE_TRACK=testimage-channel 44 CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel link test 45 CHROMEOS_RELEASE_BUILD_TYPE=Official Build 46 CHROMEOS_RELEASE_NAME=Chrome OS 47 CHROMEOS_RELEASE_VERSION=9641.0.0 48 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 49 """ 50 51 _GALE_LSB_RELEASE_REDACTED = """ 52 DEVICETYPE=OTHER 53 HWID_OVERRIDE=GALE DOGFOOD 54 CHROMEOS_RELEASE_BUILDER_PATH=gale-release/R61-9641.0.0 55 GOOGLE_RELEASE=9641.0.0 56 CHROMEOS_DEVSERVER= 57 CHROMEOS_RELEASE_BOARD=gale 58 CHROMEOS_RELEASE_BUILD_NUMBER=9641 59 CHROMEOS_RELEASE_BRANCH_NUMBER=0 60 CHROMEOS_RELEASE_CHROME_MILESTONE=61 61 CHROMEOS_RELEASE_PATCH_NUMBER=0 62 CHROMEOS_RELEASE_TRACK=testimage-channel 63 CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel gale test 64 CHROMEOS_RELEASE_BUILD_TYPE=Official Build 65 CHROMEOS_RELEASE_NAME=Chrome OS 66 CHROMEOS_RELEASE_VERSION=9641.0.0 67 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 68 """ 69 70 # pylint: disable=line-too-long 71 _WHIRLWIND_LSB_RELEASE_REDACTED = """ 72 DEVICETYPE=OTHER 73 HWID_OVERRIDE=WHIRLWIND DOGFOOD 74 CHROMEOS_RELEASE_BUILDER_PATH=whirlwind-release/R61-9641.0.0 75 GOOGLE_RELEASE=9641.0.0 76 CHROMEOS_DEVSERVER= 77 CHROMEOS_RELEASE_BOARD=whirlwind 78 CHROMEOS_RELEASE_BUILD_NUMBER=9641 79 CHROMEOS_RELEASE_BRANCH_NUMBER=0 80 CHROMEOS_RELEASE_CHROME_MILESTONE=61 81 CHROMEOS_RELEASE_PATCH_NUMBER=0 82 CHROMEOS_RELEASE_TRACK=testimage-channel 83 CHROMEOS_RELEASE_DESCRIPTION=9641.0.0 (Official Build) dev-channel whirlwind test 84 CHROMEOS_RELEASE_BUILD_TYPE=Official Build 85 CHROMEOS_RELEASE_NAME=Chrome OS 86 CHROMEOS_RELEASE_VERSION=9641.0.0 87 CHROMEOS_AUSERVER=https://tools.google.com/service/update2 88 """ 89 90 91 class LsbreleaseUtilsTestCase(unittest.TestCase): 92 """Validates the helper free functions in lsbrelease_utils.""" 93 94 def test_is_jetstream_with_link_lsbrelease(self): 95 self.assertFalse(lsbrelease_utils.is_jetstream( 96 _LINK_LSB_RELEASE_REDACTED)) 97 98 def test_is_jetstream_with_moblab_lsbrelease(self): 99 self.assertFalse(lsbrelease_utils.is_jetstream( 100 _GUADO_MOBLAB_LSB_RELEASE_REDACTED)) 101 102 def test_is_jestream_with_gale_lsbrelease(self): 103 self.assertTrue(lsbrelease_utils.is_jetstream( 104 _GALE_LSB_RELEASE_REDACTED)) 105 106 def test_is_jestream_with_whirlwind_lsbrelease(self): 107 self.assertTrue(lsbrelease_utils.is_jetstream( 108 _WHIRLWIND_LSB_RELEASE_REDACTED)) 109 110 def test_is_moblab_with_empty_lsbrelease(self): 111 """is_moblab correctly validates trivial lsb-release information.""" 112 self.assertFalse(lsbrelease_utils.is_moblab('')) 113 114 def test_is_moblab_with_link_lsbrelease(self): 115 """is_moblab correctly validates the contents from some other board.""" 116 self.assertFalse(lsbrelease_utils.is_moblab( 117 _LINK_LSB_RELEASE_REDACTED)) 118 119 def test_is_moblab_with_moblab_lsbrelease(self): 120 """is_moblab correctly validates the contents from a moblab device.""" 121 self.assertTrue(lsbrelease_utils.is_moblab( 122 _GUADO_MOBLAB_LSB_RELEASE_REDACTED)) 123 124 125 if __name__ == '__main__': 126 unittest.main() 127