def test_create_new_golden_image(self): self.i3s.golden_images.get_by.return_value = [] self.i3s.golden_images.create.return_value = {"name": "name"} self.i3s.os_volumes.get_by_name.return_value = { 'uri': '/rest/os-volumes/1' } self.i3s.build_plans.get_by.return_value = [{ 'uri': '/rest/build-plans/1' }] self.mock_ansible_module.params = self.GOLDEN_IMAGE_CREATE GoldenImageModule().run() self.i3s.golden_images.create.assert_called_once_with({ 'osVolumeURI': '/rest/os-volumes/1', 'description': 'Test Description', 'buildPlanUri': '/rest/build-plans/1', 'name': 'Demo Golden Image creation', 'imageCapture': 'true' }) self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=GoldenImageModule.MSG_CREATED, ansible_facts=dict(golden_image={"name": "name"}))
def test_golden_image_archive_download_nonexistent(self): self.resource.get_by.return_value = [] self.mock_ansible_module.params = self.GOLDEN_IMAGE_ARCHIVE_DOWNLOAD GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with(exception=mock.ANY, msg=GoldenImageModule.MSG_WAS_NOT_FOUND)
def test_golden_image_download_nonexistent(self): self.i3s.golden_images.get_by.return_value = [] self.mock_ansible_module.params = self.GOLDEN_IMAGE_DOWNLOAD GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with( msg=GoldenImageModule.MSG_WAS_NOT_FOUND, )
def test_should_fail_when_build_plan_not_found(self): self.resource.get_by.return_value = [] self.mock_ov_client.build_plans.get_by.return_value = None self.mock_ansible_module.params = self.GOLDEN_IMAGE_CREATE GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with(exception=mock.ANY, msg=GoldenImageModule.MSG_BUILD_PLAN_WAS_NOT_FOUND)
def test_should_do_nothing_when_deleting_a_non_existent_golden_image(self): self.i3s.golden_images.get_by.return_value = [] self.mock_ansible_module.params = self.GOLDEN_IMAGE_DELETE GoldenImageModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=GoldenImageModule.MSG_ALREADY_ABSENT)
def test_delete_golden_image(self): self.resource.get_by.return_value = [self.GOLDEN_IMAGE_CREATE['data']] self.mock_ansible_module.params = self.GOLDEN_IMAGE_DELETE GoldenImageModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=GoldenImageModule.MSG_DELETED)
def test_should_fail_when_os_volume_not_found(self): self.resource.get_by.return_value = [] self.mock_ov_client.os_volumes.get_by_name.return_value = None self.mock_ansible_module.params = self.GOLDEN_IMAGE_CREATE GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with(exception=mock.ANY, msg=GoldenImageModule.MSG_OS_VOLUME_WAS_NOT_FOUND)
def test_should_fail_when_mandatory_attributes_are_missing(self): self.resource.get_by.return_value = [] del self.GOLDEN_IMAGE_CREATE['data']['osVolumeName'] self.mock_ansible_module.params = self.GOLDEN_IMAGE_CREATE GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with(exception=mock.ANY, msg=GoldenImageModule.MSG_MISSING_MANDATORY_ATTRIBUTES)
def test_should_fail_when_present_is_incosistent(self): self.resource.get_by.return_value = [] self.mock_ov_client.os_volumes.get_by_name.return_value = {'uri': '/rest/os-volumes/1'} self.GOLDEN_IMAGE_CREATE['data']['localImageFilePath'] = 'filename' self.mock_ansible_module.params = self.GOLDEN_IMAGE_CREATE GoldenImageModule().run() self.mock_ansible_module.fail_json.assert_called_once_with(exception=mock.ANY, msg=GoldenImageModule.MSG_CANT_CREATE_AND_UPLOAD)
def test_update_golden_image(self): self.resource.get_by.return_value = [self.GOLDEN_IMAGE_CREATE['data']] self.resource.update.return_value = {"name": "name"} self.mock_ansible_module.params = self.GOLDEN_IMAGE_UPDATE GoldenImageModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=GoldenImageModule.MSG_UPDATED, ansible_facts=dict(golden_image={"name": "name"}))
def test_should_not_update_when_data_is_equals(self): self.resource.get_by.return_value = [self.GOLDEN_IMAGE_UPDATE['data']] del self.GOLDEN_IMAGE_UPDATE['data']['newName'] self.mock_ansible_module.params = self.GOLDEN_IMAGE_UPDATE GoldenImageModule().run() self.mock_ansible_module.exit_json.assert_called_once_with( changed=False, msg=GoldenImageModule.MSG_ALREADY_PRESENT, ansible_facts=dict(golden_image=self.GOLDEN_IMAGE_UPDATE['data']))
def test_golden_image_archive_download(self): golden_image = self.GOLDEN_IMAGE_CREATE['data'] golden_image['uri'] = '/rest/golden-images/1' self.resource.get_by.return_value = [golden_image] self.mock_ansible_module.params = self.GOLDEN_IMAGE_ARCHIVE_DOWNLOAD GoldenImageModule().run() download_file = self.GOLDEN_IMAGE_ARCHIVE_DOWNLOAD['data']['destination_file_path'] self.resource.download_archive.assert_called_once_with('/rest/golden-images/1', download_file) self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=GoldenImageModule.MSG_ARCHIVE_DOWNLOADED, ansible_facts={})
def test_upload_a_golden_image(self): self.i3s.golden_images.get_by.return_value = [] self.i3s.golden_images.upload.return_value = {"name": "name"} self.mock_ansible_module.params = self.GOLDEN_IMAGE_UPLOAD file_path = self.GOLDEN_IMAGE_UPLOAD['data']['localImageFilePath'] GoldenImageModule().run() self.i3s.golden_images.upload.assert_called_once_with( file_path, self.GOLDEN_IMAGE_UPLOAD['data']) self.mock_ansible_module.exit_json.assert_called_once_with( changed=True, msg=GoldenImageModule.MSG_UPLOADED, ansible_facts=dict(golden_image={"name": "name"}))