def test_config_view_with_multiple_ios_neighbor(self):
        """
        Create a test IOS router, with 100 ipv4 and ipv6 neighbors
        then check the config view.
        """
        test_router = create_router('ios')
        test_asn = create_aut_num('65001')
        neighbor_count = 100

        for i in range(1, neighbor_count):
            create_neighbor(test_router, test_asn, '1.1.' + str(i) + '.1')
            create_neighbor(test_router, test_asn,
                            '2001:db8:' + str(i) + '::1')

        url = reverse(
            'op_webgui:router_config',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)

        for i in range(1, neighbor_count):
            v4_text = 'neighbor 1.1.' + str(i) + '.1 remote-as 65001'
            v6_text = 'neighbor 2001:db8:' + str(i) + '::1 remote-as 65001'
            self.assertContains(response, v4_text)
            self.assertContains(response, v6_text)
Exemple #2
0
    def test_config_view_with_multiple_ios_address(self):
        """
        Create a test IOS router, then add 100 ipv4 and ipv6 addresses,
        confirm they are in the final template.
        """
        test_router = create_router('ios')
        test_interface = create_interface(test_router)
        address_count = 100

        for i in range(1, address_count):
            create_v4_address(test_interface, '1.1.' + str(i) + '.1')
            create_v6_address(test_interface, '2600:' + str(i) + '::1')

        url = reverse(
            'op_webgui:router_config',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)

        for i in range(1, address_count):
            self.assertContains(
                response, 'ip address 1.1.' + str(i) + '.1 255.255.255.0')
            self.assertContains(response,
                                'ipv6 address 2600:' + str(i) + '::1/64')
    def test_create_router_and_view_detail(self):
        test_router = create_router('junos')
        url = reverse('api:routers_detail', kwargs={'pk': test_router.pk})

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(router.objects.count(), 1)
        self.assertEqual(router.objects.get().hostname, 'test-router')
    def test_create_ipv4_static_route_form_view(self):
        """
        Create a router, then test that the create a static route page view is displayed correctly.
        """
        test_router = create_router('junos')
        response = self.client.get(
            reverse('op_webgui:ipv4_static_create',
                    kwargs={'router_id': test_router.id}))

        self.assertEqual(response.status_code, 200)
Exemple #5
0
    def test_index_view_with_routers(self):
        """
        Create a router, then check that the view reflects this.
        """
        test_router      = create_router('ios')
        response         = self.client.get(reverse('op_webgui:router_list'))

        self.assertQuerysetEqual(
            response.context['router_list'], ['<router: test-router>']
        )
Exemple #6
0
    def test_router_with_no_intefaces(self):
        """
        Show no results if there are no interfaces.
        """
        one_router       = create_router('junos')

        response         = self.client.get(reverse('op_webgui:router_detail',
                                           kwargs={'router_id': one_router.id})
                                          )

        self.assertEqual(response.status_code, 200)
        self.assertQuerysetEqual(response.context['router'].interface_set.all(), [])
    def test_edit_ipv4_static_route_form_view(self):
        """
        Create a router, and static route, then check that the edit form view is displayed correctly.
        """
        test_router = create_router('junos')
        static_route = create_v4_static(test_router, '192.0.2.0')

        response = self.client.get(
            reverse('op_webgui:ipv4_static_edit',
                    kwargs={'ipv4_static_id': static_route.id}))

        self.assertEqual(response.status_code, 200)
    def test_create_neighbor_form_view(self):
        """
        Create a test router, and then test the form view of create display.
        """
        test_router = create_router('junos')
        url = reverse(
            'op_webgui:neighbor_create',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
    def test_config_view_with_multiple_junos_neighbor(self):
        """
        Create a test IOS router, with 100 ipv4 and ipv6 neighbors
        then check the config view.
        """
        test_router = create_router('junos')
        test_asn_one = create_aut_num('65001')
        test_asn_two = create_aut_num('65002')
        neighbor_count = 50

        asn_one_config = '        group test-asn {\n'
        asn_one_config += '            type external;\n'

        asn_two_config = asn_one_config
        asn_two_config += '            peer-as 65002; \n'

        asn_one_config += '            peer-as 65001; \n'

        for i in range(1, neighbor_count):
            create_neighbor(test_router, test_asn_one, '1.1.' + str(i) + '.1')
            asn_one_config += '            neighbor 1.1.' + str(i) + '.1; \n'

            create_neighbor(test_router, test_asn_two, '2.2.' + str(i) + '.1')
            asn_two_config += '            neighbor 2.2.' + str(i) + '.1; \n'

        for i in range(1, neighbor_count):
            create_neighbor(test_router, test_asn_one,
                            '2001:db8:' + str(i) + '::1')
            asn_one_config += '            neighbor 2001:db8:'
            asn_one_config += str(i) + '::1; \n'

            create_neighbor(test_router, test_asn_two,
                            '2001:db8:' + str(i) + ':2::1')
            asn_two_config += '            neighbor 2001:db8:'
            asn_two_config += str(i) + ':2::1; \n'

        asn_one_config += '        }'
        asn_two_config += '        }'
        url = reverse(
            'op_webgui:router_config',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, asn_one_config)
        self.assertContains(response, asn_two_config)
    def test_config_view_with_junos_static_route(self):
        """
        Create a JunOS router, interface, and IP addresses, then check the configuration template output.
        """
        test_router = create_router('junos')
        test_v4_route = create_v4_static(test_router, '10.0.0.0')
        test_v6_route = create_v6_static(test_router, '2001:db8:100::')

        response = self.client.get(
            reverse('op_webgui:router_config',
                    kwargs={'router_id': test_router.id}))

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'route 10.0.0.0/16 next-hop 172.16.0.1')
        self.assertContains(response,
                            'route 2001:db8:100::/48 next-hop 2001:db8::1')
    def test_create_interface_and_view_detail(self):
        """
        Create an interface object, then view the detailed api call.
        """
        test_router = create_router('junos')
        test_interface = interface.objects.create(router=test_router,
                                                  name='ge-0/0/0',
                                                  description='test-interface')
        url = reverse('api:interfaces_detail',
                      kwargs={'pk': test_interface.pk})

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(interface.objects.count(), 1)
        self.assertEqual(interface.objects.get(name='ge-0/0/0'),
                         test_interface)
    def test_edit_neighbor_form_view(self):
        """
        Create a test router, and neighbor, then test the form view of neighbor
        edit is displayed correctly.
        """
        test_router = create_router('junos')
        test_asn_one = create_aut_num('65001')
        test_neighbor = create_neighbor(test_router, test_asn_one,
                                        '2001:db8:1::1')
        url = reverse(
            'op_webgui:neighbor_edit',
            kwargs={'neighbor_id': test_neighbor.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
    def test_create_logical_interface_and_view_detail(self):
        """
        Create a logical_interface object, then view the detailed api call.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        url = reverse(
            'api:logical_interfaces_detail',
            kwargs={'pk': test_interface.pk},
        )

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(logical_interface.objects.count(), 1)
        self.assertEqual(logical_interface.objects.get(name='10'),
                         test_interface)
Exemple #14
0
    def test_ipv4_address_create_form_view(self):
        """
        Create a test router and interface, then test the form view
        of ipv4_address_create is displayed correctly.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        url = reverse(
            'op_webgui:ipv4_address_create',
            kwargs={'logical_interface_id': test_interface.id},
        )

        response = self.client.get(url)

        test_text = 'test-router ge-0/0/0.10 (A logical test description.)'
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, test_text)
    def test_create_ipv4_static(self):
        """
        Create an ipv4_static object, with an api call.
        """
        test_router = create_router('junos')
        data = {
            "router": test_router.pk,
            "network": '192.0.2.0',
            "next_hop": '192.0.2.1',
        }
        url = reverse('api:ipv4_static')

        response = self.client.post(url, data, format='json')

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(ipv4_static.objects.count(), 1)
        self.assertEqual(str(ipv4_static.objects.get().network), '192.0.2.0')
    def test_create_interface(self):
        """
        Create an interface object, then view it in the api.
        """
        test_router = create_router('junos')
        data = {
            "router": test_router.pk,
            "name": 'ge-0/0/0',
            "description": 'test-interface',
        }
        url = reverse('api:interfaces')

        response = self.client.post(url, data, format='json')

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(interface.objects.count(), 1)
        self.assertEqual(str(interface.objects.get().name), 'ge-0/0/0')
    def test_create_bgp_neighbor(self):
        """
        Create a bgp neighbor object, then check if it exists.
        """
        test_router = create_router('junos')
        data = {
            "router": test_router.pk,
            "aut_num": test_router.local_aut_num.pk,
            "peer_ip": '192.0.2.1',
        }
        url = reverse('api:bgp_neighbor')

        response = self.client.post(url, data, format='json')

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(neighbor.objects.count(), 1)
        self.assertEqual(str(neighbor.objects.get().peer_ip), '192.0.2.1')
    def test_create_ipv4_address(self):
        """
        Create an ipv4_address object, then view it in the api.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        data = {
            "interface": test_interface.pk,
            "host": '192.0.2.1',
            "cidr": '24',
        }
        url = reverse('api:ipv4_address')

        response = self.client.post(url, data, format='json')

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(ipv4_address.objects.count(), 1)
        self.assertEqual(str(ipv4_address.objects.get().host), '192.0.2.1')
Exemple #19
0
    def test_config_view_with_one_junos_address(self):
        """
        Create a test JunOS router, with one ipv4 and one ipv6 address
        then check config view.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        test_v4_address = create_v4_address(test_interface, '1.1.1.1')
        test_v6_address = create_v6_address(test_interface, '2600::1')
        url = reverse(
            'op_webgui:router_config',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'address 1.1.1.1/24')
        self.assertContains(response, 'address 2600::1/64')
    def test_config_view_with_one_ios_neighbor(self):
        """
        Create a test IOS router, with one ipv4 and one ipv6 neighbors
        then check config view.
        """
        test_router = create_router('ios')
        test_asn = create_aut_num('65001')
        test_v4_neighbor = create_neighbor(test_router, test_asn, '1.1.1.1')
        test_v6_neighbor = create_neighbor(test_router, test_asn,
                                           '2001:db8::1')
        url = reverse(
            'op_webgui:router_config',
            kwargs={'router_id': test_router.id},
        )

        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'neighbor 1.1.1.1 remote-as 65001')
        self.assertContains(response, 'neighbor 2001:db8::1 remote-as 65001')
    def test_create_bgp_neighbor_and_view_detail(self):
        """
        Create a bgp neighbor, then test the detailed api view.
        """
        test_router = create_router('junos')
        test_asn = test_router.local_aut_num
        test_neighbor = neighbor.objects.create(
            router=test_router,
            aut_num=test_asn,
            peer_ip='192.0.2.1',
        )
        url = reverse(
            'api:bgp_neighbor_detail',
            kwargs={'pk': test_neighbor.pk},
        )

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(neighbor.objects.count(), 1)
        self.assertEqual(neighbor.objects.get().peer_ip, test_neighbor.peer_ip)
    def test_create_ipv4_address_and_view_detail(self):
        """
        Create an ipv4_address object, then view the detailed api call.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        test_address = ipv4_address.objects.create(
            interface=test_interface,
            host='192.0.2.1',
            cidr=24,
        )
        url = reverse(
            'api:ipv4_address_detail',
            kwargs={'pk': test_address.pk},
        )

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(ipv4_address.objects.count(), 1)
        self.assertEqual(ipv4_address.objects.get(host='192.0.2.1'),
                         test_address)
    def test_config_view_with_multiple_junos_static_route(self):
        """
        Create 100 static routes, and ensure they are templated properly.
        """
        test_router = create_router('junos')
        route_count = 100

        for i in range(1, route_count):
            create_v4_static(test_router, '10.' + str(i) + '.0.0')
            create_v6_static(test_router, '2001:db8:' + str(i) + '::')

        response = self.client.get(
            reverse('op_webgui:router_config',
                    kwargs={'router_id': test_router.id}))

        self.assertEqual(response.status_code, 200)

        for i in range(1, route_count):
            self.assertContains(
                response, 'route 10.' + str(i) + '.0.0/16 next-hop 172.16.0.1')
            self.assertContains(
                response,
                'route 2001:db8:' + str(i) + '::/48 next-hop 2001:db8::1')
Exemple #24
0
    def test_ipv4_address_edit_form_view(self):
        """
        Create a test router, interface and address, then test
        the form view of ipv4_address_edit is displayed correctly.
        """
        test_router = create_router('junos')
        test_interface = create_interface(test_router)
        test_address = create_v4_address(test_interface, '192.0.2.1')
        url = reverse(
            'op_webgui:ipv4_address_edit',
            kwargs={'ipv4_address_id': test_address.id},
        )

        response = self.client.get(url)

        test_text = ''.join([
            '<input type="text" name="host" value="192.0.2.1" ',
            'title="" required id="id_host" placeholder="Host" ',
            'class="form-control" />',
        ])

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, test_text)
    def test_create_ipv4_static_and_view_detail(self):
        """
        Create an ipv4 static object, then check the detailed api view.
        """
        test_router = create_router('junos')
        test_route = ipv4_static.objects.create(
            router=test_router,
            network='192.0.2.0',
            next_hop='192.0.2.1',
        )
        url = reverse(
            'api:ipv4_static_detail',
            kwargs={'pk': test_route.pk},
        )

        response = self.client.get(url, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(ipv4_static.objects.count(), 1)
        self.assertEqual(
            ipv4_static.objects.get(network='192.0.2.0'),
            test_route,
        )