def test_it_should_expose_routers_or_the_test_network(self):
        n = TestNetwork(TestNetworkConfiguration())

        n._TestNetwork__taps[0].unbind()
        n._TestNetwork__taps[1].unbind()

        c = ComplianceTestCase(n, None)

        self.assertEqual(3, len(c.routers()))
        self.assertEqual('TR1', c.router(1).name)
        self.assertEqual('TR2', c.router(2).name)
        self.assertEqual('TR3', c.router(3).name)
    def test_it_should_expose_links_of_the_test_network(self):
        n = TestNetwork(TestNetworkConfiguration())

        n._TestNetwork__taps[0].unbind()
        n._TestNetwork__taps[1].unbind()

        c = ComplianceTestCase(n, None)

        self.assertEqual(3, len(c.links()))
        self.assertEqual('A', c.link(1).name)
        self.assertEqual('B', c.link(2).name)
        self.assertEqual('C', c.link(3).name)
    def test_it_should_expose_nodes_of_the_test_network(self):
        n = TestNetwork(TestNetworkConfiguration())

        n._TestNetwork__taps[0].unbind()
        n._TestNetwork__taps[1].unbind()

        c = ComplianceTestCase(n, None)

        self.assertEqual(4, len(c.nodes()))
        self.assertEqual('TN1', c.node(1).name)
        self.assertEqual('TN2', c.node(2).name)
        self.assertEqual('TN3', c.node(3).name)
        self.assertEqual('TN4', c.node(4).name)
Esempio n. 4
0
    def build_test_network(self):
        tn = TestNetwork(self.test_network())

        tn._TestNetwork__taps[0].unbind()
        tn._TestNetwork__taps[0] = MockTap(tn.link(2),
                                            MockInterface('if0', 'be:ef:ca:fe:09:01'),
                                            MockTargetInterface(ips=["2001:800:88:200::50", "fe80::50"], ll_protocol='Ethernet', link_addr='be:ef:ba:be:09:01'))
        tn._TestNetwork__taps[1].unbind()
        tn._TestNetwork__taps[1] = MockTap(tn.link(3),
                                            MockInterface('if1', 'be:ef:ca:fe:09:02'),
                                            MockTargetInterface(ips=["2001:900:88:200::50", "fe80::51"], ll_protocol='Ethernet', link_addr='be:ef:ba:be:09:02'))

        return tn
Esempio n. 5
0
    def setUp(self):
        self.test_network = TestNetwork(TestNetworkConfiguration())

        self.test_network._TestNetwork__taps[0].unbind()

        self.t1 = self.test_network._TestNetwork__taps[0] = MockTap(
            self.test_network.link(2), MockInterface('if0',
                                                     'be:ef:ca:fe:09:01'),
            MockTargetInterface(ips=["2001:800:88:200::50", "fe80::50"],
                                ll_protocol='Ethernet',
                                link_addr='be:ef:ba:be:09:01'))
        self.t2 = self.test_network._TestNetwork__taps[1] = MockTap(
            self.test_network.link(3), MockInterface('if1',
                                                     'be:ef:ca:fe:09:02'),
            MockTargetInterface(ips=["2001:900:88:200::50", "fe80::51"],
                                ll_protocol='Ethernet',
                                link_addr='be:ef:ba:be:09:02'))
Esempio n. 6
0
    def setUp(self):
        self.n = TestNetwork(TestNetworkConfiguration())
        
        self.n._TestNetwork__taps[0].unbind()
        self.n._TestNetwork__taps[1].unbind()

        self.n.node(1).if0.ips.append(IPAddress.identify("2001:500:88:200::10"))
        self.n.node(1).if0.ips.append(IPAddress.identify("fe80:500:88:200::10"))
        self.n.node(2).if0.ips.append(IPAddress.identify("2001:600:88:200::10"))
        self.n.node(2).if0.ips.append(IPAddress.identify("fe80:600:88:200::10"))
        self.n.node(3).if0.ips.append(IPAddress.identify("2001:600:88:200::11"))
        self.n.node(3).if0.ips.append(IPAddress.identify("fe80:600:88:200::11"))
        self.n.node(4).if0.ips.append(IPAddress.identify("2001:700:88:200::10"))
        self.n.node(4).if0.ips.append(IPAddress.identify("fe80:700:88:200::10"))

        self.n.router(1).if0.ips.append(IPAddress.identify("2001:600:88:200::1"))
        self.n.router(1).if0.ips.append(IPAddress.identify("fe80:600:88:200::1"))
        self.n.router(1).if1.ips.append(IPAddress.identify("2001:500:88:200::1"))
        self.n.router(1).if1.ips.append(IPAddress.identify("fe80:500:88:200::1"))

        self.n.router(1)._TestRouter__forwards_to_0.append(Network("2001:0600:0088:0200::/64"))
        self.n.router(1)._TestRouter__forwards_to_1.append(Network("2001:0500:0088:0200::/64"))

        self.n.router(2).if0.ips.append(IPAddress.identify("2001:600:88:200::2"))
        self.n.router(2).if0.ips.append(IPAddress.identify("fe80:600:88:200::2"))
        self.n.router(2).if1.ips.append(IPAddress.identify("2001:500:88:200::2"))
        self.n.router(2).if1.ips.append(IPAddress.identify("fe80:500:88:200::2"))

        self.n.router(3).if0.ips.append(IPAddress.identify("2001:600:88:200::3"))
        self.n.router(3).if0.ips.append(IPAddress.identify("fe80:600:88:200::3"))
        self.n.router(3).if1.ips.append(IPAddress.identify("2001:500:88:200::3"))
        self.n.router(3).if1.ips.append(IPAddress.identify("fe80:500:88:200::3"))

        self.ethx_s = MockInterface('if0', '00:b0:d0:86:bb:f7')
        self.ethx_t = TargetInterface(ips=[IPAddress.identify("2001:500:88:200::20"), IPAddress.identify("fe80:500:88:200::20")], link_addr="00:b0:d0:bb:cc:ff")
        self.ethx = Tap(self.n.link(2), self.ethx_s, self.ethx_t)

        self.ethy_s = MockInterface('if1', '00:b0:e0:86:bb:f7')
        self.ethy_t = TargetInterface(ips=[IPAddress.identify("2001:600:88:200::20"), IPAddress.identify("fe80:600:88:200::20")], link_addr="00:b0:e0:bb:cc:ff")
        self.ethy = Tap(self.n.link(3), self.ethy_s, self.ethy_t)
Esempio n. 7
0
    def setUp(self):
        self.test_network = TestNetwork(TestNetworkConfiguration())

        # replace the network taps with mocked taps, referencing mocked network
        # and target interfaces
        self.test_network._TestNetwork__taps[0].unbind()
        self.test_network._TestNetwork__taps[1].unbind()

        self.t1 = self.test_network._TestNetwork__taps[0] = MockTap(
            self.test_network.link(2), MockInterface('if0',
                                                     'be:ef:ca:fe:09:01'),
            MockTargetInterface(ips=["2001:800:88:200::50", "fe80::50"],
                                ll_protocol='Ethernet',
                                link_addr='be:ef:ba:be:09:01'))
        self.t2 = self.test_network._TestNetwork__taps[1] = MockTap(
            self.test_network.link(3), MockInterface('if1',
                                                     'be:ef:ca:fe:09:02'),
            MockTargetInterface(ips=["2001:900:88:200::50", "fe80::51"],
                                ll_protocol='Ethernet',
                                link_addr='be:ef:ba:be:09:02'))

        # grab references to the target interfaces and internal nodes for easy
        # reference throughout a test case
        self.ifx = self.test_network.tap(1).target_iface
        self.ify = self.test_network.tap(2).target_iface

        self.tn1 = self.test_network.node(1)
        self.tn2 = self.test_network.node(2)
        self.tn3 = self.test_network.node(3)
        self.tn4 = self.test_network.node(4)

        self.tr1 = self.test_network.router(1)

        # TODO: tr2 and tr3

        def _received_on_tn1(iface=0,
                             src=None,
                             dst=None,
                             lbda=None,
                             seq=None,
                             type=None,
                             timeout=5):
            return self.tn1.iface(iface).received(
                src=src,
                dst=dst == None
                and self.tn1.ip(iface=iface, offset='*', scope='*', type='*')
                or dst,
                lbda=lbda,
                seq=None,
                type=type)

        def _received_on_tn2(iface=0,
                             src=None,
                             dst=None,
                             lbda=None,
                             seq=None,
                             type=None,
                             timeout=5):
            return self.tn2.iface(iface).received(
                src=src,
                dst=dst == None
                and self.tn2.ip(iface=iface, offset='*', scope='*', type='*')
                or dst,
                lbda=lbda,
                seq=None,
                type=type)

        def _received_on_tn3(iface=0,
                             src=None,
                             dst=None,
                             lbda=None,
                             seq=None,
                             type=None,
                             timeout=5):
            return self.tn3.iface(iface).received(
                src=src,
                dst=dst == None
                and self.tn3.ip(iface=iface, offset='*', scope='*', type='*')
                or dst,
                lbda=lbda,
                seq=None,
                type=type)

        def _received_on_tn4(iface=0,
                             src=None,
                             dst=None,
                             lbda=None,
                             seq=None,
                             type=None,
                             timeout=5):
            return self.tn4.iface(iface).received(
                src=src,
                dst=dst == None
                and self.tn4.ip(iface=iface, offset='*', scope='*', type='*')
                or dst,
                lbda=lbda,
                seq=None,
                type=type)

        # override the #received() method on each of the TRs and TNs, to remove
        # the delay introduced
        self.tn1.received = _received_on_tn1
        self.tn2.received = _received_on_tn2
        self.tn3.received = _received_on_tn3
        self.tn4.received = _received_on_tn4

        self.ui = MockCallbacks(None)
        self.ui.test_network = self.test_network