Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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)
Example #11
0
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)
Example #12
0
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)