Пример #1
0
    def test_multiple_match(self):
        self._router.add(CLIRoute(self._mock.help, {0: 'test', 2: 'route'}))
        self._router.add(CLIRoute(self._mock.help2, {0: 'test', 2: 'route'}))

        for route in self._router.match(['test', 'dlab', 'route']):
            route.invoke()

        self._mock.help.assert_called()
        self._mock.help2.assert_called()
Пример #2
0
    def test_priority_match(self):
        self._router.add(CLIRoute(self._mock.help, {0: 'test', 1: 'dlab'}))
        self._router.add(CLIRoute(self._mock.help2, {1: 'dlab', 2: 'route'}))
        self._router.add(CLIRoute(self._mock.help3, {0: 'test', 2: 'route'}))

        for route in self._router.match(['test', 'dlab', 'route']):
            route.invoke()

        self._mock.help2.assert_called()
        self._mock.help.assert_not_called()
        self._mock.help3.assert_not_called()
Пример #3
0
    def wrapper(*args, **kwargs):

        result = func(*args, **kwargs)

        return [
            CLIRoute(
                route['func'],
                {k: v
                 for k, v in enumerate(route['args']) if v is not None})
            for route in result
        ]
Пример #4
0
 def base_routes(self):
     route = CLIRoute(show_help, {0: sys.argv[0]})
     return [route]
Пример #5
0
 def test_arguments_value_validation(self):
     with self.assertRaises(RouteArgumentValueException):
         CLIRoute(self._mock.help, {0: None})
Пример #6
0
 def test_arguments_key_validation(self):
     with self.assertRaises(RouteArgumentKeyException):
         CLIRoute(self._mock.help, {None: 'test'})
Пример #7
0
 def test_invoke_validation(self):
     with self.assertRaises(RouteInvokeCallableException):
         CLIRoute(None, {0: 'test'})
Пример #8
0
 def test_arguments_validation(self):
     for i in [1, 'str', None, False, ['test'], ('test', ), {'test'}]:
         with self.assertRaises(RouteArgumentTypeException):
             CLIRoute(self._mock.help, i)