Revision c0fbf04c kamaki/cli/argument/test.py

b/kamaki/cli/argument/test.py
319 319
            assert_dicts_are_equal(self, kva.value, exp)
320 320

  
321 321

  
322
class ProgressBarArgument(TestCase):
323

  
324
    class PseudoBar(object):
325
            message = ''
326
            suffix = ''
327

  
328
            def start():
329
                pass
330

  
331
    @patch('kamaki.cli.argument.FlagArgument.__init__')
332
    def test___init__(self, init):
333
        help, pname, default = 'help', '--progress', 'default'
334
        pba = argument.ProgressBarArgument(help, pname, default)
335
        self.assertTrue(isinstance(pba, argument.ProgressBarArgument))
336
        self.assertEqual(pba.suffix, '%(percent)d%%')
337
        init.assert_called_once(help, pname, default)
338

  
339
    def test_clone(self):
340
        pba = argument.ProgressBarArgument(parsed_name='--progress')
341
        pba.value = None
342
        pba_clone = pba.clone()
343
        self.assertTrue(isinstance(pba, argument.ProgressBarArgument))
344
        self.assertTrue(isinstance(pba_clone, argument.ProgressBarArgument))
345
        self.assertNotEqual(pba, pba_clone)
346
        self.assertEqual(pba.parsed_name, pba_clone.parsed_name)
347

  
348
    def test_get_generator(self):
349
        pba = argument.ProgressBarArgument(parsed_name='--progress')
350
        pba.value = None
351
        msg, msg_len = 'message', 40
352
        with patch('kamaki.cli.argument.KamakiProgressBar.start') as start:
353
            pba.get_generator(msg, msg_len)
354
            self.assertTrue(isinstance(pba.bar, argument.KamakiProgressBar))
355
            self.assertNotEqual(pba.bar.message, msg)
356
            self.assertEqual(
357
                pba.bar.message, '%s%s' % (msg, ' ' * (msg_len - len(msg))))
358
            self.assertEqual(pba.bar.suffix, '%(percent)d%% - %(eta)ds')
359
            start.assert_called_once()
360

  
361
    def test_finish(self):
362
        pba = argument.ProgressBarArgument(parsed_name='--progress')
363
        pba.value = None
364
        self.assertEqual(pba.finish(), None)
365
        pba.bar = argument.KamakiProgressBar()
366
        with patch('kamaki.cli.argument.KamakiProgressBar.finish') as finish:
367
            pba.finish()
368
            finish.assert_called_once()
369

  
370

  
322 371
if __name__ == '__main__':
323 372
    from sys import argv
324 373
    from kamaki.cli.test import runTestCase
......
331 380
    runTestCase(DateArgument, 'DateArgument', argv[1:])
332 381
    runTestCase(VersionArgument, 'VersionArgument', argv[1:])
333 382
    runTestCase(KeyValueArgument, 'KeyValueArgument', argv[1:])
383
    runTestCase(ProgressBarArgument, 'ProgressBarArgument', argv[1:])

Also available in: Unified diff