mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
140 lines
4.8 KiB
Python
140 lines
4.8 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from marvin.cloudstackTestCase import *
|
|
from marvin.cloudstackAPI import *
|
|
from marvin.lib.utils import *
|
|
from marvin.lib.base import *
|
|
from marvin.lib.common import *
|
|
from nose.plugins.attrib import attr
|
|
from random import choice
|
|
|
|
class Services:
|
|
def __init__(self):
|
|
self.services = {
|
|
"region": {
|
|
"regionid": "2",
|
|
"regionname": "Region2",
|
|
"regionendpoint": "http://region2:8080/client"
|
|
}
|
|
}
|
|
|
|
class TestRegions(cloudstackTestCase):
|
|
"""Test Regions - CRUD tests for regions
|
|
"""
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.api_client = super(TestRegions, cls).getClsTestClient().getApiClient()
|
|
cls.services = Services().services
|
|
cls.domain = get_domain(cls.api_client)
|
|
cls.cleanup = []
|
|
return
|
|
|
|
def setUp(self):
|
|
pseudo_random_int = choice(xrange(2, 200))
|
|
self.services["region"]["regionid"] = pseudo_random_int
|
|
self.services["region"]["regionname"] = "region" + str(pseudo_random_int)
|
|
self.services["region"]["regionendpoint"] = "http://region" + str(pseudo_random_int) + ":8080/client"
|
|
|
|
self.region = Region.create(self.api_client,
|
|
self.services["region"]
|
|
)
|
|
self.cleanup = []
|
|
self.cleanup.append(self.region)
|
|
|
|
list_region = Region.list(self.api_client,
|
|
id=self.services["region"]["regionid"]
|
|
)
|
|
|
|
self.assertEqual(
|
|
isinstance(list_region, list),
|
|
True,
|
|
msg="Region creation failed"
|
|
)
|
|
|
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
|
def test_createRegionWithExistingRegionId(self):
|
|
"""Test for duplicate checks on region id
|
|
"""
|
|
self.services["region"]["regionname"] = random_gen() #alter region name but not id
|
|
self.assertRaises(Exception, Region.create, self.api_client, self.services["region"])
|
|
|
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
|
def test_createRegionWithExistingRegionName(self):
|
|
"""Test for duplicate checks on region name
|
|
"""
|
|
random_int = choice(xrange(2, 200))
|
|
self.services["region"]["regionid"] = random_int #alter id but not name
|
|
self.services["region"]["regionendpoint"] = "http://region" + str(random_int) + ":8080/client"
|
|
self.assertRaises(Exception, Region.create, self.api_client, self.services["region"])
|
|
|
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
|
def test_updateRegion(self):
|
|
""" Test for update Region
|
|
"""
|
|
self.services["region"]["regionname"] = "Region3" + random_gen()
|
|
self.services["region"]["regionendpoint"] = "http://region3updated:8080/client"
|
|
|
|
updated_region = self.region.update(self.api_client,
|
|
self.services["region"]
|
|
)
|
|
|
|
list_region = Region.list(self.api_client,
|
|
id=self.services["region"]["regionid"]
|
|
)
|
|
|
|
self.assertEqual(
|
|
isinstance(list_region, list),
|
|
True,
|
|
"Check for list Region response"
|
|
)
|
|
region_response = list_region[0]
|
|
|
|
self.assertEqual(
|
|
region_response.id,
|
|
updated_region.id,
|
|
"listRegion response does not match with region Id created"
|
|
)
|
|
|
|
self.assertEqual(
|
|
region_response.name,
|
|
updated_region.name,
|
|
"listRegion response does not match with region name created"
|
|
)
|
|
self.assertEqual(
|
|
region_response.endpoint,
|
|
updated_region.endpoint,
|
|
"listRegion response does not match with region endpoint created"
|
|
)
|
|
|
|
def tearDown(self):
|
|
""" Test for delete region as cleanup
|
|
"""
|
|
try:
|
|
#Clean up
|
|
cleanup_resources(self.api_client, self.cleanup)
|
|
except Exception as e:
|
|
raise Exception("Warning: Exception during cleanup : %s" % e)
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
"""
|
|
Nothing to do
|
|
"""
|
|
pass
|