Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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))
Exemple #6
0
    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))
Exemple #7
0
    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)
Exemple #14
0
    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'}))