def test_stopped(self): ''' stopped state test cases. ''' ret = {'name': 'myvm', 'changes': {}, 'result': True} shutdown_mock = MagicMock(return_value=True) # Normal case with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.vm_state': MagicMock(return_value={'myvm': 'running'}), 'virt.shutdown': shutdown_mock }): ret.update({'changes': { 'stopped': [{'domain': 'myvm', 'shutdown': True}] }, 'comment': 'Machine has been shut down'}) self.assertDictEqual(virt.stopped('myvm'), ret) shutdown_mock.assert_called_with('myvm', connection=None, username=None, password=None) # Normal case with user-provided connection parameters with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.vm_state': MagicMock(return_value={'myvm': 'running'}), 'virt.shutdown': shutdown_mock, }): self.assertDictEqual(virt.stopped('myvm', connection='myconnection', username='******', password='******'), ret) shutdown_mock.assert_called_with('myvm', connection='myconnection', username='******', password='******') # Case where an error occurred during the shutdown with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.vm_state': MagicMock(return_value={'myvm': 'running'}), 'virt.shutdown': MagicMock(side_effect=self.mock_libvirt.libvirtError('Some error')) }): ret.update({'changes': {'ignored': [{'domain': 'myvm', 'issue': 'Some error'}]}, 'result': False, 'comment': 'No changes had happened'}) self.assertDictEqual(virt.stopped('myvm'), ret) # Case there the domain doesn't exist with patch.dict(virt.__salt__, {'virt.list_domains': MagicMock(return_value=[])}): # pylint: disable=no-member ret.update({'changes': {}, 'result': False, 'comment': 'No changes had happened'}) self.assertDictEqual(virt.stopped('myvm'), ret) # Case where the domain is already stopped with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.vm_state': MagicMock(return_value={'myvm': 'shutdown'}) }): ret.update({'changes': {}, 'result': True, 'comment': 'No changes had happened'}) self.assertDictEqual(virt.stopped('myvm'), ret)
def test_stopped_error(): """ stopped state test, error while stopping guest """ with patch.dict(virt.__opts__, {"test": False}): with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm", "vm1"]), "virt.vm_state": MagicMock(return_value={"myvm": "running"}), "virt.shutdown": MagicMock(side_effect=virt.libvirt.libvirtError("Some error")), }, ): assert virt.stopped("myvm") == { "name": "myvm", "changes": { "ignored": [{ "domain": "myvm", "issue": "Some error" }] }, "result": False, "comment": "No changes had happened", }
def test_stopped(self): ''' stopped state test cases. ''' ret = {'name': 'myvm', 'changes': {}, 'result': True} shutdown_mock = MagicMock(return_value=True) with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.shutdown': shutdown_mock }): ret.update({'changes': { 'stopped': [{'domain': 'myvm', 'shutdown': True}] }, 'comment': 'Machine has been shut down'}) self.assertDictEqual(virt.stopped('myvm'), ret) shutdown_mock.assert_called_with('myvm', connection=None, username=None, password=None) with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.shutdown': shutdown_mock, }): self.assertDictEqual(virt.stopped('myvm', connection='myconnection', username='******', password='******'), ret) shutdown_mock.assert_called_with('myvm', connection='myconnection', username='******', password='******') with patch.dict(virt.__salt__, { # pylint: disable=no-member 'virt.list_domains': MagicMock(return_value=['myvm', 'vm1']), 'virt.shutdown': MagicMock(side_effect=self.mock_libvirt.libvirtError('Some error')) }): ret.update({'changes': {'ignored': [{'domain': 'myvm', 'issue': 'Some error'}]}, 'result': False, 'comment': 'No changes had happened'}) self.assertDictEqual(virt.stopped('myvm'), ret) with patch.dict(virt.__salt__, {'virt.list_domains': MagicMock(return_value=[])}): # pylint: disable=no-member ret.update({'changes': {}, 'result': False, 'comment': 'No changes had happened'}) self.assertDictEqual(virt.stopped('myvm'), ret)
def test_stopped_not_existing(test): """ stopped state test, non existing guest """ with patch.dict(virt.__opts__, {"test": test}): shutdown_mock = MagicMock(return_value=True) with patch.dict( virt.__salt__, {"virt.list_domains": MagicMock(return_value=[])}, ): assert virt.stopped("myvm") == { "name": "myvm", "changes": {}, "comment": "No changes had happened", "result": False, }
def test_stopped(test, running): """ stopped state test, running guest """ with patch.dict(virt.__opts__, {"test": test}): shutdown_mock = MagicMock(return_value=True) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm", "vm1"]), "virt.vm_state": MagicMock(return_value={"myvm": running}), "virt.shutdown": shutdown_mock, }, ): changes = {} comment = "No changes had happened" if running == "running": changes = {"stopped": [{"domain": "myvm", "shutdown": True}]} comment = "Machine has been shut down" assert virt.stopped( "myvm", connection="myconnection", username="******", password="******", ) == { "name": "myvm", "changes": changes, "comment": comment, "result": True if not test or running == "shutdown" else None, } if not test and running == "running": shutdown_mock.assert_called_with( "myvm", connection="myconnection", username="******", password="******", ) else: shutdown_mock.assert_not_called()