コード例 #1
0
ファイル: dependencies.py プロジェクト: javierdiazp/myros
    def install_rapp_dependencies(self, rapp_names):
        '''
        Install the dependencies for a given list of Rapps.

        :param rapp_name: A C{list} of ROCON URIs
        :raises: NonInstallableRappException: Any of the ROCON URIs are not installable
        '''
        deps = self.check_rapp_dependencies(rapp_names)

        uninstallable_rapps = [k for k, v in deps.items() if v.noninstallable]
        if uninstallable_rapps:
            raise NonInstallableRappException(uninstallable_rapps)

        installable = [d for v in deps.values() for d in v.installable]
        pkg_deps = list(set(installable))

        rosdep_installer = RosdepInstaller(self.installer_context, self.lookup)
        rosdep_installer.install_resolved(self.default_key, pkg_deps)
コード例 #2
0
    def install_rapp_dependencies(self, rapp_names):
        '''
        Install the dependencies for a given list of Rapps.

        :param rapp_name: A C{list} of ROCON URIs
        :raises: NonInstallableRappException: Any of the ROCON URIs are not installable
        '''
        deps = self.check_rapp_dependencies(rapp_names)

        uninstallable_rapps = [k for k, v in deps.items() if v.noninstallable]
        if uninstallable_rapps:
            raise NonInstallableRappException(uninstallable_rapps)

        installable = [d for v in deps.values() for d in v.installable]
        pkg_deps = list(set(installable))

        rosdep_installer = RosdepInstaller(self.installer_context, self.lookup)
        rosdep_installer.install_resolved(self.default_key, pkg_deps)
コード例 #3
0
def test_RosdepInstaller_install_resolved():
    from rosdep2 import create_default_installer_context
    from rosdep2.lookup import RosdepLookup
    from rosdep2.installers import RosdepInstaller
    from rosdep2.platforms.debian import APT_INSTALLER
    
    from rosdep2.lookup import RosdepLookup
    rospack, rosstack = get_test_rospkgs()
    
    # create our test fixture.  use most of the default toolchain, but
    # replace the apt installer with one that we can have more fun
    # with.  we will do all tests with ubuntu lucid keys -- other
    # tests should cover different resolution cases.
    sources_loader = create_test_SourcesListLoader()
    lookup = RosdepLookup.create_from_rospkg(rospack=rospack, rosstack=rosstack, sources_loader=sources_loader)
    context = create_default_installer_context()
    context.set_os_override('ubuntu', 'lucid')
    installer = RosdepInstaller(context, lookup)
    
    with fakeout() as (stdout, stderr):
        installer.install_resolved(APT_INSTALLER, [], simulate=True, verbose=False)
    with fakeout() as (stdout, stderr):
        installer.install_resolved(APT_INSTALLER, [], simulate=True, verbose=True)
    assert stdout.getvalue().strip() == '#No packages to install'
    with fakeout() as (stdout, stderr):            
        installer.install_resolved(APT_INSTALLER, ['rosdep-fake1', 'rosdep-fake2'], simulate=True, verbose=True)
    stdout_lines = [x.strip() for x in stdout.getvalue().split('\n') if x.strip()]
    assert stdout_lines == ['#[apt] Installation commands:',
                            'sudo apt-get install rosdep-fake1',
                            'sudo apt-get install rosdep-fake2',
                            ], ("%s: %s"%(stdout.getvalue(), stdout_lines))
コード例 #4
0
def test_RosdepInstaller_install_resolved():
    from rosdep2 import create_default_installer_context
    from rosdep2.lookup import RosdepLookup
    from rosdep2.installers import RosdepInstaller
    from rosdep2.platforms.debian import APT_INSTALLER

    from rosdep2.lookup import RosdepLookup
    rospack, rosstack = get_test_rospkgs()

    # create our test fixture.  use most of the default toolchain, but
    # replace the apt installer with one that we can have more fun
    # with.  we will do all tests with ubuntu lucid keys -- other
    # tests should cover different resolution cases.
    sources_loader = create_test_SourcesListLoader()
    lookup = RosdepLookup.create_from_rospkg(rospack=rospack,
                                             rosstack=rosstack,
                                             sources_loader=sources_loader)
    context = create_default_installer_context()
    context.set_os_override('ubuntu', 'lucid')
    installer = RosdepInstaller(context, lookup)

    with fakeout() as (stdout, stderr):
        installer.install_resolved(APT_INSTALLER, [],
                                   simulate=True,
                                   verbose=False)
    with fakeout() as (stdout, stderr):
        installer.install_resolved(APT_INSTALLER, [],
                                   simulate=True,
                                   verbose=True)
    assert stdout.getvalue().strip() == '#No packages to install'
    with fakeout() as (stdout, stderr):
        try:
            installer.install_resolved(APT_INSTALLER,
                                       ['rosdep-fake1', 'rosdep-fake2'],
                                       simulate=True,
                                       verbose=True)
        except OSError as e:
            if str(e).count('[Errno 2] No such file or directory') == 0:
                raise
            return True
    stdout_lines = [
        x.strip() for x in stdout.getvalue().split('\n') if x.strip()
    ]
    assert stdout_lines == [
        '#[apt] Installation commands:',
        'sudo apt-get install rosdep-fake1',
        'sudo apt-get install rosdep-fake2',
    ], ("%s: %s" % (stdout.getvalue(), stdout_lines))