def test_main_cli(self): """ Run the main-cli function """ # Redefinition of function.side_effect type from XXX # pylint: disable=redefined-variable-type function = Mock(return_value='{"result": 0}') parser = Mock() parser.error.side_effect = SystemExit common.main_cli(function, parser) function.side_effect = IOError() self.assertRaises(SystemExit, common.main_cli, function, parser) with patch('sys.stderr', sys.stdout): # HTTPError, both cases err = HTTPError(None, 401, 'msg', None, None) function.side_effect = err self.assertRaises(SystemExit, common.main_cli, function, parser) err = HTTPError(None, 200, 'msg', None, None) function.side_effect = err self.assertRaises(SystemExit, common.main_cli, function, parser) # Other exceptions function.side_effect = RuntimeError() self.assertRaises(SystemExit, common.main_cli, function, parser) function.side_effect = KeyboardInterrupt() self.assertRaises(SystemExit, common.main_cli, function, parser)
def test_main_cli_jmespath_fmt(): """ Run main_cli with --jmespath and --format options Test getting deployed nodes from 'experiment-cli get -p'""" function = Mock( return_value={ "deploymentresults": { "0": [ "a8-5.grenoble.iot-lab.info", "a8-6.grenoble.iot-lab.info", "a8-7.grenoble.iot-lab.info", "a8-8.grenoble.iot-lab.info", "a8-9.grenoble.iot-lab.info" ] }, "duration": 60, "firmwareassociations": None, "name": None, "nodes": [ "a8-5.grenoble.iot-lab.info", "a8-6.grenoble.iot-lab.info", "a8-7.grenoble.iot-lab.info", "a8-8.grenoble.iot-lab.info", "a8-9.grenoble.iot-lab.info" ], "profileassociations": None, "profiles": None, "reservation": None, "state": "Running", "type": "physical" }) nodes_list_ret = ('a8-5.grenoble.iot-lab.info' ' a8-6.grenoble.iot-lab.info' ' a8-7.grenoble.iot-lab.info' ' a8-8.grenoble.iot-lab.info' ' a8-9.grenoble.iot-lab.info') # like experiment-cli get --print parser = common.base_parser() args = ['--jmespath', 'deploymentresults."0"', '--format', '" ".join'] # No need to add 'exp-cli get -p' function is mocked with patch('%s.print' % BUILTIN) as mock_print: common.main_cli(function, parser, args) mock_print.assert_called_with(nodes_list_ret)
def test_main_cli_jmespath_fmt(): """ Run main_cli with --jmespath and --format options Test getting deployed nodes from 'experiment-cli get -p'""" function = Mock( return_value={ "deploymentresults": { "0": [ "a8-5.grenoble.iot-lab.info", "a8-6.grenoble.iot-lab.info", "a8-7.grenoble.iot-lab.info", "a8-8.grenoble.iot-lab.info", "a8-9.grenoble.iot-lab.info", ] }, "duration": 60, "firmwareassociations": None, "name": None, "nodes": [ "a8-5.grenoble.iot-lab.info", "a8-6.grenoble.iot-lab.info", "a8-7.grenoble.iot-lab.info", "a8-8.grenoble.iot-lab.info", "a8-9.grenoble.iot-lab.info", ], "profileassociations": None, "profiles": None, "reservation": None, "state": "Running", "type": "physical", } ) nodes_list_ret = ( "a8-5.grenoble.iot-lab.info" " a8-6.grenoble.iot-lab.info" " a8-7.grenoble.iot-lab.info" " a8-8.grenoble.iot-lab.info" " a8-9.grenoble.iot-lab.info" ) # like experiment-cli get --print parser = common.base_parser() args = ["--jmespath", 'deploymentresults."0"', "--format", '" ".join'] # No need to add 'exp-cli get -p' function is mocked with patch("%s.print" % BUILTIN) as mock_print: common.main_cli(function, parser, args) mock_print.assert_called_with(nodes_list_ret)
def test_main_cli(self): """ Run the main-cli function """ function = Mock(return_value='{"result": 0}') parser = Mock() parser.error.side_effect = SystemExit common.main_cli(function, parser) function.side_effect = IOError() self.assertRaises(SystemExit, common.main_cli, function, parser) with patch('sys.stderr', sys.stdout): function.side_effect = RuntimeError() self.assertRaises(SystemExit, common.main_cli, function, parser) function.side_effect = KeyboardInterrupt() self.assertRaises(SystemExit, common.main_cli, function, parser)
def main(args=None): """'admin-cli' main function.""" args = args or sys.argv[1:] parser = parse_options() common.main_cli(admin_parse_and_run, parser, args)
def main(args=None): """ Main command-line execution loop." """ args = args or sys.argv[1:] parser = parse_options() common.main_cli(node_parse_and_run, parser, args)
def main(args=None): """ Main command-line execution loop." """ args = args or sys.argv[1:] parser = parse_options() common.main_cli(robot_parse_and_run, parser, args)
def main(args=None): """Open A8 SSH cli parser.""" args = args or sys.argv[1:] # required for easy testing. parser = parse_options() common.main_cli(open_a8_parse_and_run, parser, args)
def main(args=None): """'iotlab-admin' main function.""" args = args or sys.argv[1:] parser = parse_options() common.main_cli(admin_parse_and_run, parser, args)
def main(args=None): """Websocket client cli parser.""" args = args or sys.argv[1:] # required for easy testing. parser = parse_options() common.main_cli(parse_and_run, parser, args)