Skip to content

Commit

Permalink
Merge pull request #2688 from freenas/QE-tkt-78006
Browse files Browse the repository at this point in the history
QE tkt-78006 adding global nested_vm, message to skip test if system does not support virtualization
  • Loading branch information
pkgdemon committed Feb 28, 2019
2 parents 17c4eb9 + 929049b commit ea8c4fc
Showing 1 changed file with 67 additions and 33 deletions.
100 changes: 67 additions & 33 deletions tests/api2/vm.py
Expand Up @@ -26,6 +26,8 @@ def test_01_looking_vm_flags():


def test_02_creating_vm(data):
global nested_vm, message
message = "This system does not support virtualization."
global payload
payload = {
'name': 'vmtest',
Expand All @@ -37,67 +39,99 @@ def test_02_creating_vm(data):
'autostart': False,
}
results = POST('/vm/', payload)
assert results.status_code == 200, results.text
data['vmid'] = results.json()
if results.status_code == 422 and message in results.text:
nested_vm = False
pytest.skip(message)
else:
nested_vm = True
assert results.status_code == 200, results.text
data['vmid'] = results.json()


def test_03_get_vm_query(data):
results = GET(f'/vm/?id={data["vmid"]}')
assert results.status_code == 200, results.text
assert isinstance(results.json(), list) is True, results.text
global vmware_query
vmware_query = results
if nested_vm is False:
pytest.skip(message)
else:
results = GET(f'/vm/?id={data["vmid"]}')
assert results.status_code == 200, results.text
assert isinstance(results.json(), list) is True, results.text
global vmware_query
vmware_query = results


@pytest.mark.parametrize('dkey', ['name', 'description', 'vcpus', 'memory',
'bootloader', 'devices', 'autostart'])
def test_04_look_vm_query_(dkey):
assert vmware_query.json()[0][dkey] == payload[dkey], vmware_query.text
if nested_vm is False:
pytest.skip(message)
else:
assert vmware_query.json()[0][dkey] == payload[dkey], vmware_query.text


@pytest.mark.skip('Not working in Bhyve')
def test_05_start_vm(data):
results = POST(f'/vm/id/{data["vmid"]}/start/')
assert results.status_code == 200, results.text
assert isinstance(results.json(), bool) is True, results.text
if nested_vm is False:
pytest.skip(message)
else:
results = POST(f'/vm/id/{data["vmid"]}/start/')
assert results.status_code == 200, results.text
assert isinstance(results.json(), bool) is True, results.text


def test_06_vm_status(data):
results = POST(f'/vm/id/{data["vmid"]}/status/')
assert results.status_code == 200, results.text
status = results.json()
assert isinstance(status, dict) is True, results.text
if nested_vm is False:
pytest.skip(message)
else:
results = POST(f'/vm/id/{data["vmid"]}/status/')
assert results.status_code == 200, results.text
status = results.json()
assert isinstance(status, dict) is True, results.text


def test_07_stop_vm(data):
results = POST(f'/vm/id/{data["vmid"]}/stop/')
assert results.status_code == 200, results.text
assert isinstance(results.json(), bool) is True, results.text
if nested_vm is False:
pytest.skip(message)
else:
results = POST(f'/vm/id/{data["vmid"]}/stop/')
assert results.status_code == 200, results.text
assert isinstance(results.json(), bool) is True, results.text


def test_08_update_vm(data):
global payload
payload = {
'memory': 1100,
}
results = PUT(f'/vm/id/{data["vmid"]}/', payload)
assert results.status_code == 200, results.text
assert GET(f'/vm?id={data["vmid"]}').json()[0]['memory'] == 1100
if nested_vm is False:
pytest.skip(message)
else:
global payload
payload = {
'memory': 1100,
}
results = PUT(f'/vm/id/{data["vmid"]}/', payload)
assert results.status_code == 200, results.text
assert GET(f'/vm?id={data["vmid"]}').json()[0]['memory'] == 1100


def test_09_get_vm_query(data):
results = GET(f'/vm/?id={data["vmid"]}')
assert results.status_code == 200, results.text
assert isinstance(results.json(), list) is True, results.text
global vmware_query
vmware_query = results
if nested_vm is False:
pytest.skip(message)
else:
results = GET(f'/vm/?id={data["vmid"]}')
assert results.status_code == 200, results.text
assert isinstance(results.json(), list) is True, results.text
global vmware_query
vmware_query = results


@pytest.mark.parametrize('dkey', ['memory'])
def test_10_look_vm_query_(dkey):
assert vmware_query.json()[0][dkey] == payload[dkey], vmware_query.text
if nested_vm is False:
pytest.skip(message)
else:
assert vmware_query.json()[0][dkey] == payload[dkey], vmware_query.text


def test_11_delete_vm(data):
results = DELETE(f'/vm/id/{data["vmid"]}/')
assert results.status_code == 200, results.text
if nested_vm is False:
pytest.skip(message)
else:
results = DELETE(f'/vm/id/{data["vmid"]}/')
assert results.status_code == 200, results.text

0 comments on commit ea8c4fc

Please sign in to comment.