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