Merge "Add CLI tests for environment redeploy"

This commit is contained in:
Jenkins 2015-11-09 10:57:04 +00:00 committed by Gerrit Code Review
commit 0907116f89
2 changed files with 113 additions and 19 deletions

View File

@ -64,10 +64,15 @@ class CLIUtilsTestBase(muranoclient.ClientTestBase):
self.addCleanup(self.delete_murano_object, murano_object, mrn_object)
return mrn_object
@staticmethod
def generate_uuid():
"""Generate uuid for objects."""
return uuid.uuid4().hex
@staticmethod
def generate_name(prefix):
"""Generate name for objects."""
suffix = uuid.uuid4().hex[:8]
suffix = CLIUtilsTestBase.generate_uuid()[:8]
return "{0}_{1}".format(prefix, suffix)
def get_table_struct(self, command, params=""):
@ -181,3 +186,21 @@ class CLIUtilsTestPackagesBase(TestSuiteRepository):
time.sleep(2)
return True
def deploy_environment(self, env_id, obj_model):
session = self.listing('environment-session-create',
params=env_id)
session_id = self.get_property_value(session, 'id')
temp_file = self.prepare_file_with_obj_model(obj_model)
self.listing('environment-apps-edit',
params='--session-id {0} {1} {2}'.
format(session_id, env_id, temp_file))
self.listing('environment-deploy',
params='{0} --session-id {1}'.
format(env_id, session_id))
result = self.wait_deployment_result(env_id)
self.assertTrue(result)

View File

@ -12,6 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import unittest
from muranoclient.tests.functional.simple_read_only import \
murano_test_utils as utils
@ -497,10 +499,85 @@ class DeployMuranoEnvironmentTest(utils.CLIUtilsTestPackagesBase):
env_id = self.create_murano_object('environment',
'TestMuranoDeployEnv')['ID']
obj_model = {
'op': 'add',
'path': '/-',
'value': {
'?': {
'type': 'io.murano.apps.{0}'.format(self.app_name),
'id': '{0}'.format(self.generate_uuid()),
}
}
}
self.deploy_environment(env_id, obj_model)
deployments = self.listing('deployment-list', params=env_id)
session = self.listing('environment-session-create',
params=env_id)
session_id = self.get_property_value(session, 'id')
self.assertEqual('success', deployments[0]['State'])
self.assertEqual(1, len(deployments))
def test_add_component_to_deployed_env(self):
"""Test scenario:
1) import package
2) create environment
3) create session for created environment
4) add application to the environment
5) send environment to deploy
6) check that deployment was successful
7) add application to environment
8) deploy environment again
"""
self.import_package(
self.app_name,
self.dummy_app_path
)
env_id = self.create_murano_object('environment',
'TestMuranoDeployEnv')['ID']
obj_model = {
'op': 'add',
'path': '/-',
'value': {
'?': {
'type': 'io.murano.apps.{0}'.format(self.app_name),
'id': '',
}
}
}
obj_model['value']['?']['id'] = self.generate_uuid()
self.deploy_environment(env_id, obj_model)
deployments = self.listing('deployment-list', params=env_id)
self.assertEqual('success', deployments[0]['State'])
self.assertEqual(1, len(deployments))
obj_model['value']['?']['id'] = self.generate_uuid()
self.deploy_environment(env_id, obj_model)
deployments = self.listing('deployment-list', params=env_id)
self.assertEqual('success', deployments[1]['State'])
self.assertEqual(2, len(deployments))
# TODO(akuznetsova): need to upskip this test when
# https://bugs.launchpad.net/python-muranoclient/+bug/1511645 is fixed
@unittest.expectedFailure
def test_delete_component_from_deployed_env(self):
"""Test scenario:
1) import package
2) create environment
3) create session for created environment
4) add application to the environment
5) send environment to deploy
6) check that deployment was successful
7) delete application from environment
8) deploy environment again
"""
self.import_package(
self.app_name,
self.dummy_app_path
)
env_id = self.create_murano_object('environment',
'TestMuranoDeployEnv')['ID']
obj_model = {
'op': 'add',
@ -508,24 +585,18 @@ class DeployMuranoEnvironmentTest(utils.CLIUtilsTestPackagesBase):
'value': {
'?': {
'type': 'io.murano.apps.{0}'.format(self.app_name),
'id': '12345',
'id': '{0}'.format(self.generate_uuid()),
}
}
}
temp_file = self.prepare_file_with_obj_model(obj_model)
self.deploy_environment(env_id, obj_model)
self.listing('environment-apps-edit',
params='--session-id {0} {1} {2}'.
format(session_id, env_id, temp_file))
self.listing('environment-deploy',
params='{0} --session-id {1}'.
format(env_id, session_id))
result = self.wait_deployment_result(env_id)
self.assertTrue(result)
obj_model = {
'op': 'remove',
'path': '/0'
}
self.deploy_environment(env_id, obj_model)
deployments = self.listing('deployment-list', params=env_id)
self.assertEqual('success', deployments[0]['State'])
self.assertTrue(1, len(deployments))
self.assertEqual('success', deployments[1]['State'])
self.assertEqual(2, len(deployments))