fix the post event without time argument

* make sure that the test uses the current time
  if time is not provided

Change-Id: I9aac4906ed4629c9730c012a2382657335a78d18
This commit is contained in:
Eyal 2017-07-04 10:39:32 +03:00
parent e50d0f0dc2
commit 614c531247

View File

@ -16,6 +16,7 @@ from argparse import ArgumentParser
from argparse import ArgumentTypeError from argparse import ArgumentTypeError
# noinspection PyPackageRequirements # noinspection PyPackageRequirements
from datetime import datetime
import mock import mock
from testtools import ExpectedException from testtools import ExpectedException
@ -28,7 +29,8 @@ class EventPostTest(CliTestCase):
def setUp(self): def setUp(self):
super(EventPostTest, self).setUp() super(EventPostTest, self).setUp()
self.event_post = EventPost(mock.Mock(), mock.Mock()) self.app = mock.Mock()
self.event_post = EventPost(self.app, mock.Mock())
def test_parsing_iso8601_with_not_a_date_string(self): def test_parsing_iso8601_with_not_a_date_string(self):
self.assertRaises(ArgumentTypeError, self.event_post.iso8601, 'bla') self.assertRaises(ArgumentTypeError, self.event_post.iso8601, 'bla')
@ -52,13 +54,6 @@ class EventPostTest(CliTestCase):
'--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") @mock.patch.object(ArgumentParser, "error")
def test_parser_event_post_type_required(self, mock_parser): def test_parser_event_post_type_required(self, mock_parser):
mock_parser.side_effect = self._my_parser_error_func mock_parser.side_effect = self._my_parser_error_func
@ -67,3 +62,20 @@ class EventPostTest(CliTestCase):
# noinspection PyCallByClass # noinspection PyCallByClass
with ExpectedException(ArgumentTypeError, r'.*--type'): with ExpectedException(ArgumentTypeError, r'.*--type'):
parser.parse_args(args=['--details', 'blabla']) parser.parse_args(args=['--details', 'blabla'])
@mock.patch('vitrageclient.v1.cli.event.datetime')
def test_parser_event_post_without_time_uses_time_now(self, dt_mock):
current_time = datetime.now()
dt_mock.now.return_value = current_time
iso_time = current_time.isoformat()
parser = self.event_post.get_parser('vitrage event post')
args = parser.parse_args(args=['--type', 'bla',
'--details', '{"blabla":[]}'
])
with mock.patch.object(self.app.client.event, 'post') as poster_mock:
self.event_post.take_action(args)
poster_mock.assert_called_with(event_time=iso_time,
details={'blabla': []},
event_type='bla')