Revision 02846a75 kamaki/clients/tests/__init__.py

b/kamaki/clients/tests/__init__.py
34 34
from unittest import TestCase, TestSuite, makeSuite, TextTestRunner
35 35
from argparse import ArgumentParser
36 36
from sys import stdout
37
from traceback import extract_stack, print_stack
38 37
from progress.bar import ShadyBar
39 38

  
40 39
from kamaki.cli.config import Config
40
from kamaki.cli.utils import spiner
41 41

  
42 42

  
43 43
def _add_value(foo, value):
......
48 48

  
49 49
class Generic(TestCase):
50 50

  
51
    _waits = []
51 52
    _cnf = None
52 53
    _grp = None
53 54
    _fetched = {}
......
56 57
        super(Generic, self).__init__(specific)
57 58
        self._cnf = Config(config_file)
58 59
        self._grp = group
60
        self._waits.append(0.71828)
61
        for i in range(10):
62
            self._waits.append(self._waits[-1] * 2.71828)
59 63

  
60 64
    def __getitem__(self, key):
61 65
        key = self._key(key)
......
83 87
    def _safe_progress_bar(self, msg):
84 88
        """Try to get a progress bar, but do not raise errors"""
85 89
        try:
86
            progress_bar = ShadyBar()
87
            gen = progress_bar.get_generator(msg)
90
            wait_bar = ShadyBar(msg)
91

  
92
            def wait_gen(n):
93
                for i in wait_bar.iter(range(int(n))):
94
                    yield
95
                yield
96
            wait_cb = wait_gen
88 97
        except Exception:
89
            return (None, None)
90
        return (progress_bar, gen)
98
            stdout.write('%s:' % msg)
99
            (wait_bar, wait_cb) = (None, spiner)
100
        return (wait_bar, wait_cb)
91 101

  
92 102
    def _safe_progress_bar_finish(self, progress_bar):
93 103
        try:
94 104
            progress_bar.finish()
95 105
        except Exception:
96
            pass
97

  
98
    def do_with_progress_bar(self, action, msg, list, *args, **kwargs):
99
        (action_bar, action_cb) = self._safe_progress_bar('')
106
            print(' DONE')
107

  
108
    def do_with_progress_bar(self, action, msg, items):
109
        if not items:
110
            print('%s: DONE' % msg)
111
            return
112
        (action_bar, action_cb) = self._safe_progress_bar(msg)
113
        action_gen = action_cb(len(items))
114
        for item in items:
115
            action(item)
116
            action_gen.next()
117
        self._safe_progress_bar_finish(action_bar)
100 118

  
101 119
    def assert_dicts_are_deeply_equal(self, d1, d2):
102 120
        for k, v in d1.items():
......
144 162
            suiteFew.addTest(unittest.makeSuite(testPithos))
145 163
        else:
146 164
            suiteFew.addTest(testPithos('test_' + argv[1]))
147
    if len(argv) == 0 or argv[0] == 'cyclades':
148
        if len(argv) == 1:
149
            #suiteFew.addTest(unittest.makeSuite(testCyclades))
150
            suiteFew.addTest(testCyclades('test_000'))
151
        else:
152
            suiteFew.addTest(testCyclades('test_' + argv[1]))
153 165
    """
166
    if len(argv) == 0 or argv[0] == 'cyclades':
167
        from kamaki.clients.tests.cyclades import Cyclades
168
        test_method = 'test_%s' % (argv[1] if len(argv) > 1 else '000')
169
        suiteFew.addTest(Cyclades(test_method))
154 170
    if len(argv) == 0 or argv[0] == 'image':
155 171
        from kamaki.clients.tests.image import Image
156 172
        test_method = 'test_%s' % (argv[1] if len(argv) > 1 else '000')

Also available in: Unified diff