#!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json import unittest __author__ = 'James Iter' __date__ = '2017/4/27' __contact__ = 'james.iter.cn@gmail.com' __copyright__ = '(c) 2017 by James Iter.' class TestDisk(unittest.TestCase): base_url = 'http://127.0.0.1:8008/api' uuid = '' new_size = 200 uuid_list = list() def setUp(self): pass 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__() 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): for uuid in TestDisk.uuid_list: TestDisk.uuid = uuid url = TestDisk.base_url + '/disk/' + TestDisk.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()