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