def test_main_wait_for_boot(self, list_nodes, wait_for_boot): """Run the parser.node.main with wait-for-boot subparser function.""" wait_for_boot.return_value = {'result': 'test'} list_nodes.return_value = self._nodes args = ['wait-for-boot', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) wait_for_boot.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, max_wait=120, verbose=False) args = ['wait-for-boot', "--max-wait", '10', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) wait_for_boot.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, max_wait=10, verbose=False) exp_info_res = {"items": [{"network_address": node} for node in self._nodes]} with patch.object(self.api, 'get_experiment_info', Mock(return_value=exp_info_res)): list_nodes.return_value = [] args = ['wait-for-boot'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, None, None) wait_for_boot.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, max_wait=120, verbose=False)
def test_main_run_cmd(self, list_nodes, run_cmd): """Run the parser.node.main with run-cmd subparser function.""" run_cmd.return_value = {'result': 'test'} list_nodes.return_value = self._nodes args = ['run-cmd', 'uname -a', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) run_cmd.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'uname -a', False, verbose=False) args = ['run-cmd', 'uname -a', '--frontend', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) run_cmd.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'uname -a', True, verbose=False) exp_info_res = {"items": [{"network_address": node} for node in self._nodes]} with patch.object(self.api, 'get_experiment_info', Mock(return_value=exp_info_res)): list_nodes.return_value = [] args = ['run-cmd', 'uname -a'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, None, None) run_cmd.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'uname -a', False, verbose=False)
def test_main_copy_file(self, list_nodes, copy_file): """Run the parser.node.main with copy-file subparser function.""" copy_file.return_value = {'result': 'test'} list_nodes.return_value = self._nodes args = ['copy-file', 'script.sh', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) copy_file.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'script.sh', verbose=False) exp_info_res = {"items": [{"network_address": node} for node in self._nodes]} with patch.object(self.api, 'get_experiment_info', Mock(return_value=exp_info_res)): list_nodes.return_value = [] args = ['copy-file', 'script.sh'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, None, None) copy_file.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'script.sh', verbose=False)
def test_main_flash_m3(self, list_nodes, flash_m3): """Run the parser.node.main with update-m3 subparser function.""" flash_m3.return_value = {'result': 'test'} list_nodes.return_value = self._nodes args = ['flash-m3', 'firmware.elf', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, [self._nodes], None) flash_m3.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'firmware.elf', verbose=False) exp_info_res = {"items": [{"network_address": node} for node in self._nodes]} with patch.object(self.api, 'get_experiment_info', Mock(return_value=exp_info_res)): list_nodes.return_value = [] args = ['flash-m3', 'firmware.elf'] open_a8_parser.main(args) list_nodes.assert_called_with(self.api, 123, None, None) flash_m3.assert_called_with({'user': '******', 'exp_id': 123}, self._root_nodes, 'firmware.elf', verbose=False)
def test_reset_m3_jmespath(self, print_result, list_nodes, reset_m3): """Run reset-m3 subparser function with jmespath options.""" reset_m3.return_value = {'result': 'test'} list_nodes.return_value = self._nodes args = ['--jmespath=\'test\'', '--fmt=\'int\'', 'reset-m3', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) print_result.assert_called_once() args, _ = print_result.call_args self.assertEqual(len(args), 3) self.assertEqual(args[0], {'result': 'test'}) self.assertTrue(isinstance(args[1], jmespath.parser.ParsedResult)) self.assertEqual(args[2], 'int') args = ['reset-m3', '-l', 'saclay,a8,1-5'] open_a8_parser.main(args) print_result.assert_called_once() args, _ = print_result.call_args self.assertEqual(len(args), 3) self.assertEqual(args[0], {'result': 'test'}) self.assertEqual(args[1], None) self.assertEqual(args[2], None)