Revision 54d7c02a

b/kamaki/clients/tests/__init__.py
33 33

  
34 34
from unittest import TestCase, TestSuite, makeSuite, TextTestRunner
35 35
from argparse import ArgumentParser
36
from sys import stdout
37
from traceback import extract_stack, print_stack
36 38

  
37 39
from kamaki.cli.config import Config
38 40

  
......
77 79
        self._fetched[key] = val
78 80
        return val
79 81

  
82
    def test_000(self):
83
        import inspect
84
        methods = [method for method in inspect.getmembers(
85
            self,
86
            predicate=inspect.ismethod)\
87
            if method[0].startswith('_test_')]
88
        exceptions = {}
89
        for method in methods:
90
            stdout.write('Test %s' % method[0][6:])
91
            try:
92
                method[1]()
93
                print(' ...ok')
94
            except AssertionError:
95
                print('  FAIL: %s (%s)' % (method[0], method[1]))
96
                exceptions[method[0]] = extract_stack()
97
        for m, e in exceptions.items():
98
            print('==================\nFAIL: %s\n------------------' % m[6:])
99
            print_stack(e)
100
        if exceptions:
101
            raise AssertionError('(#of fails: %s)' % len(exceptions))
102

  
80 103

  
81 104
def init_parser():
82 105
    parser = ArgumentParser(add_help=False)
......
106 129
    """
107 130
    if len(argv) == 0 or argv[0] == 'image':
108 131
        from kamaki.clients.tests.image import Image
109
        if len(argv) == 1:
110
            suiteFew.addTest(makeSuite(Image))
111
        else:
112
            suiteFew.addTest(Image('test_' + argv[1]))
132
        test_method = 'test_%s' % (argv[1] if len(argv) > 1 else '000')
133
        suiteFew.addTest(Image(test_method))
113 134
    if len(argv) == 0 or argv[0] == 'astakos':
114 135
        from kamaki.clients.tests.astakos import Astakos
115 136
        if len(argv) == 1:
b/kamaki/clients/tests/image.py
50 50
        self.cyclades = CycladesClient(cyclades_url, self['token'])
51 51
        self._imglist = {}
52 52

  
53
    def test_000(self):
54
        self._prepare_img()
55
        super(self.__class__, self).test_000()
56

  
53 57
    def _prepare_img(self):
54 58
        f = open(self['image', 'local_path'], 'rb')
55 59
        uuid = self['store', 'account']
......
101 105

  
102 106
    def test_list_public(self):
103 107
        """Test list_public"""
108
        self._test_list_public()
109

  
110
    def _test_list_public(self):
104 111
        r = self.client.list_public()
105 112
        r0 = self.client.list_public(order='-')
106 113
        self.assertTrue(len(r) > 0)
......
112 119
                'id',
113 120
                'size'):
114 121
                self.assertTrue(term in img)
115
        self.assertTrue(len(r), len(r0))
122
        self.assertTrue(r, r0)
123
        self.assertTrue(0)
116 124
        r0.reverse()
117 125
        for i, img in enumerate(r):
118 126
            self.assert_dicts_are_deeply_equal(img, r0[i])
......
133 141
                'properties',
134 142
                'size'):
135 143
                self.assertTrue(term in img)
136
                for interm in (
137
                    'osfamily',
138
                    'users',
139
                    'os',
140
                    'root_partition',
141
                    'description'):
142
                    self.assertTrue(interm in img['properties'])
144
                if img['properties']:
145
                    for interm in (
146
                        'osfamily',
147
                        'users',
148
                        'os',
149
                        'root_partition',
150
                        'description'):
151
                        self.assertTrue(interm in img['properties'])
143 152
        size_max = 1000000000
144 153
        r2 = self.client.list_public(filters=dict(size_max=size_max))
145 154
        self.assertTrue(len(r2) <= len(r))
......
148 157

  
149 158
    def test_get_meta(self):
150 159
        """Test get_meta"""
160
        self._test_get_meta()
161

  
162
    def _test_get_meta(self):
151 163
        r = self.client.get_meta(self['image', 'id'])
152 164
        self.assertEqual(r['id'], self['image', 'id'])
153 165
        for term in ('status',
......
175 187
    def test_register(self):
176 188
        """Test register"""
177 189
        self._prepare_img()
178
        self.assertTrue(len(self._imglist) > 0)
190
        self._test_register()
191

  
192
    def _test_register(self):
193
        self.assertTrue(self._imglist)
179 194
        for img in self._imglist.values():
180 195
            self.assertTrue(img != None)
181 196

  
182 197
    def test_reregister(self):
183 198
        """Test reregister"""
184 199
        self._prepare_img()
200
        self._test_reregister()
201

  
202
    def _test_reregister(self):
185 203
        self.client.reregister(
186 204
            self.location,
187 205
            properties=dict(my_property='some_value'))
......
189 207
    def test_set_members(self):
190 208
        """Test set_members"""
191 209
        self._prepare_img()
210
        self._test_set_members()
211

  
212
    def _test_set_members(self):
192 213
        members = ['%s@fake.net' % self.now]
193 214
        for img in self._imglist.values():
194 215
            self.client.set_members(img['id'], members)
......
197 218

  
198 219
    def test_list_members(self):
199 220
        """Test list_members"""
200
        self.test_set_members()
221
        self._test_list_members()
222

  
223
    def _test_list_members(self):
224
        self._test_set_members()
201 225

  
202 226
    def test_remove_members(self):
203 227
        """Test remove_members - NO CHECK"""
204
        return
205 228
        self._prepare_img()
229
        self._test_remove_members()
230

  
231
    def _test_remove_members(self):
232
        return
206 233
        members = ['%s@fake.net' % self.now, '%s_v2@fake.net' % self.now]
207 234
        for img in self._imglist.values():
208 235
            self.client.set_members(img['id'], members)
......
215 242

  
216 243
    def test_list_shared(self):
217 244
        """Test list_shared - NOT CHECKED"""
245
        self._test_list_shared()
246

  
247
    def _test_list_shared(self):
218 248
        #No way to test this, if I dont have member images
219 249
        pass

Also available in: Unified diff