Przeglądaj źródła

完善guest单元测试

James Iter 9 lat temu
rodzic
commit
9df143e753
3 zmienionych plików z 122 dodań i 57 usunięć
  1. 62 53
      tests/test_disk.py
  2. 59 3
      tests/test_guest.py
  3. 1 1
      views/guest.py

+ 62 - 53
tests/test_disk.py

@@ -26,67 +26,76 @@ class TestDisk(unittest.TestCase):
     def tearDown(self):
         pass
 
-    # 创建 Disk
-    def test_11_create(self):
-        payload = {
-            "size": 10
-        }
-
-        url = TestDisk.base_url + '/disk'
-        headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
-        j_r = json.loads(r.content)
-        print json.dumps(j_r, ensure_ascii=False)
-        self.assertEqual('200', j_r['state']['code'])
-
-    def test_12_get(self):
-        url = TestDisk.base_url + '/disks'
-        headers = {'content-type': 'application/json'}
-        r = requests.get(url, headers=headers)
-        j_r = json.loads(r.content)
-        print json.dumps(j_r, ensure_ascii=False)
-        TestDisk.uuid = j_r['data'][0]['uuid']
-        self.assertEqual('200', j_r['state']['code'])
-
-    # @unittest.skip('skip resize disk')
-    def test_13_disk_resize(self):
-        url = TestDisk.base_url + '/disk/_disk_resize/' + TestDisk.uuid + '/' + TestDisk.new_size.__str__()
+    # # 创建 Disk
+    # def test_11_create(self):
+    #     payload = {
+    #         "size": 10
+    #     }
+    #
+    #     url = TestDisk.base_url + '/disk'
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.post(url, data=json.dumps(payload), headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     self.assertEqual('200', j_r['state']['code'])
+    #
+    # def test_12_get(self):
+    #     url = TestDisk.base_url + '/disks'
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.get(url, headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     TestDisk.uuid = j_r['data'][0]['uuid']
+    #     self.assertEqual('200', j_r['state']['code'])
+    #
+    # # @unittest.skip('skip resize disk')
+    # def test_13_disk_resize(self):
+    #     url = TestDisk.base_url + '/disk/_disk_resize/' + TestDisk.uuid + '/' + TestDisk.new_size.__str__()
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.put(url, headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     self.assertEqual('200', j_r['state']['code'])
+    #
+    # # @unittest.skip('skip update disk')
+    # def test_14_update(self):
+    #     payload = {
+    #         "label": "Hello-disk"
+    #     }
+    #
+    #     url = TestDisk.base_url + '/disk/' + TestDisk.uuid
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.patch(url, data=json.dumps(payload), headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     self.assertEqual('200', j_r['state']['code'])
+    #
+    # # 校验更新结果
+    # # @unittest.skip('skip get disk')
+    # def test_15_get(self):
+    #     url = TestDisk.base_url + '/disks'
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.get(url, headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     self.assertEqual('200', j_r['state']['code'])
+    #     self.assertEqual(TestDisk.new_size, j_r['data'][0]['size'])
+    #     self.assertEqual('Hello-disk', j_r['data'][0]['label'])
+    #     for disk in j_r['data']:
+    #         TestDisk.uuid_list.append(disk['uuid'])
+
+    def test_16_detach_disk(self):
+        url = TestDisk.base_url + '/guest/_detach_disk/' + '49aab662-abdd-4338-bcde-60a70020daa0'
         headers = {'content-type': 'application/json'}
         r = requests.put(url, headers=headers)
         j_r = json.loads(r.content)
         print json.dumps(j_r, ensure_ascii=False)
         self.assertEqual('200', j_r['state']['code'])
 
-    # @unittest.skip('skip update disk')
-    def test_14_update(self):
-        payload = {
-            "label": "Hello-disk"
-        }
-
-        url = TestDisk.base_url + '/disk/' + TestDisk.uuid
-        headers = {'content-type': 'application/json'}
-        r = requests.patch(url, data=json.dumps(payload), headers=headers)
-        j_r = json.loads(r.content)
-        print json.dumps(j_r, ensure_ascii=False)
-        self.assertEqual('200', j_r['state']['code'])
-
-    # 校验更新结果
-    # @unittest.skip('skip get disk')
-    def test_15_get(self):
-        url = TestDisk.base_url + '/disks'
-        headers = {'content-type': 'application/json'}
-        r = requests.get(url, headers=headers)
-        j_r = json.loads(r.content)
-        print json.dumps(j_r, ensure_ascii=False)
-        self.assertEqual('200', j_r['state']['code'])
-        self.assertEqual(TestDisk.new_size, j_r['data'][0]['size'])
-        self.assertEqual('Hello-disk', j_r['data'][0]['label'])
-        for disk in j_r['data']:
-            TestDisk.uuid_list.append(disk['uuid'])
-
     # 删除Guest
     # @unittest.skip('skip delete disk')
-    def test_16_delete(self):
+    def test_17_delete(self):
+        TestDisk.uuid_list.append('49aab662-abdd-4338-bcde-60a70020daa0')
         for uuid in TestDisk.uuid_list:
             TestDisk.uuid = uuid
             url = TestDisk.base_url + '/disk/' + TestDisk.uuid

+ 59 - 3
tests/test_guest.py

@@ -17,6 +17,7 @@ class TestGuest(unittest.TestCase):
 
     base_url = 'http://127.0.0.1:8008/api'
     uuid = ''
+    disk_uuid = ''
 
     def setUp(self):
         pass
@@ -25,13 +26,13 @@ class TestGuest(unittest.TestCase):
         pass
 
     # 创建Guest
-    @unittest.skip('skip create guest')
+    # @unittest.skip('skip create guest')
     def test_11_create(self):
         payload = {
             "cpu": 4,
             "memory": 4,
             "os_template_id": 1,
-            "quantity": 2,
+            "quantity": 1,
             "name": "",
             "password": "pswd.com",
             "lease_term": 100
@@ -77,9 +78,56 @@ class TestGuest(unittest.TestCase):
         self.assertEqual('200', j_r['state']['code'])
         self.assertEqual('zabbix', j_r['data'][0]['remark'])
 
+    # 创建 Disk
+    def test_21_create_disk(self):
+        payload = {
+            "size": 10
+        }
+
+        url = TestGuest.base_url + '/disk'
+        headers = {'content-type': 'application/json'}
+        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
+    def test_22_get_disks(self):
+        url = TestGuest.base_url + '/disks'
+        headers = {'content-type': 'application/json'}
+        r = requests.get(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        TestGuest.disk_uuid = j_r['data'][-1]['uuid']
+        self.assertEqual('200', j_r['state']['code'])
+
+    # @unittest.skip('skip resize disk')
+    def test_23_disk_resize(self):
+        url = TestGuest.base_url + '/disk/_disk_resize/' + TestGuest.disk_uuid + '/2000'
+        headers = {'content-type': 'application/json'}
+        r = requests.put(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
+    def test_31_attach_disk(self):
+        url = TestGuest.base_url + '/guest/_attach_disk/' + TestGuest.uuid + '/' + TestGuest.disk_uuid
+        headers = {'content-type': 'application/json'}
+        r = requests.put(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
+    def test_32_detach_disk(self):
+        url = TestGuest.base_url + '/guest/_detach_disk/' + TestGuest.disk_uuid
+        headers = {'content-type': 'application/json'}
+        r = requests.put(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
     # 删除Guest
     # @unittest.skip('skip delete guest')
-    def test_15_delete(self):
+    def test_41_delete(self):
         url = TestGuest.base_url + '/guests/' + TestGuest.uuid
         headers = {'content-type': 'application/json'}
         r = requests.delete(url, headers=headers)
@@ -87,6 +135,14 @@ class TestGuest(unittest.TestCase):
         print json.dumps(j_r, ensure_ascii=False)
         self.assertEqual('200', j_r['state']['code'])
 
+    def test_42_delete_disk(self):
+        url = TestGuest.base_url + '/disk/' + TestGuest.disk_uuid
+        headers = {'content-type': 'application/json'}
+        r = requests.delete(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
 
 if __name__ == '__main__':
     unittest.main()

+ 1 - 1
views/guest.py

@@ -396,7 +396,7 @@ def r_attach_disk(uuid, disk_uuid):
 
         # 取出该 guest 已挂载的磁盘,来做出决定,确定该磁盘的序列
         guest_disk.guest_uuid = guest.uuid
-        disks, count = guest_disk.get_all()
+        disks, count = guest_disk.get_by_filter(filter_str='guest_uuid:in:' + guest.uuid)
         guest_disk.sequence = count + 1
 
         config = Config()