예제 #1
0
 def request_connected_macs(self, subnet):
     """Request and return the MAC addresses attached to `subnet`."""
     url = reverse("network_handler",
                   args=[convert_to_network_name(subnet)])
     response = self.client.get(url, {"op": "list_connected_macs"})
     self.assertEqual(http.client.OK, response.status_code)
     return json_load_bytes(response.content)
예제 #2
0
    def test_GET_sorts_by_name(self):
        subnets = [
            factory.make_Subnet(name=factory.make_name("subnet").lower())
            for _ in range(3)
        ]
        response = self.client.get(reverse('networks_handler'))
        self.assertEqual(http.client.OK, response.status_code,
                         response.content)

        self.assertEqual(
            sorted(convert_to_network_name(subnet) for subnet in subnets),
            [network['name'] for network in json_load_bytes(response.content)])
예제 #3
0
 def test_GET_ignores_duplicates(self):
     subnet = factory.make_Subnet()
     interface = self.make_interface(subnets=[subnet])
     node = interface.node
     response = self.client.get(reverse('networks_handler'),
                                {'node': [node.system_id, node.system_id]})
     self.assertEqual(http.client.OK, response.status_code,
                      response.content)
     self.assertEqual(
         {convert_to_network_name(subnet)},
         {network['name']
          for network in json_load_bytes(response.content)})
예제 #4
0
    def test_GET_filters_by_node(self):
        subnets = [factory.make_Subnet() for _ in range(5)]
        interface = self.make_interface(subnets=subnets[1:3])
        node = interface.node
        response = self.client.get(reverse('networks_handler'),
                                   {'node': [node.system_id]})
        self.assertEqual(http.client.OK, response.status_code,
                         response.content)

        self.assertEqual(
            {convert_to_network_name(subnet)
             for subnet in subnets[1:3]},
            {network['name']
             for network in json_load_bytes(response.content)})
예제 #5
0
    def test_GET_combines_node_filters_as_intersection_of_networks(self):
        subnets = [factory.make_Subnet() for _ in range(5)]
        interface1 = self.make_interface(subnets=subnets[1:3])
        interface2 = self.make_interface(subnets=subnets[2:4])
        node1 = interface1.node
        node2 = interface2.node
        # Attach another interface to node1.
        self.make_interface(subnets=subnets[1:2], node=node1)

        response = self.client.get(
            reverse('networks_handler'),
            {'node': [node1.system_id, node2.system_id]})
        self.assertEqual(http.client.OK, response.status_code,
                         response.content)

        self.assertEqual(
            {convert_to_network_name(subnets[2])},
            {network['name']
             for network in json_load_bytes(response.content)})