Expand source code
@pytest.mark.p0
@pytest.mark.templates
class TestVMTemplate:
def test_create(self, api_client, unique_name):
code, data = api_client.templates.create(unique_name)
assert 201 == code, (code, data)
assert unique_name == data['metadata']['name']
@pytest.mark.dependency(name="get_template")
def test_get(self, api_client, unique_name):
# Case 1: get all templates
code, data = api_client.templates.get()
assert 200 == code, (code, data)
assert len(data['items']) > 0, (code, data)
# Case 2: get specific template by name
code, data = api_client.templates.get(unique_name)
assert 200 == code, (code, data)
assert unique_name == data['metadata']['name']
def test_update(self, api_client, unique_name):
spec = api_client.templates.Spec(1, 2)
code, data = api_client.templates.create_version(unique_name, spec)
assert 201 == code, (code, data)
assert data['metadata']['name'].startswith(unique_name), (code, data)
def test_delete(self, api_client, unique_name, wait_timeout):
code, data = api_client.templates.delete(unique_name)
assert 200 == code, (f"Failed to delete template with error: {code}, {data}")
endtime = datetime.now() + timedelta(seconds=wait_timeout)
while endtime > datetime.now():
code, data = api_client.templates.get(unique_name)
if code == 404:
break
sleep(5)
else:
raise AssertionError(
f"Failed to delete template {unique_name} with {wait_timeout} timed out\n"
f"Still got {code} with {data}"
)
@pytest.mark.dependency(depends=["get_template"])
def test_get_system_default(self, api_client):
code, data = api_client.templates.get(namespace=DEFAULT_TEMPLATES_NAMESPACE)
assert 200 == code, (code, data)
assert DEFAULT_TEMPLATES == len(data['items']), (code, data)
@pytest.mark.dependency(depends=["get_template"])
def test_get_system_default_versions(self, api_client):
code, data = api_client.templates.get_version(namespace=DEFAULT_TEMPLATES_NAMESPACE)
assert 200 == code, (code, data)
assert DEFAULT_TEMPLATES == len(data['items']), (code, data)