Ejemplo n.º 1
0
def test_InstallerContext_os_installers():
    from rosdep2.installers import InstallerContext, Installer
    from rospkg.os_detect import OsDetect
    detect = OsDetect()
    context = InstallerContext(detect)
    context.verbose = True

    os_key = 'ubuntu'
    try:
        context.get_os_installer_keys(os_key)
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.get_default_os_installer_key(os_key)
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.add_os_installer_key(os_key, 'fake-key')
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.set_default_os_installer_key(os_key, 'non-method')
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.set_default_os_installer_key(os_key, lambda self: 'fake-key')
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.get_default_os_installer_key('bad-os')
        assert False, "should have raised"
    except KeyError:
        pass

    installer_key1 = 'fake1'
    installer_key2 = 'fake2'

    class FakeInstaller(Installer):
        pass

    class FakeInstaller2(Installer):
        pass

    # configure our context with two valid installers
    context.set_installer(installer_key1, FakeInstaller())
    context.set_installer(installer_key2, FakeInstaller2())

    # start adding installers for os_key
    context.add_os_installer_key(os_key, installer_key1)
    assert context.get_os_installer_keys(os_key) == [installer_key1]

    # retest set_default_os_installer_key, now with installer_key not configured on os
    try:
        context.set_default_os_installer_key(os_key,
                                             lambda self: installer_key2)
        assert False, "should have raised"
    except KeyError as e:
        assert 'add_os_installer' in str(e), e

    # now properly add in key2
    context.add_os_installer_key(os_key, installer_key2)
    assert set(context.get_os_installer_keys(os_key)) == set(
        [installer_key1, installer_key2])

    # test default
    assert None == context.get_default_os_installer_key(os_key)
    context.set_default_os_installer_key(os_key, lambda self: installer_key1)
    assert installer_key1 == context.get_default_os_installer_key(os_key)
    context.set_default_os_installer_key(os_key, lambda self: installer_key2)
    assert installer_key2 == context.get_default_os_installer_key(os_key)

    # retest set_default_os_installer_key, now with invalid os
    try:
        context.set_default_os_installer_key('bad-os',
                                             lambda self: installer_key1)
        assert False, "should have raised"
    except KeyError:
        pass
def test_InstallerContext_os_installers():
    from rosdep2.installers import InstallerContext, Installer
    from rospkg.os_detect import OsDetect
    detect = OsDetect()
    context = InstallerContext(detect)
    context.verbose = True

    os_key = 'ubuntu'
    try:
        context.get_os_installer_keys(os_key)
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.get_default_os_installer_key(os_key)
        assert False, "should have raised"
    except KeyError:
        pass
    try:
        context.add_os_installer_key(os_key, 'fake-key')
        assert False, "should have raised"
    except KeyError: pass
    try:
        context.set_default_os_installer_key(os_key, 'fake-key')
        assert False, "should have raised"
    except KeyError: pass
    try:
        context.get_default_os_installer_key('bad-os')
        assert False, "should have raised"
    except KeyError: pass
    
    installer_key1 = 'fake1'
    installer_key2 = 'fake2'
    class FakeInstaller(Installer):
        pass
    class FakeInstaller2(Installer):
        pass

    # configure our context with two valid installers
    context.set_installer(installer_key1, FakeInstaller())
    context.set_installer(installer_key2, FakeInstaller2())

    # start adding installers for os_key
    context.add_os_installer_key(os_key, installer_key1)
    assert context.get_os_installer_keys(os_key) == [installer_key1]

    # retest set_default_os_installer_key, now with installer_key not configured on os
    try:
        context.set_default_os_installer_key(os_key, installer_key2)
        assert False, "should have raised"
    except KeyError as e:
        assert 'add_os_installer' in str(e), e

    # now properly add in key2
    context.add_os_installer_key(os_key, installer_key2)
    assert set(context.get_os_installer_keys(os_key)) == set([installer_key1, installer_key2])

    # test default
    assert None == context.get_default_os_installer_key(os_key)
    context.set_default_os_installer_key(os_key, installer_key1)
    assert installer_key1 == context.get_default_os_installer_key(os_key)
    context.set_default_os_installer_key(os_key, installer_key2)    
    assert installer_key2 == context.get_default_os_installer_key(os_key)

    # retest set_default_os_installer_key, now with invalid os
    try:
        context.set_default_os_installer_key('bad-os', installer_key1)
        assert False, "should have raised"
    except KeyError: pass
Ejemplo n.º 3
0
def test_InstallerContext_installers():
    from rosdep2.installers import InstallerContext, Installer
    from rospkg.os_detect import OsDetect
    detect = OsDetect()
    context = InstallerContext(detect)
    context.verbose = True

    key = 'fake-apt'
    try:
        installer = context.get_installer(key)
        assert False, "should have raised: %s" % (installer)
    except KeyError:
        pass

    class Foo:
        pass

    class FakeInstaller(Installer):
        pass

    class FakeInstaller2(Installer):
        pass

    # test TypeError on set_installer
    try:
        context.set_installer(key, 1)
        assert False, "should have raised"
    except TypeError:
        pass
    try:
        context.set_installer(key, Foo())
        assert False, "should have raised"
    except TypeError:
        pass
    try:
        # must be instantiated
        context.set_installer(key, FakeInstaller)
        assert False, "should have raised"
    except TypeError:
        pass

    installer = FakeInstaller()
    installer2 = FakeInstaller2()
    context.set_installer(key, installer)
    assert context.get_installer(key) == installer
    assert list(context.get_installer_keys()) == [key]

    # repeat with same args
    context.set_installer(key, installer)
    assert context.get_installer(key) == installer
    assert list(context.get_installer_keys()) == [key]

    # repeat with new installer
    context.set_installer(key, installer2)
    assert context.get_installer(key) == installer2
    assert list(context.get_installer_keys()) == [key]

    # repeat with new key
    key2 = 'fake-port'
    context.set_installer(key2, installer2)
    assert context.get_installer(key2) == installer2
    assert set(context.get_installer_keys()) == set([key, key2])

    # test installer deletion
    key3 = 'fake3'
    context.set_installer(key3, installer2)
    assert context.get_installer(key3) == installer2
    assert set(context.get_installer_keys()) == set([key, key2, key3])
    context.set_installer(key3, None)
    try:
        context.get_installer(key3)
        assert False
    except KeyError:
        pass
    assert set(context.get_installer_keys()) == set([key, key2])
def test_InstallerContext_installers():
    from rosdep2.installers import InstallerContext, Installer
    from rospkg.os_detect import OsDetect
    detect = OsDetect()
    context = InstallerContext(detect)
    context.verbose = True

    key = 'fake-apt'
    try:
        installer = context.get_installer(key)
        assert False, "should have raised: %s"%(installer)
    except KeyError: pass

    class Foo: pass
    class FakeInstaller(Installer):
        pass
    class FakeInstaller2(Installer):
        pass

    # test TypeError on set_installer
    try:
        context.set_installer(key, 1)
        assert False, "should have raised"
    except TypeError: pass
    try:
        context.set_installer(key, Foo())
        assert False, "should have raised"
    except TypeError: pass
    try:
        # must be instantiated
        context.set_installer(key, FakeInstaller)
        assert False, "should have raised"
    except TypeError: pass

    installer = FakeInstaller()
    installer2 = FakeInstaller2()
    context.set_installer(key, installer)
    assert context.get_installer(key) == installer
    assert context.get_installer_keys() == [key]

    # repeat with same args
    context.set_installer(key, installer)
    assert context.get_installer(key) == installer
    assert context.get_installer_keys() == [key]

    # repeat with new installer
    context.set_installer(key, installer2)
    assert context.get_installer(key) == installer2
    assert context.get_installer_keys() == [key]
    
    # repeat with new key
    key2 = 'fake-port'
    context.set_installer(key2, installer2)
    assert context.get_installer(key2) == installer2
    assert set(context.get_installer_keys()) == set([key, key2])

    # test installer deletion
    key3 = 'fake3'
    context.set_installer(key3, installer2)
    assert context.get_installer(key3) == installer2
    assert set(context.get_installer_keys()) == set([key, key2, key3])
    context.set_installer(key3, None)
    try:
        context.get_installer(key3)
        assert False
    except KeyError:
        pass
    assert set(context.get_installer_keys()) == set([key, key2])