def test_should_fail_with_missing_required_attributes(self): self.mock_ansible_module.params = PARAMS_FOR_MISSING_ATTRIBUTES PowerDeviceModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=POWER_DEVICE_MANDATORY_FIELD_MISSING)
def test_should_fail_when_the_power_device_was_not_found(self): self.resource.get_by.return_value = [] self.mock_ansible_module.params = PARAMS_FOR_POWER_STATE_SET PowerDeviceModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=POWER_DEVICE_NOT_FOUND)
def test_should_do_nothing_when_power_device_not_exist(self): self.resource.get_by.return_value = [] self.mock_ansible_module.params = PARAMS_FOR_ABSENT PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( ansible_facts={}, changed=False, msg=POWER_DEVICE_ALREADY_ABSENT)
def test_should_remove_power_device(self): self.resource.get_by.return_value = [DEFAULT_POWER_DEVICE] self.mock_ansible_module.params = PARAMS_FOR_ABSENT PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( ansible_facts={}, changed=True, msg=POWER_DEVICE_DELETED)
def test_should_add_new_ipdu(self): self.resource.add_ipdu.return_value = DEFAULT_POWER_DEVICE self.mock_ansible_module.params = PARAMS_FOR_IPDU PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_IPDU_ADDED, ansible_facts=dict(power_device=DEFAULT_POWER_DEVICE))
def test_should_not_update_when_data_is_equals(self): self.resource.get_by.return_value = [DEFAULT_POWER_DEVICE] self.mock_ansible_module.params = PARAMS_FOR_PRESENT PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=POWER_DEVICE_ALREADY_PRESENT, ansible_facts=dict(power_device=DEFAULT_POWER_DEVICE))
def test_should_set_uid_state(self): self.resource.get_by.return_value = [{"uri": "resourceuri"}] self.resource.update_uid_state.return_value = {"name": "name"} self.mock_ansible_module.params = PARAMS_FOR_UID_STATE_SET PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_UID_STATE_UPDATED, ansible_facts=dict(power_device={"name": "name"}))
def test_should_load_config_from_file(self, mock_ansible_module, mock_ov_client_from_env_vars, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock({'config': 'config.json'}) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule() mock_ov_client_from_json_file.assert_called_once_with('config.json') mock_ov_client_from_env_vars.not_been_called()
def test_should_fail_when_the_power_device_was_not_found( self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [] mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml( YAML_POWER_DEVICE_UID_STATE) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.fail_json.assert_called_once_with( msg=POWER_DEVICE_NOT_FOUND)
def test_should_remove_power_device(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [{'name': 'name'}] mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml( YAML_POWER_DEVICE_ABSENT) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( ansible_facts={}, changed=True, msg=POWER_DEVICE_DELETED)
def test_should_add_new_ipdu(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.add_ipdu.return_value = {"name": "name"} mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml(YAML_IPDU) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_IPDU_ADDED, ansible_facts=dict(power_device={"name": "name"}))
def test_should_do_nothing_when_power_device_not_exist( self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [] mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml( YAML_POWER_DEVICE_ABSENT) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( ansible_facts={}, changed=False, msg=POWER_DEVICE_ALREADY_ABSENT)
def test_should_fail_when_add_raises_exception( self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [] mock_ov_instance.power_devices.add.side_effect = Exception( FAKE_MSG_ERROR) mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml(YAML_POWER_DEVICE) mock_ansible_module.return_value = mock_ansible_instance self.assertRaises(Exception, PowerDeviceModule().run()) mock_ansible_instance.fail_json.assert_called_once_with( msg=FAKE_MSG_ERROR)
def test_update_when_data_has_modified_attributes(self): data_merged = DEFAULT_POWER_DEVICE.copy() data_merged['name'] = 'PDD new name' self.resource.get_by.return_value = [DEFAULT_POWER_DEVICE] self.resource.update.return_value = data_merged self.mock_ansible_module.params = PARAMS_WITH_CHANGES PowerDeviceModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_UPDATED, ansible_facts=dict(power_device=data_merged))
def test_should_not_update_when_it_already_present( self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [ DICT_DEFAULT_POWER_DEVICE ] mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml(YAML_POWER_DEVICE) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=False, msg=POWER_DEVICE_ALREADY_PRESENT, ansible_facts=dict(power_device=DICT_DEFAULT_POWER_DEVICE))
def test_should_fail_with_missing_required_attributes( self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = mock.Mock() mock_ansible_instance.params = { "state": "present", "config": "config", "data": { "field": "invalid" } } mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.fail_json.assert_called_once_with( msg=POWER_DEVICE_MANDATORY_FIELD_MISSING)
def test_should_set_uid_state(self, mock_ansible_module, mock_ov_client_from_json_file): mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.return_value = [{ "uri": "resourceuri" }] mock_ov_instance.power_devices.update_uid_state.return_value = { "name": "name" } mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml( YAML_POWER_DEVICE_UID_STATE) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_UID_STATE_UPDATED, ansible_facts=dict(power_device={"name": "name"}))
def test_should_update_when_it_already_exists_with_difference( self, mock_ansible_module, mock_ov_client_from_json_file): def inner_get_by(name, value): if value == "PDD name": return [DICT_DEFAULT_POWER_DEVICE] else: return [] mock_ov_instance = mock.Mock() mock_ov_instance.power_devices.get_by.side_effect = inner_get_by mock_ov_instance.power_devices.update.return_value = {'name': 'name'} mock_ov_client_from_json_file.return_value = mock_ov_instance mock_ansible_instance = create_ansible_mock_yaml( YAML_POWER_DEVICE_CHANGE) mock_ansible_module.return_value = mock_ansible_instance PowerDeviceModule().run() mock_ansible_instance.exit_json.assert_called_once_with( changed=True, msg=POWER_DEVICE_UPDATED, ansible_facts=dict(power_device={'name': 'name'}))