post event paramters fix
* make the default value for time work * use the argparse option to make the type argument mandatory * add tests Change-Id: Id3186fa90300f34fe3530109f11bd655a39d8363
This commit is contained in:
parent
b4687f9b10
commit
e50d0f0dc2
@ -51,3 +51,19 @@ class EventPostTest(CliTestCase):
|
|||||||
parser.parse_args(args=['--type', 'bla',
|
parser.parse_args(args=['--type', 'bla',
|
||||||
'--time', '-5',
|
'--time', '-5',
|
||||||
'--details', 'blabla'])
|
'--details', 'blabla'])
|
||||||
|
|
||||||
|
@mock.patch.object(ArgumentParser, "error")
|
||||||
|
def test_parser_event_post_without_time(self, mock_parser):
|
||||||
|
mock_parser.side_effect = self._my_parser_error_func
|
||||||
|
parser = self.event_post.get_parser('vitrage event post')
|
||||||
|
|
||||||
|
parser.parse_args(args=['--type', 'bla', '--details', 'blabla'])
|
||||||
|
|
||||||
|
@mock.patch.object(ArgumentParser, "error")
|
||||||
|
def test_parser_event_post_type_required(self, mock_parser):
|
||||||
|
mock_parser.side_effect = self._my_parser_error_func
|
||||||
|
parser = self.event_post.get_parser('vitrage event post')
|
||||||
|
|
||||||
|
# noinspection PyCallByClass
|
||||||
|
with ExpectedException(ArgumentTypeError, r'.*--type'):
|
||||||
|
parser.parse_args(args=['--details', 'blabla'])
|
||||||
|
@ -20,8 +20,6 @@ from datetime import datetime
|
|||||||
from iso8601 import iso8601
|
from iso8601 import iso8601
|
||||||
from iso8601 import ParseError
|
from iso8601 import ParseError
|
||||||
|
|
||||||
from vitrageclient.common import exc
|
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyAbstractClass
|
# noinspection PyAbstractClass
|
||||||
class EventPost(command.Command):
|
class EventPost(command.Command):
|
||||||
@ -30,7 +28,8 @@ class EventPost(command.Command):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def iso8601(argument_value):
|
def iso8601(argument_value):
|
||||||
try:
|
try:
|
||||||
iso8601.parse_date(argument_value)
|
if argument_value:
|
||||||
|
iso8601.parse_date(argument_value)
|
||||||
except ParseError:
|
except ParseError:
|
||||||
msg = "%s must be an iso8601 date" % argument_value
|
msg = "%s must be an iso8601 date" % argument_value
|
||||||
raise argparse.ArgumentTypeError(msg)
|
raise argparse.ArgumentTypeError(msg)
|
||||||
@ -39,6 +38,7 @@ class EventPost(command.Command):
|
|||||||
parser = super(EventPost, self).get_parser(prog_name)
|
parser = super(EventPost, self).get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument('--type',
|
parser.add_argument('--type',
|
||||||
|
required=True,
|
||||||
help='The type of the event')
|
help='The type of the event')
|
||||||
|
|
||||||
parser.add_argument('--time',
|
parser.add_argument('--time',
|
||||||
@ -55,9 +55,6 @@ class EventPost(command.Command):
|
|||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
if not parsed_args.type:
|
|
||||||
raise exc.CommandException(
|
|
||||||
message='Missing event type, please add --type')
|
|
||||||
|
|
||||||
if parsed_args.time:
|
if parsed_args.time:
|
||||||
event_time = parsed_args.time
|
event_time = parsed_args.time
|
||||||
|
Loading…
Reference in New Issue
Block a user