Skip to content

Commit 8a22d39

Browse files
adding unit tests
1 parent 47fb789 commit 8a22d39

File tree

4 files changed

+57
-1
lines changed

4 files changed

+57
-1
lines changed

SoftLayer/CLI/virt/migrate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def cli(env, guest, migrate_all, host):
6161
elif migrate_all:
6262
require_migration = vsi.list_instances(filter=pending_filter, mask="mask[id]")
6363
for vsi_object in require_migration:
64-
migrate(vsi, guest)
64+
migrate(vsi, vsi_object['id'])
6565
# Just migrate based on the options
6666
else:
6767
migrate(vsi, guest, host)

SoftLayer/fixtures/SoftLayer_Virtual_Guest.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,3 +767,6 @@
767767
}
768768
}
769769
]
770+
771+
migrate = True
772+
migrateDedicatedHost = True

SoftLayer/testing/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,16 @@ def assert_called_with(self, service, method, **props):
142142

143143
raise AssertionError('%s::%s was not called with given properties: %s' % (service, method, props))
144144

145+
def assert_not_called_with(self, service, method, **props):
146+
"""Used to assert that API calls were NOT called with given properties.
147+
148+
Props are properties of the given transport.Request object.
149+
"""
150+
151+
if self.calls(service, method, **props):
152+
raise AssertionError('%s::%s was called with given properties: %s' % (service, method, props))
153+
154+
145155
def assert_no_fail(self, result):
146156
"""Fail when a failing click result has an error"""
147157
if result.exception:

tests/CLI/modules/vs/vs_tests.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -815,3 +815,46 @@ def test_billing(self):
815815
}
816816
self.assert_no_fail(result)
817817
self.assertEqual(json.loads(result.output), vir_billing)
818+
819+
def test_vs_migrate_list(self):
820+
result = self.run_command(['vs', 'migrate'])
821+
self.assert_no_fail(result)
822+
self.assert_called_with('SoftLayer_Account', 'getVirtualGuests')
823+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrate')
824+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrateDedicatedHost')
825+
826+
def test_vs_migrate_guest(self):
827+
result = self.run_command(['vs', 'migrate', '-g', '100'])
828+
829+
self.assert_no_fail(result)
830+
self.assertIn('Started a migration on', result.output)
831+
self.assert_not_called_with('SoftLayer_Account', 'getVirtualGuests')
832+
self.assert_called_with('SoftLayer_Virtual_Guest', 'migrate', identifier=100)
833+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrateDedicatedHost')
834+
835+
def test_vs_migrate_all(self):
836+
result = self.run_command(['vs', 'migrate', '-a'])
837+
self.assert_no_fail(result)
838+
self.assertIn('Started a migration on', result.output)
839+
self.assert_called_with('SoftLayer_Virtual_Guest', 'migrate', identifier=100)
840+
self.assert_called_with('SoftLayer_Virtual_Guest', 'migrate', identifier=104)
841+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrateDedicatedHost')
842+
843+
def test_vs_migrate_dedicated(self):
844+
result = self.run_command(['vs', 'migrate', '-g', '100', '-h', '999'])
845+
self.assert_no_fail(result)
846+
self.assertIn('Started a migration on', result.output)
847+
self.assert_not_called_with('SoftLayer_Account', 'getVirtualGuests')
848+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrate', identifier=100)
849+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrateDedicatedHost', args=(999), identifier=100)
850+
851+
def test_vs_migrate_exception(self):
852+
ex = SoftLayerAPIError('SoftLayer_Exception', 'PROBLEM')
853+
mock = self.set_mock('SoftLayer_Virtual_Guest', 'migrate')
854+
mock.side_effect = ex
855+
result = self.run_command(['vs', 'migrate', '-g', '100'])
856+
self.assert_no_fail(result)
857+
self.assertIn('Failed to migrate', result.output)
858+
self.assert_not_called_with('SoftLayer_Account', 'getVirtualGuests')
859+
self.assert_called_with('SoftLayer_Virtual_Guest', 'migrate', identifier=100)
860+
self.assert_not_called_with('SoftLayer_Virtual_Guest', 'migrateDedicatedHost', args=(999), identifier=100)

0 commit comments

Comments
 (0)