def test_ensure_get_called_valid_volume(self, mock_base, client_f): set_module_args(self.set_default_args()) mock_base.return_value = Mock() client_f.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes assert my_obj.get_azure_netapp_volume() is not None
def test_ensure_get_called_non_existing_volume(self, mock_base, client_f): data = self.set_default_args() data['name'] = 'invalid' set_module_args(data) mock_base.return_value = Mock() client_f.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes assert my_obj.get_azure_netapp_volume() is None
def test_ensure_delete_called(self, mock_delete, mock_get, mock_base, client_f): data = self.set_default_args() data['state'] = 'absent' set_module_args(data) mock_base.return_value = Mock() client_f.return_value = Mock() mock_get.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes with pytest.raises(AnsibleExitJson) as exc: my_obj.exec_module() assert exc.value.args[0]['changed'] mock_delete.assert_called_with()
def test_ensure_create_called_but_fail_on_mount_target( self, mock_create, mock_get, mock_base, client_f): data = self.set_default_args() data['name'] = 'create' set_module_args(data) mock_get.return_value = None mock_base.return_value = Mock() client_f.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes with pytest.raises(AnsibleFailJson) as exc: my_obj.exec_module() error = 'Error: volume create was created successfully, but cannot be found.' assert exc.value.args[0]['msg'] == error mock_create.assert_called_with()
def test_ensure_create_called_but_fail_on_get(self, mock_create, mock_get, mock_base, client_f): data = self.set_default_args() data['name'] = 'create' set_module_args(data) mock_get.side_effect = [ None, # first get Mock( mount_targets=None, # get after create creation_token='abcd') ] mock_base.return_value = Mock() client_f.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes with pytest.raises(AnsibleFailJson) as exc: my_obj.exec_module() error = 'Error: volume create was created successfully, but mount target(s) cannot be found - volume details:' assert exc.value.args[0]['msg'].startswith(error) mock_create.assert_called_with()
def test_ensure_create_called(self, mock_create, mock_get, mock_base, client_f): data = self.set_default_args() data['name'] = 'create' set_module_args(data) mock_get.side_effect = [ None, # first get Mock( mount_targets=[Mock(ip_address='11.22.33.44') ], # get after create creation_token='abcd') ] mock_base.return_value = Mock() client_f.return_value = Mock() my_obj = volume_module() my_obj.netapp_client.volumes = self.netapp_client.volumes with pytest.raises(AnsibleExitJson) as exc: my_obj.exec_module() assert exc.value.args[0]['changed'] expected_msg = '11.22.33.44:/abcd' assert exc.value.args[0]['msg'] == expected_msg mock_create.assert_called_with()
def test_module_fail_when_required_args_missing(self): ''' required arguments are reported as errors ''' with pytest.raises(AnsibleFailJson) as exc: set_module_args({}) volume_module() print('Info: %s' % exc.value.args[0]['msg'])