1*9c5db199SXin Li#!/usr/bin/python3 2*9c5db199SXin Li# 3*9c5db199SXin Li# Copyright Gregory P. Smith, Google Inc 2008 4*9c5db199SXin Li# Released under the GPL v2 5*9c5db199SXin Li 6*9c5db199SXin Li"""Tests for server.frontend.""" 7*9c5db199SXin Li 8*9c5db199SXin Li#pylint: disable=missing-docstring 9*9c5db199SXin Li 10*9c5db199SXin Liimport os, unittest 11*9c5db199SXin Liimport common 12*9c5db199SXin Lifrom autotest_lib.client.common_lib import global_config 13*9c5db199SXin Lifrom autotest_lib.client.common_lib import utils 14*9c5db199SXin Lifrom autotest_lib.client.common_lib.test_utils import mock 15*9c5db199SXin Lifrom autotest_lib.frontend.afe import rpc_client_lib 16*9c5db199SXin Lifrom autotest_lib.server import frontend 17*9c5db199SXin Li 18*9c5db199SXin LiGLOBAL_CONFIG = global_config.global_config 19*9c5db199SXin Li 20*9c5db199SXin Li 21*9c5db199SXin Liclass BaseRpcClientTest(unittest.TestCase): 22*9c5db199SXin Li def setUp(self): 23*9c5db199SXin Li self.god = mock.mock_god() 24*9c5db199SXin Li self.god.mock_up(rpc_client_lib, 'rpc_client_lib') 25*9c5db199SXin Li self.god.stub_function(utils, 'send_email') 26*9c5db199SXin Li self._saved_environ = dict(os.environ) 27*9c5db199SXin Li if 'AUTOTEST_WEB' in os.environ: 28*9c5db199SXin Li del os.environ['AUTOTEST_WEB'] 29*9c5db199SXin Li 30*9c5db199SXin Li 31*9c5db199SXin Li def tearDown(self): 32*9c5db199SXin Li self.god.unstub_all() 33*9c5db199SXin Li os.environ.clear() 34*9c5db199SXin Li os.environ.update(self._saved_environ) 35*9c5db199SXin Li 36*9c5db199SXin Li 37*9c5db199SXin Liclass RpcClientTest(BaseRpcClientTest): 38*9c5db199SXin Li def test_init(self): 39*9c5db199SXin Li os.environ['LOGNAME'] = 'unittest-user' 40*9c5db199SXin Li GLOBAL_CONFIG.override_config_value('SERVER', 'hostname', 'test-host') 41*9c5db199SXin Li rpc_client_lib.add_protocol.expect_call('test-host').and_return( 42*9c5db199SXin Li 'http://test-host') 43*9c5db199SXin Li rpc_client_lib.get_proxy.expect_call( 44*9c5db199SXin Li 'http://test-host/path', 45*9c5db199SXin Li headers={'AUTHORIZATION': 'unittest-user'}) 46*9c5db199SXin Li frontend.RpcClient('/path', None, None, None, None, None) 47*9c5db199SXin Li self.god.check_playback() 48*9c5db199SXin Li 49*9c5db199SXin Li 50*9c5db199SXin Liclass CrosVersionFormatTestCase(unittest.TestCase): 51*9c5db199SXin Li def test_format_cros_image_name(self): 52*9c5db199SXin Li test_board = 'fubar-board' 53*9c5db199SXin Li test_version = 'R99-20000.15.0' 54*9c5db199SXin Li image_name = frontend.format_cros_image_name( 55*9c5db199SXin Li test_board, test_version) 56*9c5db199SXin Li self.assertIn(test_board, image_name) 57*9c5db199SXin Li self.assertIn(test_version, image_name) 58*9c5db199SXin Li 59*9c5db199SXin Li 60*9c5db199SXin Liif __name__ == '__main__': 61*9c5db199SXin Li unittest.main() 62