Example #1
0
    def test_get_object_by_path_checks_childEntity(self):
        """
        Checks whether the function can grab from child entities
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        def search_child(*args, **keys):
            if args[0].name == pv_service.ChildEntity:
                return True
            return False

        class FolderMock:
            childEntity = None

        folder = Mock(spec=FolderMock())
        folder.name = pv_service.ChildEntity
        get_folder = MagicMock(return_value=folder)
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(side_effect=search_child)

        '#act'
        result = pv_service.find_obj_by_path(si, '', '', '')

        '#assert'
        self.assertTrue(result)
Example #2
0
    def integration_clone_vm_destory(self):
        """
        Checks whether clone_vm and destroy methods works
        """
        '#arrange'
        cred = TestCredentials()
        pv_service = pyVmomiService(SmartConnect, Disconnect)
        si = pv_service.connect(cred.host, cred.username, cred.password)

        params = pv_service.CloneVmParameters(si=si,
                                              template_name='DC0_C0_RP0_VM20',
                                              vm_name='my_clone',
                                              vm_folder='DC0')
        '#act'
        now = datetime.now()
        res = pv_service.clone_vm(params)
        print 'clone took: %s' % (str(datetime.now() - now))

        '#assert'
        self.assertTrue(type(res.vm), vim.VirtualMachine)

        '#tear down'
        now = datetime.now()
        if res.error is None and res.vm is not None:
            destroyed = pv_service.destroy_vm(res.vm)
        print 'destroy took: %s' % (str(datetime.now() - now))
        self.assertIsNone(destroyed)
    def integration_clone_vm_destory(self):
        """
        Checks whether clone_vm and destroy methods works
        """
        "#arrange"
        cred = TestCredentials()
        pv_service = pyVmomiService(SmartConnect, Disconnect)
        si = pv_service.connect(cred.host, cred.username, cred.password)

        params = pv_service.CloneVmParameters(
            si=si, template_name="DC0_C0_RP0_VM20", vm_name="my_clone", vm_folder="DC0"
        )
        "#act"
        now = datetime.now()
        res = pv_service.clone_vm(params)
        print "clone took: %s" % (str(datetime.now() - now))

        "#assert"
        self.assertTrue(type(res.vm), vim.VirtualMachine)

        "#tear down"
        now = datetime.now()
        if res.error is None and res.vm is not None:
            destroyed = pv_service.destroy_vm(res.vm)
        print "destroy took: %s" % (str(datetime.now() - now))
        self.assertIsNone(destroyed)
    def test_get_object_by_path_checks_childEntity(self):
        """
        Checks whether the function can grab from child entities
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        def search_child(*args, **keys):
            if args[0].name == pv_service.ChildEntity:
                return True
            return False

        class FolderMock:
            childEntity = None

        folder = Mock(spec=FolderMock())
        folder.name = pv_service.ChildEntity
        get_folder = MagicMock(return_value=folder)
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(side_effect=search_child)

        "#act"
        result = pv_service.find_obj_by_path(si, "", "", "")

        "#assert"
        self.assertTrue(result)
Example #5
0
    def test_get_folder_deep_and_complex_path(self):
        """
        Checks when path is deep and complex, goes through all the folder types
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        def find_child_mock(*args):
            root = args[0]
            if hasattr(root, pv_service.ChildEntity):
                for folder in root.childEntity:
                    if folder.name == args[1]:
                        return folder
            else:
                for folder in root:
                    if folder.name == args[1]:
                        return folder
            return None

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(
            side_effect=find_child_mock)

        first_folder = Mock(spec=[], name='first')
        first_folder.name = 'first'

        second_folder = Mock(spec=[], name='second')
        second_folder.name = 'second'

        third_folder = Mock(spec=[], name='third')
        third_folder.name = 'third'

        fourth_folder = Mock(spec=[], name='fourth')
        fourth_folder.name = 'fourth'

        fifth_folder = Mock(spec=[], name='fifth')
        fifth_folder.name = 'fifth'

        sixth_folder = Mock(spec=[], name='sixth')
        sixth_folder.name = 'sixth'

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = 'rootFolder'
        si.content.rootFolder.childEntity = [first_folder, second_folder]
        first_folder.vmFolder = [second_folder, sixth_folder]
        second_folder.networkFolder = [fourth_folder, third_folder]
        third_folder.hostFolder = [third_folder, fourth_folder]
        fourth_folder.datacenterFolder = [fifth_folder]
        fifth_folder.datastoreFolder = [sixth_folder]

        '#act'
        result = pv_service.get_folder(
            si, 'first/second/third/fourth/fifth/sixth')

        '#assert'
        self.assertEqual(result, sixth_folder)
    def test_get_folder_deep_and_complex_path(self):
        """
        Checks when path is deep and complex, goes through all the folder types
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        def find_child_mock(*args):
            root = args[0]
            if hasattr(root, pv_service.ChildEntity):
                for folder in root.childEntity:
                    if folder.name == args[1]:
                        return folder
            else:
                for folder in root:
                    if folder.name == args[1]:
                        return folder
            return None

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(side_effect=find_child_mock)

        first_folder = Mock(spec=[], name="first")
        first_folder.name = "first"

        second_folder = Mock(spec=[], name="second")
        second_folder.name = "second"

        third_folder = Mock(spec=[], name="third")
        third_folder.name = "third"

        fourth_folder = Mock(spec=[], name="fourth")
        fourth_folder.name = "fourth"

        fifth_folder = Mock(spec=[], name="fifth")
        fifth_folder.name = "fifth"

        sixth_folder = Mock(spec=[], name="sixth")
        sixth_folder.name = "sixth"

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = "rootFolder"
        si.content.rootFolder.childEntity = [first_folder, second_folder]
        first_folder.vmFolder = [second_folder, sixth_folder]
        second_folder.networkFolder = [fourth_folder, third_folder]
        third_folder.hostFolder = [third_folder, fourth_folder]
        fourth_folder.datacenterFolder = [fifth_folder]
        fifth_folder.datastoreFolder = [sixth_folder]

        "#act"
        result = pv_service.get_folder(si, "first/second/third/fourth/fifth/sixth")

        "#assert"
        self.assertEqual(result, sixth_folder)
    def test_clone_vm_si_is_none(self):
        """
        Checks clone_vm
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)
        params = pv_service.CloneVmParameters(si=None, template_name=None, vm_name=None, vm_folder=None)

        "#act"
        res = pv_service.clone_vm(params)

        "#assert"
        self.assertTrue(res.error is not None)
    def test_clone_vm_template_name_is_none(self):
        """
        Checks clone_vm
        """
        "#arrange"
        si = create_autospec(spec=vim.ServiceInstance)

        pv_service = pyVmomiService(None, None)
        params = pv_service.CloneVmParameters(si=si, template_name=None, vm_name=None, vm_folder=None)

        "#act"
        res = pv_service.clone_vm(params)

        "#assert"
        self.assertTrue(res.error is not None)
Example #9
0
    def test_clone_vm_si_is_none(self):
        """
        Checks clone_vm
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)
        params = pv_service.CloneVmParameters(si=None,
                                              template_name=None,
                                              vm_name=None,
                                              vm_folder=None)

        '#act'
        res = pv_service.clone_vm(params)

        '#assert'
        self.assertTrue(res.error is not None)
Example #10
0
    def __init__(self):
        py_vmomi_service = pyVmomiService(SmartConnect, Disconnect)
        cloudshell_data_retriever_service = CloudshellDataRetrieverService()
        resource_connection_details_retriever = ResourceConnectionDetailsRetriever(cloudshell_data_retriever_service)
        network_adapter_retriever_command = NetworkAdaptersRetrieverCommand(py_vmomi_service,
                                                                            cloudshell_data_retriever_service,
                                                                            resource_connection_details_retriever)
        destroy_virtual_machine_command = DestroyVirtualMachineCommand(py_vmomi_service,
                                                                       cloudshell_data_retriever_service)

        deploy_from_template_command = DeployFromTemplateCommand(py_vmomi_service, cloudshell_data_retriever_service,
                                                                 resource_connection_details_retriever)

        self.commandExecuterService = CommandExecuterService(py_vmomi_service,
                                                             network_adapter_retriever_command,
                                                             destroy_virtual_machine_command,
                                                             deploy_from_template_command)
    def __init__(self):
        py_vmomi_service = pyVmomiService(SmartConnect, Disconnect)
        cloudshell_data_retriever_service = CloudshellDataRetrieverService()
        resource_connection_details_retriever = ResourceConnectionDetailsRetriever(
            cloudshell_data_retriever_service)
        network_adapter_retriever_command = NetworkAdaptersRetrieverCommand(
            py_vmomi_service, cloudshell_data_retriever_service,
            resource_connection_details_retriever)
        destroy_virtual_machine_command = DestroyVirtualMachineCommand(
            py_vmomi_service, cloudshell_data_retriever_service)

        deploy_from_template_command = DeployFromTemplateCommand(
            py_vmomi_service, cloudshell_data_retriever_service,
            resource_connection_details_retriever)

        self.commandExecuterService = CommandExecuterService(
            py_vmomi_service, network_adapter_retriever_command,
            destroy_virtual_machine_command, deploy_from_template_command)
Example #12
0
    def test_clone_vm_template_name_is_none(self):
        """
        Checks clone_vm
        """
        '#arrange'
        si = create_autospec(spec=vim.ServiceInstance)

        pv_service = pyVmomiService(None, None)
        params = pv_service.CloneVmParameters(si=si,
                                              template_name=None,
                                              vm_name=None,
                                              vm_folder=None)

        '#act'
        res = pv_service.clone_vm(params)

        '#assert'
        self.assertTrue(res.error is not None)
Example #13
0
    def test_get_object_by_path_no_nested_objs(self):
        """
        Checks whether the function returns 'None' if it doesn't find an object
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        get_folder = MagicMock(return_value=Mock(spec=[]))
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        '#act'
        result = pv_service.find_obj_by_path(si, '', '', '')

        '#assert'
        self.assertIsNone(result)
    def test_get_object_by_path_no_nested_objs(self):
        """
        Checks whether the function returns 'None' if it doesn't find an object
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        get_folder = MagicMock(return_value=Mock(spec=[]))
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        "#act"
        result = pv_service.find_obj_by_path(si, "", "", "")

        "#assert"
        self.assertIsNone(result)
Example #15
0
    def test_get_folder_deep_path(self):
        """
        Checks when path is deep, more then two
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        def find_child_mock(*args):
            root = args[0]
            for folder in root.childEntity:
                if folder.name == args[1]:
                    return folder
            return None

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(
            side_effect=find_child_mock)

        inner_folder = Mock()
        inner_folder.name = 'inner'

        inner_decoy_folder = Mock()
        inner_decoy_folder.name = 'decoy'

        inner_deep_folder = Mock()
        inner_deep_folder.name = 'inner_deep_folder'

        inner_folder.childEntity = [inner_deep_folder, inner_decoy_folder]
        inner_decoy_folder.childEntity = [inner_folder]

        si.content.rootFolder = Mock()
        si.content.rootFolder.childEntity = [inner_decoy_folder, inner_folder]
        si.content.rootFolder.name = 'rootFolder'

        '#act'
        result = pv_service.get_folder(si, 'decoy/inner/inner_deep_folder/')

        '#assert'
        self.assertEqual(result, inner_deep_folder)
Example #16
0
    def test_clone_vm_resource_pool_is_not_empty(self):
        """
        Checks clone_vm
        """
        '#arrange'
        si = Mock(spec=vim.ServiceInstance)
        vim_mock = Mock()
        vim_mock.vm = Mock()
        vim_mock.vm.RelocateSpec = Mock()
        vim_mock.vm.CloneSpec = Mock()
        vim_mock.Datacenter = vim.Datacenter
        vim_mock.Datastore = vim.Datastore
        vim_mock.ServiceInstance = vim.ServiceInstance

        datacenter = Mock(spec=vim.Datacenter)
        template = Mock(spec=vim.VirtualMachine)
        template.datastore = [Mock()]

        pv_service = pyVmomiService(None, None, vim_mock)
        pv_service.find_vm_by_name = Mock(return_value=template)
        pv_service.get_obj = Mock()
        pv_service.get_folder = Mock(return_value=datacenter)
        pv_service.wait_for_task = Mock()

        params = pv_service.CloneVmParameters(si=si,
                                              template_name='my_temp',
                                              vm_name='my_name',
                                              vm_folder='my_folder',
                                              resource_pool='my_resource_pool')

        '#act'
        res = pv_service.clone_vm(params)

        '#assert'
        self.assertIsNone(res.error)
        self.assertTrue(vim_mock.vm.RelocateSpec.called)
        self.assertTrue(vim_mock.vm.CloneSpec.called)
        self.assertTrue(pv_service.get_folder.called)
        self.assertTrue(pv_service.find_vm_by_name.called)
        self.assertTrue(pv_service.get_obj.called)
        self.assertTrue(pv_service.wait_for_task.called)
    def test_get_folder_deep_path(self):
        """
        Checks when path is deep, more then two
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        def find_child_mock(*args):
            root = args[0]
            for folder in root.childEntity:
                if folder.name == args[1]:
                    return folder
            return None

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()
        si.content.searchIndex.FindChild = MagicMock(side_effect=find_child_mock)

        inner_folder = Mock()
        inner_folder.name = "inner"

        inner_decoy_folder = Mock()
        inner_decoy_folder.name = "decoy"

        inner_deep_folder = Mock()
        inner_deep_folder.name = "inner_deep_folder"

        inner_folder.childEntity = [inner_deep_folder, inner_decoy_folder]
        inner_decoy_folder.childEntity = [inner_folder]

        si.content.rootFolder = Mock()
        si.content.rootFolder.childEntity = [inner_decoy_folder, inner_folder]
        si.content.rootFolder.name = "rootFolder"

        "#act"
        result = pv_service.get_folder(si, "decoy/inner/inner_deep_folder/")

        "#assert"
        self.assertEqual(result, inner_deep_folder)
    def test_get_folder_path_empty(self):
        """
        Checks if the receiving path is empty, the function returns root folder
        """
        "#arrange"
        folder_name = "rootFolder"

        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = folder_name

        "#act"
        result = pv_service.get_folder(si, "")

        "#assert"
        self.assertEqual(result.name, folder_name)
Example #19
0
    def test_get_host_by_name_is_Host_type(self):
        """
        Checks whether the function can passes host type
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        def find_obj_by_path_mock(*args, **kwargs):
            return args[3] == pv_service.Host

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        pv_service.find_obj_by_path = Mock(side_effect=find_obj_by_path_mock)

        '#act'
        result = pv_service.find_host_by_name(si, '', '')

        '#assert'
        self.assertTrue(result)
Example #20
0
    def test_get_folder_path_empty(self):
        """
        Checks if the receiving path is empty, the function returns root folder
        """
        '#arrange'
        folder_name = 'rootFolder'

        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = folder_name

        '#act'
        result = pv_service.get_folder(si, '')

        '#assert'
        self.assertEqual(result.name, folder_name)
    def test_get_network_by_name_is_network_type(self):
        """
        Checks whether the function can passes network type
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        def find_obj_by_path_mock(*args, **kwargs):
            return args[3] == pv_service.Network

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        pv_service.find_obj_by_path = Mock(side_effect=find_obj_by_path_mock)

        "#act"
        result = pv_service.find_network_by_name(si, "", "")

        "#assert"
        self.assertTrue(result)
Example #22
0
    def test_get_vm_by_uuid_vm_in_folder(self):
        """
        Checks whether the function can grab object by uuid
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        def find_by_uuid_mock(*args, **kwargs):
            folder = args[0]['vmFolder_test']
            uuid = args[1]
            isVM = args[2]
            if not isVM:
                return False

            for item in folder:
                if item == uuid: return True
            return False

        get_folder = MagicMock(
            return_value={
                'vmFolder_test': [
                    'b8e4d6de-a2ff-11e5-bf7f-feff819cdc9f',
                    'b8e4da4e-a2ff-11e5-bf7f-feff819cdc9f'
                ]
            })
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.searchIndex = Mock()
        si.content.searchIndex.FindByUuid = Mock(side_effect=find_by_uuid_mock)

        '#act'
        result = pv_service.find_by_uuid(
            si, '', 'b8e4da4e-a2ff-11e5-bf7f-feff819cdc9f')

        '#assert'
        self.assertTrue(result)
    def test_destroy_vm_by_uuid(self):
        """
        Checks whether the vm found and call to be destroy
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()

        pv_service.find_by_uuid = Mock(return_value=Mock(name="vm"))
        pv_service.destroy_vm = Mock(return_value=True)

        "#act"
        result = pv_service.destroy_vm_by_uuid(si, "thisuni-vers-ally-uniq-ueidentifier", "fake/path")

        "#assert"
        self.assertTrue(result)
        self.assertTrue(pv_service.find_by_uuid.called)
        self.assertTrue(pv_service.destroy_vm.called)
    def test_clone_vm_resource_pool_is_not_empty(self):
        """
        Checks clone_vm
        """
        "#arrange"
        si = Mock(spec=vim.ServiceInstance)
        vim_mock = Mock()
        vim_mock.vm = Mock()
        vim_mock.vm.RelocateSpec = Mock()
        vim_mock.vm.CloneSpec = Mock()
        vim_mock.Datacenter = vim.Datacenter
        vim_mock.Datastore = vim.Datastore
        vim_mock.ServiceInstance = vim.ServiceInstance

        datacenter = Mock(spec=vim.Datacenter)
        template = Mock(spec=vim.VirtualMachine)
        template.datastore = [Mock()]

        pv_service = pyVmomiService(None, None, vim_mock)
        pv_service.find_vm_by_name = Mock(return_value=template)
        pv_service.get_obj = Mock()
        pv_service.get_folder = Mock(return_value=datacenter)
        pv_service.wait_for_task = Mock()

        params = pv_service.CloneVmParameters(
            si=si, template_name="my_temp", vm_name="my_name", vm_folder="my_folder", resource_pool="my_resource_pool"
        )

        "#act"
        res = pv_service.clone_vm(params)

        "#assert"
        self.assertIsNone(res.error)
        self.assertTrue(vim_mock.vm.RelocateSpec.called)
        self.assertTrue(vim_mock.vm.CloneSpec.called)
        self.assertTrue(pv_service.get_folder.called)
        self.assertTrue(pv_service.find_vm_by_name.called)
        self.assertTrue(pv_service.get_obj.called)
        self.assertTrue(pv_service.wait_for_task.called)
Example #25
0
    def test_destroy_vm_by_name(self):
        """
        Checks whether the vm found and call to be destroy
        """
        '#arrange'
        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())
        si.content.searchIndex = Mock()

        pv_service.find_vm_by_name = Mock(return_value=Mock(name='vm'))
        pv_service.destroy_vm = Mock(return_value=True)

        '#act'
        result = pv_service.destroy_vm_by_name(si, 'vm_name:name', 'fake/path')

        '#assert'
        self.assertTrue(result)
        self.assertTrue(pv_service.find_vm_by_name.called)
        self.assertTrue(pv_service.destroy_vm.called)
    def test_get_vm_by_uuid_vm_in_folder(self):
        """
        Checks whether the function can grab object by uuid
        """
        "#arrange"
        pv_service = pyVmomiService(None, None)

        def find_by_uuid_mock(*args, **kwargs):
            folder = args[0]["vmFolder_test"]
            uuid = args[1]
            isVM = args[2]
            if not isVM:
                return False

            for item in folder:
                if item == uuid:
                    return True
            return False

        get_folder = MagicMock(
            return_value={
                "vmFolder_test": ["b8e4d6de-a2ff-11e5-bf7f-feff819cdc9f", "b8e4da4e-a2ff-11e5-bf7f-feff819cdc9f"]
            }
        )
        pv_service.get_folder = get_folder

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.searchIndex = Mock()
        si.content.searchIndex.FindByUuid = Mock(side_effect=find_by_uuid_mock)

        "#act"
        result = pv_service.find_by_uuid(si, "", "b8e4da4e-a2ff-11e5-bf7f-feff819cdc9f")

        "#assert"
        self.assertTrue(result)
    def test_get_object_by_path_no_folder_found(self):
        """
        Checks if the receiving path that does not exist
        """
        "#arrange"
        folder_name = "rootFolder"

        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = folder_name
        pv_service.get_folder = Mock(return_value=None)

        "#act"
        result = pv_service.find_obj_by_path(si, "nothing/to/be/found", "fake_vm", pv_service.VM)

        "#assert"
        self.assertIsNone(result)
        self.assertTrue(pv_service.get_folder.called)
Example #28
0
    def test_get_object_by_path_no_folder_found(self):
        """
        Checks if the receiving path that does not exist
        """
        '#arrange'
        folder_name = 'rootFolder'

        pv_service = pyVmomiService(None, None)

        si = create_autospec(spec=vim.ServiceInstance)
        si.RetrieveContent = Mock()
        si.content = create_autospec(spec=vim.ServiceInstanceContent())

        si.content.rootFolder = Mock()
        si.content.rootFolder.name = folder_name
        pv_service.get_folder = Mock(return_value=None)

        '#act'
        result = pv_service.find_obj_by_path(si, 'nothing/to/be/found',
                                             'fake_vm', pv_service.VM)

        '#assert'
        self.assertIsNone(result)
        self.assertTrue(pv_service.get_folder.called)