jamesren | 9a6f5f6 | 2010-05-05 22:55:54 +0000 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | |
| 3 | import unittest, base64 |
| 4 | import common |
| 5 | from autotest_lib.frontend.planner import control_file |
| 6 | from autotest_lib.client.common_lib.test_utils import mock |
| 7 | |
| 8 | |
| 9 | class ControlFileUnittest(unittest.TestCase): |
| 10 | def setUp(self): |
| 11 | self.god = mock.mock_god() |
| 12 | |
| 13 | |
| 14 | def tearDown(self): |
| 15 | self.god.unstub_all() |
| 16 | |
| 17 | |
| 18 | def _test_wrap_control_file_helper(self): |
| 19 | self.verify_params = object() |
| 20 | self.control = 'control' |
| 21 | self.verify_segment = '|verify_segment|' |
| 22 | prepared_verify_args = 'prepared_verify_args' |
| 23 | |
| 24 | self.god.stub_function(control_file, 'prepare_args') |
| 25 | self.god.stub_function(control_file, 'apply_string_arguments') |
| 26 | control_file.prepare_args.expect_call( |
| 27 | self.verify_params).and_return(prepared_verify_args) |
| 28 | control_file.apply_string_arguments.expect_call( |
| 29 | control_file.VERIFY_TEST_SEGMENT, |
| 30 | verify_args=prepared_verify_args).and_return( |
| 31 | self.verify_segment) |
| 32 | |
| 33 | |
| 34 | def test_wrap_control_file_client(self): |
| 35 | self._test_wrap_control_file_helper() |
| 36 | control_base64 = 'control_base64' |
| 37 | control_segment = '|control_segment|' |
| 38 | |
| 39 | self.god.stub_function(base64, 'encodestring') |
| 40 | base64.encodestring.expect_call(self.control).and_return(control_base64) |
| 41 | control_file.apply_string_arguments.expect_call( |
| 42 | control_file.CLIENT_SEGMENT, control_base64=control_base64, |
| 43 | control_comment=mock.is_string_comparator()).and_return( |
| 44 | control_segment) |
| 45 | |
| 46 | result = control_file.wrap_control_file(control_file=self.control, |
| 47 | is_server=False, |
| 48 | skip_verify=False, |
| 49 | verify_params=self.verify_params) |
| 50 | |
| 51 | self.assertEqual(result, self.verify_segment + control_segment) |
| 52 | self.god.check_playback() |
| 53 | |
| 54 | |
| 55 | def test_wrap_control_file_server(self): |
| 56 | self._test_wrap_control_file_helper() |
| 57 | control_segment = '|control_segment|' |
| 58 | |
| 59 | control_file.apply_string_arguments.expect_call( |
| 60 | control_file.SERVER_SEGMENT, |
| 61 | control_raw=self.control).and_return(control_segment) |
| 62 | |
| 63 | result = control_file.wrap_control_file(control_file=self.control, |
| 64 | is_server=True, |
| 65 | skip_verify=False, |
| 66 | verify_params=self.verify_params) |
| 67 | |
| 68 | self.assertEqual(result, self.verify_segment + control_segment) |
| 69 | self.god.check_playback() |
| 70 | |
| 71 | |
| 72 | if __name__ == '__main__': |
| 73 | unittest.main() |