You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/10/02 18:42:08 UTC

[38/50] [abbrv] git commit: updated refs/heads/marvin-refactor to bbaf354

marvin_refactor: improve unittests for additional data factoreis

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/45afa942
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/45afa942
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/45afa942

Branch: refs/heads/marvin-refactor
Commit: 45afa9422a1f2b98753bd825e05076ed87603f1c
Parents: 9f759a8
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Mon Sep 30 09:54:22 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Wed Oct 2 20:28:01 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/test/test_factories.py | 229 ++++++++++++++++++++----
 1 file changed, 193 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/45afa942/tools/marvin/marvin/test/test_factories.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/test/test_factories.py b/tools/marvin/marvin/test/test_factories.py
index 6a09303..b3ea0ac 100644
--- a/tools/marvin/marvin/test/test_factories.py
+++ b/tools/marvin/marvin/test/test_factories.py
@@ -22,19 +22,22 @@ from should_dsl import should, should_not
 
 from marvin.cloudstackTestClient import cloudstackTestClient
 
-from marvin.factory.data.account import UserAccountFactory, AdminAccountFactory, DomainAdminFactory
+from marvin.factory.data.account import UserAccount, AdminAccount, DomainAdmin
 from marvin.factory.data.serviceoffering import *
+from marvin.factory.data.diskoffering import *
 from marvin.factory.data.template import *
 from marvin.factory.data.user import *
 from marvin.factory.data.networkoffering import *
 from marvin.factory.data.network import *
 from marvin.factory.data.vm import *
-from marvin.factory.data.firewallrule import *
+from marvin.factory.data.firewallrule import SshFirewallRule
+from marvin.factory.data.vpc import DefaultVpc
 
 from marvin.factory.virtualmachine import *
 
 from marvin.entity.firewall import Firewall
 from marvin.entity.serviceoffering import ServiceOffering
+from marvin.entity.diskoffering import DiskOffering
 from marvin.entity.networkoffering import NetworkOffering
 from marvin.entity.zone import Zone
 from marvin.entity.account import Account
@@ -54,11 +57,11 @@ class BuildVsCreateStrategyTest(unittest.TestCase):
         pass
 
     def test_buildUserAccountFactory(self):
-        af = UserAccountFactory.build()
+        af = UserAccount.build()
         self.assert_(af is not None, msg="Account factory didn't initialize")
 
     def test_createAccountFactory(self):
-        af = UserAccountFactory(apiclient=self.apiClient)
+        af = UserAccount(apiclient=self.apiClient)
         self.assert_(isinstance(af, Account))
         self.assert_(af.id is not None, msg="Account creation failed")
         self.assert_(af.domain is not None, msg="Account belongs to no domain")
@@ -69,21 +72,21 @@ class AccountFactoryTest(unittest.TestCase):
         self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def test_adminAccountFactory(self):
-        accnt = AdminAccountFactory(apiclient=self.apiClient)
+        accnt = AdminAccount(apiclient=self.apiClient)
         self.assert_(accnt is not None, msg="no account created by factory")
         self.assert_(accnt.name is not None)
 
     def test_userAccountFactoryCustomArgs(self):
-        accnt = UserAccountFactory(apiclient=self.apiClient, firstname='test', lastname='test')
+        accnt = UserAccount(apiclient=self.apiClient, firstname='test', lastname='test')
         a = accnt.list(apiclient=self.apiClient, account=accnt.name, domainid=accnt.domainid)
         self.assert_(accnt is not None, msg="no account created by factory")
         self.assert_(accnt.name is not None)
 
     def test_disableAccountPostFactoryGeneration(self):
-        domadmin = DomainAdminFactory(apiclient=self.apiClient)
+        domadmin = DomainAdmin(apiclient=self.apiClient)
         a = Account.list(apiclient=self.apiClient, id=domadmin.id)
         self.assert_(domadmin is not None, msg="no account was created")
-        domadmin.disable(self.apiClient, lock=True, account=domadmin.name, domainid=domadmin.domainid)
+        domadmin.disable(lock=True, account=domadmin.name, domainid=domadmin.domainid)
 
     def tearDown(self):
         pass
@@ -94,7 +97,7 @@ class ServiceOfferingFactoryTest(unittest.TestCase):
         self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def test_serviceOfferingFactory(self):
-        soffering = SmallServiceOfferingFactory(apiclient=self.apiClient)
+        soffering = SmallServiceOffering(apiclient=self.apiClient)
         self.assert_(soffering is not None, msg="no service offering was created")
         self.assert_(soffering.name is not None, msg="error in service offering factory creation")
 
@@ -108,13 +111,13 @@ class NetworkOfferingFactoryTest(unittest.TestCase):
         self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def test_defaultSourceNatOfferingFactory(self):
-        snatOffering = DefaultIsolatedNetworkOfferingWithSourceNatServiceFactory(apiclient=self.apiClient)
+        snatOffering = DefaultIsolatedNetworkOfferingWithSourceNatService(apiclient=self.apiClient)
         self.assert_(snatOffering is not None, msg = "no network offering was created")
         self.assert_(snatOffering.name is not None, msg="error in network offering creation")
 
     @attr(tags='offering')
     def test_defaultSGOfferingEnable(self):
-        DefaultSharedNetworkOfferingWithSGServiceFactory(apiclient=self.apiClient)
+        DefaultSharedNetworkOfferingWithSGService(apiclient=self.apiClient)
 
     def tearDown(self):
         pass
@@ -137,7 +140,7 @@ class UserFactorySubFactoryTest(unittest.TestCase):
         caller is not to create the user before creating the account
         @return:
         """
-        uf = UserFactory(apiclient=self.apiClient)
+        uf = User(apiclient=self.apiClient)
         user = User.list(apiclient=self.apiClient, username=uf.username)
         self.assert_(uf.username == user[0].username, msg="Usernames don't match")
 
@@ -148,16 +151,13 @@ class NetworkFactoryTest(unittest.TestCase):
             logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def tearDown(self):
-        self.accnt.delete(apiclient=self.apiClient)
+        self.accnt.delete()
 
     @attr(tags='network')
     def test_isolatedGuestNetwork(self):
-        """Test to create a network within a guest account
-        @return:
-        """
-        self.accnt = UserAccountFactory(apiclient=self.apiClient)
+        self.accnt = UserAccount(apiclient=self.apiClient)
         zones = Zone.list(apiclient=self.apiClient)
-        network = GuestIsolatedNetworkFactory(
+        network = GuestIsolatedNetwork(
             apiclient=self.apiClient,
             zoneid=zones[0].id
             )
@@ -171,7 +171,7 @@ class NetworkOfferingFactoryWithMultiplePostHooksTest(unittest.TestCase):
 
     @attr(tags='post')
     def test_multiplePostHooksNetworkOffering(self):
-        sharedOffering = DefaultSharedNetworkOfferingFactory(apiclient=self.apiClient)
+        sharedOffering = DefaultSharedNetworkOffering(apiclient=self.apiClient)
         sharedOffering |should| be_instance_of(NetworkOffering)
         sharedOffering |should_not| equal_to(None)
         sharedOffering.state |should| equal_to('Enabled')
@@ -179,17 +179,17 @@ class NetworkOfferingFactoryWithMultiplePostHooksTest(unittest.TestCase):
                                                       %(sharedOffering.id, sharedOffering.name, sharedOffering.state))
 
 
-class VirtualMachineFactoryTest(unittest.TestCase):
+class VirtualMachineTest(unittest.TestCase):
     def setUp(self):
         self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def tearDown(self):
-        self.vm.destroy(apiclient=self.apiClient)
+        self.vm.destroy()
 
     def test_virtualMachineDeploy(self):
-        accnt = UserAccountFactory(apiclient=self.apiClient)
-        service = SmallServiceOfferingFactory(apiclient=self.apiClient)
-        tf = DefaultBuiltInTemplateFactory.build()
+        accnt = UserAccount(apiclient=self.apiClient)
+        service = SmallServiceOffering(apiclient=self.apiClient)
+        tf = DefaultBuiltInTemplate.build()
         zones = Zone.list(apiclient=self.apiClient)
         template = Template.list(apiclient=self.apiClient,
                                  templatefilter="featured",
@@ -209,11 +209,11 @@ class IpAddressFactoryTest(unittest.TestCase):
             logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def tearDown(self):
-        self.vm.destroy(apiclient=self.apiClient)
+        self.vm.destroy()
 
     def test_associateIpAddressToNetwork(self):
         # user account where we run test
-        accnt = UserAccountFactory(apiclient=self.apiClient)
+        accnt = UserAccount(apiclient=self.apiClient)
         self.assert_(isinstance(accnt, Account))
 
         # get required arguments - templates, service offerings, zone
@@ -240,11 +240,11 @@ class FirewallRuleFactoryTest(unittest.TestCase):
             logging=logging.getLogger('factory.cloudstack')).getApiClient()
 
     def tearDown(self):
-        self.account.delete(apiclient=self.apiClient)
+        self.account.delete()
 
     @attr(tags='firewall')
     def test_firewallRuleFactoryTest(self):
-        self.account = UserAccountFactory(apiclient=self.apiClient)
+        self.account = UserAccount(apiclient=self.apiClient)
         domainid = get_domain(self.apiClient).id
         self.account |should| be_instance_of(Account)
         vm = VirtualMachineFactory(
@@ -260,13 +260,6 @@ class FirewallRuleFactoryTest(unittest.TestCase):
         vm.nic |should_not| equal_to(None)
         vm.nic |should| be_instance_of(list)
 
-        ipaddresses = IpAddress.listPublic(
-            apiclient=self.apiClient,
-            networkid=vm.nic[0].networkid
-        )
-        ipaddresses |should_not| equal_to(None)
-        ipaddresses |should| be_instance_of(list)
-
         ipaddress = IpAddress(
             apiclient=self.apiClient,
             account=self.account.name,
@@ -276,9 +269,173 @@ class FirewallRuleFactoryTest(unittest.TestCase):
         ipaddress |should_not| be(None)
         ipaddress |should| be_instance_of(IpAddress)
 
-        fwrule = SshFirewallRuleFactory(
+        fwrule = SshFirewallRule(
             apiclient=self.apiClient,
             ipaddressid=ipaddress.id
         )
         fwrule |should_not| be(None)
         fwrule |should| be_instance_of(Firewall)
+
+
+@attr(tags='disk')
+class DiskOfferingFactoryTest(unittest.TestCase):
+
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_createSharedDiskOffering(self):
+        shared_disk_offering = SharedDiskOffering(apiclient=self.apiClient)
+        shared_disk_offering |should_not| be(None)
+        shared_disk_offering.name |should_not| equal_to(None)
+        shared_disk_offering.delete()
+
+    def test_createLocalDiskOffering(self):
+        local_disk_offering = LocalDiskOffering(apiclient=self.apiClient)
+        local_disk_offering | should_not | be(None)
+        local_disk_offering.name | should_not | equal_to(None)
+        local_disk_offering.delete()
+
+    def test_listDeletedDiskOfferings(self):
+        local_disk_offering = LocalDiskOffering(apiclient=self.apiClient)
+        local_disk_offering | should_not | be(None)
+        local_disk_offering.name | should_not | equal_to(None)
+        local_disk_offering.delete()
+
+        listed_offering = DiskOffering.list(apiclient=self.apiClient, name=local_disk_offering.name)
+        listed_offering | should | be(None)
+
+
+@attr(tags='gc')
+class DeleteAllNonAdminAccounts(unittest.TestCase):
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_deleteAllNonAdminAccounts(self):
+        accounts = Account.list(apiclient=self.apiClient, listall=True)
+        for account in accounts:
+            if account.accounttype == 0 or account.accounttype == 2 or account.accounttype == 1:
+                if account.name == 'admin':
+                    continue
+                account.delete(apiclient=self.apiClient)
+
+
+@attr(tags='post')
+class StaticNatPostVirtualMachineDeployHook(unittest.TestCase):
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_staticNatPostVmCreation(self):
+        self.account = UserAccount(apiclient=self.apiClient)
+        domainid = get_domain(self.apiClient).id
+        self.account |should| be_instance_of(Account)
+        vm = VirtualMachineWithStaticNat(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=domainid,
+            templateid=get_template(self.apiClient).id,
+            serviceofferingid=get_service_offering(self.apiClient).id,
+            zoneid=get_zone(self.apiClient).id
+        )
+        vm |should| be_instance_of(VirtualMachine)
+        vm.state |should| equal_to('Running')
+        vm.nic |should_not| equal_to(None)
+        vm.nic |should| be_instance_of(list)
+
+    def tearDown(self):
+        self.account.delete()
+
+class VpcCreationTest(unittest.TestCase):
+
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_vpcCreation(self):
+        self.account = UserAccount(apiclient=self.apiClient)
+        self.vpc = DefaultVpc(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=get_domain(apiclient=self.apiClient).id,
+            zoneid=get_zone(apiclient=self.apiClient).id
+        )
+        self.vpc |should_not| be(None)
+        ntwk = DefaultVpcNetwork(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=get_domain(apiclient=self.apiClient).id,
+            vpcid=self.vpc.id,
+            zoneid=get_zone(apiclient=self.apiClient).id
+        )
+        ntwk | should_not | be(None)
+        ntwk.state | should | equal_to('Allocated')
+        ntwk.delete()
+
+    def tearDown(self):
+        self.vpc.delete()
+        self.account.delete()
+
+@attr(tags='vpc')
+class VpcVmDeployTest(unittest.TestCase):
+
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_vpcVmDeploy(self):
+        self.account = UserAccount(apiclient=self.apiClient)
+        self.vpc = DefaultVpc(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            zoneid=get_zone(apiclient=self.apiClient).id
+        )
+        self.vpc |should_not| be(None)
+        ntwk = DefaultVpcNetwork(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            vpcid=self.vpc.id,
+            zoneid=get_zone(apiclient=self.apiClient).id
+        )
+        ntwk | should_not | be(None)
+        ntwk.state | should | equal_to('Allocated')
+        vm = VirtualMachineFactory(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            templateid=get_template(self.apiClient).id,
+            serviceofferingid=get_service_offering(self.apiClient).id,
+            networkid=ntwk.id,
+            zoneid=get_zone(self.apiClient).id
+        )
+        vm | should_not | be(None)
+        vm.state | should | equal_to("Running")
+
+    def tearDown(self):
+        self.account.delete()
+
+
+@attr(tags='single')
+class VpcVmFactoryTest(unittest.TestCase):
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost',
+            logging=logging.getLogger('factory.cloudstack')).getApiClient()
+
+    def test_vpcVmDeployShort(self):
+        self.account = UserAccount(apiclient=self.apiClient)
+        vm = VpcVirtualMachine(
+            apiclient=self.apiClient,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            templateid=get_template(self.apiClient).id,
+            serviceofferingid=get_service_offering(self.apiClient).id,
+            zoneid=get_zone(self.apiClient).id
+        )
+        vm | should_not | be(None)
+        vm.state | should | equal_to("Running")
+
+    def tearDown(self):
+        self.account.delete()