Revision b7ff6e0c kamaki/cli/argument/test.py
b/kamaki/cli/argument/test.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 |
from mock import patch, call |
|
34 |
from mock import patch, call, MagicMock
|
|
35 | 35 |
from unittest import TestCase |
36 | 36 |
from StringIO import StringIO |
37 |
from datetime import datetime |
|
37 | 38 |
#from itertools import product |
38 | 39 |
|
39 | 40 |
from kamaki.cli import argument, errors |
... | ... | |
232 | 233 |
self.assertTrue(isinstance(e, err)) |
233 | 234 |
|
234 | 235 |
|
236 |
class DateArgument(TestCase): |
|
237 |
|
|
238 |
def test_timestamp(self): |
|
239 |
da = argument.DateArgument(parsed_name='--date') |
|
240 |
self.assertEqual(da.timestamp, None) |
|
241 |
date, format, exp = '24-10-1917', '%d-%m-%Y', -1646964000.0 |
|
242 |
da._value = argument.dtm.strptime(date, format) |
|
243 |
self.assertEqual(da.timestamp, exp) |
|
244 |
|
|
245 |
def test_formated(self): |
|
246 |
da = argument.DateArgument(parsed_name='--date') |
|
247 |
self.assertEqual(da.formated, None) |
|
248 |
date, format, exp = ( |
|
249 |
'24-10-1917', '%d-%m-%Y', 'Wed Oct 24 00:00:00 1917') |
|
250 |
da._value = argument.dtm.strptime(date, format) |
|
251 |
self.assertEqual(da.formated, exp) |
|
252 |
|
|
253 |
@patch('kamaki.cli.argument.DateArgument.timestamp') |
|
254 |
@patch('kamaki.cli.argument.DateArgument.format_date') |
|
255 |
def test_value(self, format_date, timestamp): |
|
256 |
da = argument.DateArgument(parsed_name='--date') |
|
257 |
self.assertTrue(isinstance(da.value, MagicMock)) |
|
258 |
da.value = 'Something' |
|
259 |
format_date.assert_called_once(call('Something')) |
|
260 |
|
|
261 |
def test_format_date(self): |
|
262 |
da = argument.DateArgument(parsed_name='--date') |
|
263 |
for datestr, exp in ( |
|
264 |
('Wed Oct 24 01:02:03 1917', datetime(1917, 10, 24, 1, 2, 3)), |
|
265 |
('24-10-1917', datetime(1917, 10, 24)), |
|
266 |
('01:02:03 24-10-1917', datetime(1917, 10, 24, 1, 2, 3))): |
|
267 |
self.assertEqual(da.format_date(datestr), exp) |
|
268 |
for datestr, err in ( |
|
269 |
('32-40-20134', errors.CLIError), |
|
270 |
('Wednesday, 24 Oct 2017', errors.CLIError), |
|
271 |
(None, TypeError), (0.8, TypeError)): |
|
272 |
self.assertRaises(err, da.format_date, datestr) |
|
273 |
|
|
274 |
|
|
235 | 275 |
if __name__ == '__main__': |
236 | 276 |
from sys import argv |
237 | 277 |
from kamaki.cli.test import runTestCase |
... | ... | |
241 | 281 |
runTestCase(FlagArgument, 'FlagArgument', argv[1:]) |
242 | 282 |
runTestCase(FlagArgument, 'ValueArgument', argv[1:]) |
243 | 283 |
runTestCase(IntArgument, 'IntArgument', argv[1:]) |
284 |
runTestCase(DateArgument, 'DateArgument', argv[1:]) |
Also available in: Unified diff