#!/usr/bin/python # # Copyright Gregory P. Smith, Google Inc 2008 # Released under the GPL v2 """Tests for server.frontend.""" #pylint: disable=missing-docstring import os, unittest import common from autotest_lib.client.common_lib import global_config from autotest_lib.client.common_lib import utils from autotest_lib.client.common_lib.test_utils import mock from autotest_lib.frontend.afe import rpc_client_lib from autotest_lib.server import frontend GLOBAL_CONFIG = global_config.global_config class BaseRpcClientTest(unittest.TestCase): def setUp(self): self.god = mock.mock_god() self.god.mock_up(rpc_client_lib, 'rpc_client_lib') self.god.stub_function(utils, 'send_email') self._saved_environ = dict(os.environ) if 'AUTOTEST_WEB' in os.environ: del os.environ['AUTOTEST_WEB'] def tearDown(self): self.god.unstub_all() os.environ.clear() os.environ.update(self._saved_environ) class RpcClientTest(BaseRpcClientTest): def test_init(self): os.environ['LOGNAME'] = 'unittest-user' GLOBAL_CONFIG.override_config_value('SERVER', 'hostname', 'test-host') rpc_client_lib.add_protocol.expect_call('test-host').and_return( 'http://test-host') rpc_client_lib.get_proxy.expect_call( 'http://test-host/path', headers={'AUTHORIZATION': 'unittest-user'}) frontend.RpcClient('/path', None, None, None, None, None) self.god.check_playback() class CrosVersionFormatTestCase(unittest.TestCase): def test_format_cros_image_name(self): test_board = 'fubar-board' test_version = 'R99-20000.15.0' image_name = frontend.format_cros_image_name( test_board, test_version) self.assertIn(test_board, image_name) self.assertIn(test_version, image_name) if __name__ == '__main__': unittest.main()