1#!/usr/bin/python2 2# Copyright 2016 The Chromium OS 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 6import urlparse 7import unittest 8 9import logging 10import common 11from autotest_lib.server import afe_utils 12 13 14from autotest_lib.site_utils import stable_version_classify as sv 15 16class FakeConfigFromHost(object): 17 def get_config_value(self, _namespace, item, **kargs): 18 return { 19 "stable_version_config_repo_enable": True, 20 "stable_version_config_repo_opt_in_boards": ":all", 21 }[item] 22 23class FakeHostInfo(object): 24 def __init__(self, board, cros_stable_version, servo_cros_stable_version): 25 self._board = board 26 self._cros_stable_version = cros_stable_version 27 self._servo_cros_stable_version = servo_cros_stable_version 28 29 @property 30 def board(self): 31 return self._board 32 33 @property 34 def cros_stable_version(self): 35 return self._cros_stable_version 36 37 @property 38 def servo_cros_stable_version(self): 39 return self._servo_cros_stable_version 40 41 42class AfeUtilsTestCase(unittest.TestCase): 43 def test_get_stable_cros_image_name_v2(self): 44 board = "xxx-board" 45 host_info = FakeHostInfo( 46 board=board, 47 servo_cros_stable_version="some garbage", 48 cros_stable_version="R1-2.3.4" 49 ) 50 expected = "xxx-board-release/R1-2.3.4" 51 config = FakeConfigFromHost() 52 out = afe_utils.get_stable_cros_image_name_v2(info=host_info, _config_override=config) 53 self.assertEqual(out, expected) 54 55 def test_get_stable_servo_cros_image_name_v2(self): 56 board = "xxx-board" 57 servo_cros_stable_version="R7-8.9.10" 58 expected = "xxx-board-release/R7-8.9.10" 59 config = FakeConfigFromHost() 60 out = afe_utils.get_stable_servo_cros_image_name_v2(board="xxx-board", servo_version_from_hi=servo_cros_stable_version, _config_override=config) 61 self.assertEqual(out, expected) 62 63 64if __name__ == '__main__': 65 unittest.main() 66