Skip to content

Commit 230986d

Browse files
committed
ignoring .idea, including downgrade options by default when getting upgrade item prices, adding tests for deprecated private methods
1 parent a1365e2 commit 230986d

File tree

3 files changed

+51
-10
lines changed

3 files changed

+51
-10
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ build/*
1313
dist/*
1414
*.egg-info
1515
.cache
16-
16+
.idea

SoftLayer/managers/vs.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,12 @@ def upgrade(self, instance_id, cpus=None, memory=None,
816816
return False
817817

818818
def _get_package_items(self):
819-
"""Following Method gets all the item ids related to VS."""
819+
"""Following Method gets all the item ids related to VS.
820+
821+
Deprecated in favor of _get_upgrade_prices()
822+
"""
823+
warnings.warn("use _get_upgrade_prices() instead",
824+
DeprecationWarning)
820825
mask = [
821826
'description',
822827
'capacity',
@@ -834,7 +839,7 @@ def _get_package_items(self):
834839
package_service = self.client['Product_Package']
835840
return package_service.getItems(id=package['id'], mask=mask)
836841

837-
def _get_upgrade_prices(self, instance_id):
842+
def _get_upgrade_prices(self, instance_id, include_downgrade_options=True):
838843
"""Following Method gets all the price ids related to upgrading a VS.
839844
840845
:param int instance_id: Instance id of the VS to be upgraded
@@ -848,7 +853,7 @@ def _get_upgrade_prices(self, instance_id):
848853
'item[description,capacity,units]'
849854
]
850855
mask = "mask[%s]" % ','.join(mask)
851-
return self.guest.getUpgradeItemPrices(id=instance_id, mask=mask)
856+
return self.guest.getUpgradeItemPrices(include_downgrade_options, id=instance_id, mask=mask)
852857

853858
def _get_price_id_for_upgrade_option(self, upgrade_prices, option, value,
854859
public=True):

tests/managers/vs_tests.py

+42-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import mock
88

99
import SoftLayer
10-
from SoftLayer import exceptions
1110
from SoftLayer import fixtures
1211
from SoftLayer import testing
1312

@@ -685,11 +684,6 @@ def test_upgrade_dedicated_host_instance(self):
685684
self.assertEqual(order_container['prices'], [{'id': 115566}])
686685
self.assertEqual(order_container['virtualGuests'], [{'id': 1}])
687686

688-
def test_upgrade_skips_location_based_prices(self):
689-
# Test that no prices that have locationGroupId set are used
690-
self.assertRaises(exceptions.SoftLayerError,
691-
self.vs.upgrade, 1, cpus=55, memory=2, public=True)
692-
693687
def test_get_item_id_for_upgrade(self):
694688
item_id = 0
695689
package_items = self.client['Product_Package'].getItems(id=46)
@@ -700,6 +694,48 @@ def test_get_item_id_for_upgrade(self):
700694
break
701695
self.assertEqual(1133, item_id)
702696

697+
def test_get_package_items(self):
698+
self.vs._get_package_items()
699+
self.assert_called_with('SoftLayer_Product_Package', 'getItems')
700+
701+
def test_get_package_items_errors(self):
702+
mock = self.set_mock('SoftLayer_Product_Package', 'getAllObjects')
703+
mock.return_value = []
704+
705+
self.assertRaises(ValueError, self.vs._get_package_items)
706+
707+
def test_get_price_id_for_upgrade(self):
708+
package_items = self.vs._get_package_items()
709+
710+
price_id = self.vs._get_price_id_for_upgrade(package_items=package_items,
711+
option='cpus',
712+
value='4')
713+
self.assertEqual(1144, price_id)
714+
715+
def test_get_price_id_for_upgrade_skips_location_price(self):
716+
package_items = self.vs._get_package_items()
717+
718+
price_id = self.vs._get_price_id_for_upgrade(package_items=package_items,
719+
option='cpus',
720+
value='55')
721+
self.assertEqual(None, price_id)
722+
723+
def test_get_price_id_for_upgrade_finds_nic_price(self):
724+
package_items = self.vs._get_package_items()
725+
726+
price_id = self.vs._get_price_id_for_upgrade(package_items=package_items,
727+
option='memory',
728+
value='2')
729+
self.assertEqual(1133, price_id)
730+
731+
def test_get_price_id_for_upgrade_finds_memory_price(self):
732+
package_items = self.vs._get_package_items()
733+
734+
price_id = self.vs._get_price_id_for_upgrade(package_items=package_items,
735+
option='nic_speed',
736+
value='1000')
737+
self.assertEqual(1122, price_id)
738+
703739

704740
class VSWaitReadyGoTests(testing.TestCase):
705741

0 commit comments

Comments
 (0)