| # 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.integration.lib.utils import * |
| from marvin.integration.lib.base import * |
| from marvin.integration.lib.common import * |
| from nose.plugins.attrib import attr |
| |
| class Services: |
| def __init__(self): |
| self.services = { |
| "domain": { |
| "name": "testuuid", |
| "domainUUID": "domain1" |
| }, |
| "account": { |
| "email": "test@test.com", |
| "firstname": "Testuuid", |
| "lastname": "Useruuid", |
| "username": "test", |
| "password": "password", |
| "accountUUID": "account1", |
| "userUUID": "user1" |
| }, |
| "user": { |
| "email": "test@test.com", |
| "firstname": "Testuuid", |
| "lastname": "Useruuid", |
| "username": "test", |
| "password": "password", |
| "userUUID": "user2" |
| }, |
| } |
| |
| |
| class TestRegionsAccounts(cloudstackTestCase): |
| """Test Accounts in Regions - CRUD tests for accounts in regions |
| """ |
| |
| @classmethod |
| def setUpClass(cls): |
| cls.api_client = super(TestRegionsAccounts, cls).getClsTestClient().getApiClient() |
| cls.services = Services().services |
| cls.domain = get_domain(cls.api_client, cls.services) |
| cls.cleanup = [] |
| return |
| |
| @attr(tags=["simulator", "basic", "advanced"]) |
| def test_createAccountWithUUID(self): |
| """Test for creating account by passing id parameter |
| |
| # Validate the following |
| # 1.Create an Account by passing id parameter.Verify the account is created. |
| # 2.List this account by passing id parameter.Verify that list account is able to lis this account. |
| # 3.Delete account should succeed. |
| """ |
| account = Account.create( |
| self.api_client, |
| self.services["account"], |
| domainid=self.domain.id |
| ) |
| self.assertIn(self.services["account"]["accountUUID"], account.id, |
| "Account is not created with the accountId passed") |
| |
| list_account = Account.list(self.api_client, |
| id=account.id) |
| |
| self.assertEqual( |
| isinstance(list_account, list), |
| True, |
| "Check for list account response by uuid failed" |
| ) |
| |
| account_response = list_account[0] |
| self.assertEqual(account_response.id, |
| account.id, |
| "listAccount response does not match with account Id " |
| ) |
| self.assertEqual( |
| account_response.user[0].firstname, |
| self.services["account"]["firstname"], |
| "listAccount response does not match with account firstname" |
| ) |
| |
| self.cleanup.append(account) |
| return |
| |
| @attr(tags=["simulator", "basic", "advanced"]) |
| def test_createUserWithUUID(self): |
| """Test for creating User by passing id parameter |
| |
| # Validate the following |
| # 1.Create a User by passing id parameter.Verify the user is created. |
| # 2.List this user by passing id parameter.Verify that list user is able to list this user. |
| # 3.Delete User should succeed. |
| """ |
| |
| user = User.create( |
| self.api_client, |
| self.services["user"], |
| account="admin", |
| domainid=self.domain.id |
| ) |
| self.assertIn(self.services["user"]["userUUID"], user.id, |
| "User is not created successfully with the userId passed") |
| |
| list_user = User.list(self.api_client, id=user.id) |
| |
| self.assertEqual( |
| isinstance(list_user, list), |
| True, |
| "Check for list user response by uuid failed" |
| ) |
| |
| user_response = list_user[0] |
| |
| self.assertEqual(user_response.id, |
| user.id, |
| "list User response does not match with user Id " |
| ) |
| self.assertEqual( |
| user_response.firstname, |
| self.services["user"]["firstname"], |
| "listUser response does not match with user firstname" |
| ) |
| |
| user.delete(self.api_client) |
| |
| list_user = User.list(self.api_client, |
| id=user.id |
| ) |
| |
| self.assertIsNone( |
| list_user, |
| "Deletion of user failed" |
| ) |
| return |
| |
| @attr(tags=["simulator", "basic", "advanced"]) |
| def test_createdomainWithUUID(self): |
| """Test for creating Domain by passing id parameter |
| |
| # Validate the following |
| # 1.Create a domain by passing id parameter.Verify the domain is created. |
| # 2.List this domain by passing id parameter.Verify that list domain is able to list this domain. |
| # 3.Delete domain should succeed. |
| """ |
| |
| domain = Domain.create( |
| self.api_client, |
| self.services["domain"] |
| ) |
| |
| self.assertIn(self.services["domain"]["domainUUID"], domain.id, |
| "Domain is not created with the doaminId passed") |
| |
| list_domain = Domain.list(self.api_client, |
| id=domain.id |
| ) |
| |
| self.assertEqual( |
| isinstance(list_domain, list), |
| True, |
| "Check for list domain response by uuid failed" |
| ) |
| |
| domain_response = list_domain[0] |
| |
| self.assertEqual(domain_response.id, |
| domain.id, |
| "list domain response does not match with domain Id " |
| ) |
| self.assertIn( |
| self.services["domain"]["name"], |
| domain_response.name, |
| "list domaiin response does not match with user firstname" |
| ) |
| try: |
| domain.delete(self.api_client) |
| except Exception as e: |
| self.fail("Failed to delete domain: %s" % e) |
| return |
| |
| @classmethod |
| def tearDownClass(cls): |
| try: |
| #Clean up |
| cleanup_resources(cls.api_client, cls.cleanup) |
| except Exception as e: |
| raise Exception("Warning: Exception during cleanup : %s" % e) |