xref: /aosp_15_r20/external/autotest/autotest_lib/server/frontend_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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