Esempio n. 1
0
def test_prefixlist_init():
    PrefixList()

    pfx = PrefixList(prefixes0)

    assert 4 == len(pfx.ipv4)
    assert 2 == len(pfx.ipv6)
    assert 6 == len(pfx)
Esempio n. 2
0
def test_prefixlist_append():
    pfx0 = PrefixList(prefixes0)
    pfx1 = PrefixList()

    for each in prefixes0:
        pfx1.append(each)

    print pfx0
    print pfx1
    assert pfx0 == pfx1
Esempio n. 3
0
def test_prefixlist_set():
    pfx0 = PrefixList(prefixes0)
    pfx1 = PrefixList(prefixes0)
    assert pfx0 == pfx1

    idx = len(prefixes0) - 1
    pfx1[idx] = prefixes0[idx]
    assert pfx0 == pfx1

    pfx1[idx] = pfx0[idx]
    assert pfx0 == pfx1
Esempio n. 4
0
def test_aggregate_single():
    prefixlist = [
        '10.0.1.0/24',
    ]
    expected = [
        '10.0.1.0/24',
    ]
    pfx = PrefixList(prefixlist)

    assert expected == pfx.aggregate().str_list()
    assert PrefixList(prefixlist) == pfx
Esempio n. 5
0
def test_aggregate_combine_multi():
    prefixlist = [
        '10.0.0.0/24',
        '10.0.1.0/24',
        '10.0.2.0/23',
    ]
    expected = [
        '10.0.0.0/22',
    ]

    pfx = PrefixList(prefixlist)

    assert expected == pfx.aggregate().str_list()
    assert PrefixList(prefixlist) == pfx
Esempio n. 6
0
def test_prefixlist_eq():
    pfx0 = PrefixList(prefixes0)
    pfx1 = PrefixList(prefixes0)
    assert pfx0 == pfx1

    pfx1.pop()
    assert pfx0 != pfx1

    with pytest.raises(TypeError) as e:
        pfx0 != "string"
    assert "object not PrefixList type" == e.value.message

    with pytest.raises(TypeError) as e:
        pfx0 != "string"
    assert "object not PrefixList type" == e.value.message
Esempio n. 7
0
def test_aggregate_super():
    prefixlist = [
        '10.0.1.0/24',
        '10.0.0.0/20',
        '2001:db8::/32',
        '2001:db8:1::/64',
    ]
    expected = [
        '10.0.0.0/20',
        '2001:db8::/32',
    ]
    pfx = PrefixList(prefixlist)

    assert expected == pfx.aggregate().str_list()
    assert PrefixList(prefixlist) == pfx
Esempio n. 8
0
def prefixlist(ctx, as_set, output, output_format, proto, **kwargs):
    """ get prefix list for specified as-sets """
    if kwargs.get('debug', False):
        logging.basicConfig(level=logging.DEBUG)

    if kwargs.get('fancy', 0):
        prefixes = PrefixSet(aggregate=kwargs['aggregate'])
    else:
        prefixes = PrefixList()
    bgpfuc = bgpfu.client.IRRClient()
    with bgpfuc as c:
        if kwargs.get('sources', False):
            c.set_sources(kwargs['sources'])
#        prefixes = c.get_prefixes(as_set, proto)

        for chunk in c.iter_prefixes(as_set, proto):
            prefixes.iter_add(chunk)

        if not kwargs['fancy'] and kwargs['aggregate']:
            prefixes = prefixes.aggregate()

        with click.open_file(output, 'w') as fobj:
            outfmt.write(output_format, fobj, prefixes.str_list())

        print("LEN {}".format(len(prefixes)))
Esempio n. 9
0
def test_prefixlist_str_list():
    pfx0 = PrefixList(prefixes0)
    assert prefixes0 == pfx0.str_list()