Revision 055b217a

b/kamaki/clients/tests.py
60 60
        token='0TpoyAXqJSPxLdDuZHiLOA=='
61 61
        account='saxtouri@admin.grnet.gr'
62 62
        self.img = '43cc8497-61c3-4c46-ae8d-3e33861f8527'
63

  
63
        self.img_details= {
64
            u'status': u'ACTIVE',
65
            u'updated': u'2012-08-21T12:57:39+00:00',
66
            u'name': u'Debian Base',
67
            u'created': u'2012-08-21T12:56:53+00:00',
68
            u'progress': 100,
69
            u'id': u'43cc8497-61c3-4c46-ae8d-3e33861f8527',
70
            u'metadata': {
71
                u'values': {
72
                    u'kernel': u'2.6.32',
73
                    u'osfamily': u'linux', 
74
                    u'users': u'root', 
75
                    u'gui': u'No GUI', 
76
                    u'sortorder': u'1', 
77
                    u'os': u'debian', 
78
                    u'root_partition': 
79
                    u'1', u'description': 
80
                    u'Debian Squeeze Base System'}
81
                }
82
            }
64 83
        flavorid = 1
65
        self.pseudo = False
66 84

  
67 85
        self.servers = {}
68 86
        self.now = time.mktime(time.gmtime())
......
76 94

  
77 95
    def tearDown(self):
78 96
        """Destoy servers used in testing"""
79
        if self.pseudo:
97
        if 0 >= len(self.servers):
80 98
            return
81 99
        there_are_servers_running = True
82 100
        deleted_servers = {}
......
87 105
            there_are_servers_running = False
88 106
            if waitime > 0:
89 107
                c = ['|','/','-','\\']
90
                sys.stdout.write('\t. . . wait %s seconds . . .  '%waitime)
91
                for i in range(waitime):
92
                    sys.stdout.write('\b'+c[i%4])
108
                suffix = ''
109
                sys.stdout.write('\t. . . wait %s seconds: '%waitime)
110
                for i in range(4*waitime):
111
                    oldlen = len(suffix)
112
                    suffix = '%ss %s'%(i/4, c[i%4])
113
                    sys.stdout.write(oldlen*'\b'+suffix)
93 114
                    sys.stdout.flush()
94
                    time.sleep(1)
95
                sys.stdout.write('\b \n')
115
                    time.sleep(0.25)
116
                oldlen = len(': '+suffix)
117
                print(oldlen*'\b'+oldlen*' ')
96 118
                sys.stdout.flush()
97
            waitime += 10
119
            waitime += 7
98 120
            dservers = self.client.list_servers(detail=True)
99 121
            for server in dservers:
100 122
                if server['name'] in self.servers.keys():
......
129 151
    def _delete_server(self, servid):
130 152
        self.client.delete_server(servid)
131 153

  
154
    def dont_test(self):
155
        global TEST_ALL
156
        if TEST_ALL:
157
            return True
158
        return False
159

  
160
    def assert_dicts_are_deeply_equal(self, d1, d2):
161
        for k,v in d1.items():
162
            self.assertTrue(d2.has_key(k))
163
            if isinstance(v, dict):
164
                self.assert_dicts_are_deeply_equal(v, d2[k])
165
            else:
166
                self.assertEqual(unicode(v), unicode(d2[k]))
167

  
168

  
132 169
    def test_000(self):
133 170
        "Prepare a full Cyclades test scenario"
134 171
        global TEST_ALL
......
141 178
        sys.stdout.write(' test create server')
142 179
        self._test_create_server()
143 180
        print('...ok')
181

  
144 182
        sys.stdout.write(' test list servers')
145 183
        self._test_list_servers()
146 184
        print('...ok')
147 185

  
186
        sys.stdout.write(' test get server details')
187
        self._test_get_server_details()
188
        print('...ok')
189

  
190
        sys.stdout.write(' test get image details')
191
        self._test_get_image_details()
192
        print('...ok')
148 193

  
149
    def dont_test(self):
150
        global TEST_ALL
151
        if TEST_ALL:
152
            self.pseudo = True
153
            return True
154
        return False
155 194

  
156 195
    def test_list_servers(self):
157 196
        """Test list servers"""
......
183 222
        if self.dont_test():
184 223
            return
185 224
        self.server1 = self._create_server(self.servname1, self.flavorid, self.img)
186
        self.server2 = self._create_server(self.servname2, self.flavorid, self.img)
187
        self._test_create_server(self)
225
        self._test_create_server()
188 226

  
189 227
    def _test_create_server(self):
190

  
191 228
        self.assertEqual(self.server1["name"], self.servname1)
192 229
        self.assertEqual(self.server1["flavorRef"], self.flavorid)
193 230
        self.assertEqual(self.server1["imageRef"], self.img)
194 231
        self.assertEqual(self.server1["status"], "BUILD")
195
        self.assertEqual(self.server2["name"], self.servname2)
196
        self.assertEqual(self.server2["flavorRef"], self.flavorid)
197
        self.assertEqual(self.server2["imageRef"], self.img)
198
        self.assertEqual(self.server2["status"], "BUILD")
232

  
233
    def test_get_server_details(self):
234
        """Test get_server_details"""
235
        if self.dont_test():
236
            return
237
        self.server1 = self._create_server(self.servname1, self.flavorid, self.img)
238
        self._test_get_server_details()
239

  
240
    def _test_get_server_details(self):
241
        r = self.client.get_server_details(self.server1['id'])
242
        self.assertEqual(r["name"], self.servname1)
243
        self.assertEqual(r["flavorRef"], self.flavorid)
244
        self.assertEqual(r["imageRef"], self.img)
245
        self.assertEqual(r["status"], "BUILD")
246

  
247
    def test_get_image_details(self):
248
        """Test get_image_details"""
249
        if self.dont_test():
250
            return
251
        self._test_get_image_details()
252

  
253
    def _test_get_image_details(self):
254
        r = self.client.get_image_details(self.img)
255
        d = self.img_details
256
        self.assert_dicts_are_deeply_equal(r, d)
199 257

  
200 258
class testPithos(unittest.TestCase):
201 259
    """Set up a Pithos+ thorough test"""
......
1037 1095
            suiteFew.addTest(testPithos('test_'+argv[1]))
1038 1096
    if len(argv) == 0 or argv[0] == 'cyclades':
1039 1097
        if len(argv) == 1:
1040
            suiteFew.addTest(unittest.makeSuite(testCyclades))
1098
            #suiteFew.addTest(unittest.makeSuite(testCyclades))
1099
            suiteFew.addTest(testCyclades('test_000'))
1041 1100
        else:
1042 1101
            suiteFew.addTest(testCyclades('test_'+argv[1]))
1043 1102

  

Also available in: Unified diff