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()
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()
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 ]
def base_routes(self): route = CLIRoute(show_help, {0: sys.argv[0]}) return [route]
def test_arguments_value_validation(self): with self.assertRaises(RouteArgumentValueException): CLIRoute(self._mock.help, {0: None})
def test_arguments_key_validation(self): with self.assertRaises(RouteArgumentKeyException): CLIRoute(self._mock.help, {None: 'test'})
def test_invoke_validation(self): with self.assertRaises(RouteInvokeCallableException): CLIRoute(None, {0: 'test'})
def test_arguments_validation(self): for i in [1, 'str', None, False, ['test'], ('test', ), {'test'}]: with self.assertRaises(RouteArgumentTypeException): CLIRoute(self._mock.help, i)