Skip to content

Commit 373ccd1

Browse files
author
Prasanna Santhanam
committed
marvin_refactor: Factories for DiskOffering, ServiceOffering
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
1 parent 2d48faf commit 373ccd1

File tree

7 files changed

+75
-25
lines changed

7 files changed

+75
-25
lines changed

tools/marvin/marvin/integration/lib/base/Account.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from marvin.cloudstackAPI import disableAccount
2424
from marvin.cloudstackAPI import deleteAccount
2525

26-
class Account(CloudStackEntity):
26+
class Account(CloudStackEntity.CloudStackEntity):
2727

2828

2929
def __init__(self, items):

tools/marvin/marvin/integration/lib/factory/AccountFactory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
from marvin.integration.lib.base import Account
1918
import hashlib
2019
from marvin.integration.lib.factory.CloudStackBaseFactory import *
20+
from marvin.integration.lib.base import Account
2121
from marvin.integration.lib.utils import random_gen
2222

2323
class AccountFactory(CloudStackBaseFactory):

tools/marvin/marvin/integration/lib/factory/DiskOfferingFactory.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,26 @@
1616
# under the License.
1717
import factory
1818
from marvin.integration.lib.base import DiskOffering
19+
from marvin.integration.lib.utils import random_gen
20+
1921
class DiskOfferingFactory(factory.Factory):
2022

2123
FACTORY_FOR = DiskOffering
2224

23-
displaytext = None
24-
name = None
25+
displaytext = factory.Sequence(lambda n : "DiskOffering" + random_gen())
26+
name = factory.Sequence(lambda n : "DiskOffering" + random_gen())
27+
28+
29+
class SharedDiskOfferingFactory(DiskOfferingFactory):
30+
31+
displaytext = "SharedDiskOffering"
32+
name = factory.Sequence(lambda n : "SharedDiskOffering" + random_gen())
33+
storagetype = "shared"
34+
disksize = 10 #MB
35+
36+
class LocalDiskOfferingFactory(DiskOfferingFactory):
37+
38+
displaytext = "LocalDiskOffering"
39+
name = factory.Sequence(lambda n : "LocalDiskOffering" + random_gen())
40+
storagetype = "local"
41+
disksize = 10 #MB

tools/marvin/marvin/integration/lib/factory/DomainFactory.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
# under the License.
1717
import factory
1818
from marvin.integration.lib.base import Domain
19+
from marvin.integration.lib.utils import random_gen
1920
class DomainFactory(factory.Factory):
2021

2122
FACTORY_FOR = Domain
2223

23-
name = None
24+
name = "Domain" + factory.Sequence(lambda n : random_gen())

tools/marvin/marvin/integration/lib/factory/NetworkOfferingFactory.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ class NetworkOfferingFactory(factory.Factory):
2020

2121
FACTORY_FOR = NetworkOffering
2222

23-
displaytext = None
24-
guestiptype = None
25-
name = None
26-
supportedservices = None
27-
traffictype = None
23+
displaytext = "Network Offering"
24+
guestiptype = "Isolated"
25+
name = "Network Offering"
26+
supportedservices = "Dhcp,Dns,SourceNat,PortForwarding"
27+
traffictype = "Guest"
28+
29+
30+
class DefaultIsolatedNetworkOffering

tools/marvin/marvin/integration/lib/factory/ServiceOfferingFactory.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,24 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717
import factory
18+
from marvin.integration.lib.factory.CloudStackBaseFactory import *
1819
from marvin.integration.lib.base import ServiceOffering
19-
class ServiceOfferingFactory(factory.Factory):
20+
from marvin.integration.lib.utils import random_gen
2021

21-
FACTORY_FOR = ServiceOffering
22+
class ServiceOfferingFactory(CloudStackBaseFactory):
2223

23-
cpunumber = None
24-
cpuspeed = None
25-
displaytext = None
26-
memory = None
27-
name = None
24+
FACTORY_FOR = ServiceOffering.ServiceOffering
25+
26+
cpunumber = 1
27+
cpuspeed = 1000 #Mhz
28+
displaytext = "Service Offering"
29+
memory = 512 #MB
30+
name = factory.Sequence(lambda n: "ServiceOffering" + random_gen())
31+
32+
33+
class SmallServiceOfferingFactory(ServiceOfferingFactory):
34+
cpunumber = 1
35+
cpuspeed = 100 #Mhz
36+
memory = 100 #MB
37+
displaytext = "Small Service Offering"
38+
name = factory.Sequence(lambda n: "SmallServiceOffering" + random_gen())

tools/marvin/marvin/integration/lib/factory/test/testFactories.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,49 @@
1616
# under the License.
1717

1818
import unittest
19-
from marvin.integration.lib.factory import AccountFactory
20-
from marvin.integration.lib.base import Account
19+
from marvin.integration.lib.factory.AccountFactory import *
20+
from marvin.integration.lib.base.Account import *
21+
22+
from marvin.integration.lib.factory.ServiceOfferingFactory import *
23+
from marvin.integration.lib.base.ServiceOffering import *
2124
from marvin.cloudstackTestClient import cloudstackTestClient
2225

2326
class AccountFactoryTest(unittest.TestCase):
2427
def setUp(self):
2528
self.apiClient = cloudstackTestClient(mgtSvr='localhost').getApiClient()
2629

2730
def test_userAccountFactory(self):
28-
af = AccountFactory.AccountFactory()
29-
accnt = Account.Account.create(apiclient=self.apiClient, AccountFactory=af)
31+
af = AccountFactory()
32+
accnt = Account.create(apiclient=self.apiClient, AccountFactory=af)
3033
self.assertTrue(accnt is not None, msg="no account created by factory")
3134
self.assertEqual(accnt.name, af.username, msg="account names are not same")
3235

3336
def test_adminAccountFactory(self):
34-
af = AccountFactory.AccountFactory()
35-
accnt = Account.Account.create(apiclient=self.apiClient, AccountFactory=af)
37+
af = AdminAccountFactory()
38+
accnt = Account.create(apiclient=self.apiClient, AccountFactory=af)
3639
self.assertTrue(accnt is not None, msg="no account created by factory")
3740
self.assertEqual(accnt.name, af.username, msg="account names are not same")
3841

3942
def test_userAccountFactoryCustomArgs(self):
40-
af = AccountFactory.AccountFactory(firstname='test', lastname='test')
41-
accnt = Account.Account.create(apiclient=self.apiClient, AccountFactory=af)
43+
af = AccountFactory(firstname='test', lastname='test')
44+
accnt = Account.create(apiclient=self.apiClient, AccountFactory=af)
4245
self.assertTrue(accnt is not None, msg="no account created by factory")
4346
self.assertEqual(accnt.name, af.username, msg="account names are not same")
4447

4548
def tearDown(self):
4649
pass
50+
51+
52+
class ServiceOfferingFactoryTest(unittest.TestCase):
53+
def setUp(self):
54+
self.apiClient = cloudstackTestClient(mgtSvr='localhost').getApiClient()
55+
56+
def test_serviceOfferingFactory(self):
57+
sf = ServiceOfferingFactory()
58+
soffering = ServiceOffering.create(apiclient=self.apiClient, ServiceOfferingFactory=sf)
59+
self.assertTrue(soffering is not None, msg="no service offering was created")
60+
self.assertEqual(soffering.name, sf.name, msg="error in service offering factory creation")
61+
62+
63+
def tearDown(self):
64+
pass

0 commit comments

Comments
 (0)