~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

Viewing changes to src/maasserver/views/tests/test_networks.py

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
        # Network listing displays the network name, description,
58
58
        # network information and VLAN tag.
59
59
        self.client_log_in()
60
 
        factory.make_networks(3)
 
60
        factory.make_Networks(3)
61
61
        networks = Network.objects.all()
62
62
        # Attach some NICs to some of the networks.
63
 
        [factory.make_mac_address(networks=networks[1:3]) for _ in range(12)]
 
63
        [factory.make_MACAddress(networks=networks[1:3]) for _ in range(12)]
64
64
        response = self.client.get(reverse('network-list'))
65
65
        details_list = [
66
66
            [
68
68
                network.description[:20],
69
69
                '%s' % network.get_network(),
70
70
                '%s' % network.vlan_tag if network.vlan_tag else '',
 
71
                '%s' % (
 
72
                    network.default_gateway if network.default_gateway
 
73
                    else ''),
71
74
                '%d' % network.get_connected_nodes().count(),
72
75
            ]
73
76
            for network in networks]
77
80
    def test_network_list_displays_sorted_list_of_networks(self):
78
81
        # Networks are alphabetically sorted on the network list page.
79
82
        self.client_log_in()
80
 
        factory.make_networks(3, sortable_name=True)
 
83
        factory.make_Networks(3, sortable_name=True)
81
84
        networks = Network.objects.all()
82
85
        sorted_networks = sorted(networks, key=attrgetter('name'))
83
86
        response = self.client.get(reverse('network-list'))
91
94
 
92
95
    def test_network_list_displays_links_to_network_node(self):
93
96
        self.client_log_in()
94
 
        factory.make_networks(3, sortable_name=True)
 
97
        factory.make_Networks(3, sortable_name=True)
95
98
        networks = Network.objects.all()
96
99
        sorted_networks = sorted(networks, key=attrgetter('name'))
97
100
        response = self.client.get(reverse('network-list'))
107
110
    def test_network_listing_is_paginated(self):
108
111
        self.patch(NetworkListView, "paginate_by", 3)
109
112
        self.client_log_in(as_admin=True)
110
 
        factory.make_networks(4)
 
113
        factory.make_Networks(4)
111
114
        response = self.client.get(reverse('network-list'))
112
115
        self.assertEqual(httplib.OK, response.status_code)
113
116
        doc = fromstring(response.content)
120
123
 
121
124
    def test_network_list_does_not_contain_edit_and_delete_links(self):
122
125
        self.client_log_in()
123
 
        networks = factory.make_networks(3)
 
126
        networks = factory.make_Networks(3)
124
127
        response = self.client.get(reverse('network-list'))
125
128
        network_edit_links = [
126
129
            reverse('network-edit', args=[network.name])
149
152
 
150
153
    def test_network_list_contains_edit_links(self):
151
154
        self.client_log_in(as_admin=True)
152
 
        networks = factory.make_networks(3)
 
155
        networks = factory.make_Networks(3)
153
156
        network_edit_links = [
154
157
            reverse('network-edit', args=[network.name])
155
158
            for network in networks
196
199
            'ip': "%s" % network.cidr.ip,
197
200
            'netmask': "%s" % network.netmask,
198
201
            'vlan_tag': factory.make_vlan_tag(),
 
202
            'default_gateway': factory.getRandomIPAddress(),
 
203
            'dns_servers': factory.getRandomIPAddress(),
199
204
        }
200
205
        response = self.client.post(reverse('network-add'), definition)
201
206
        self.assertEqual(httplib.FOUND, response.status_code)
217
222
        # The Network detail view displays the network name and the network
218
223
        # description.
219
224
        self.client_log_in()
220
 
        network = factory.make_network()
 
225
        network = factory.make_Network()
221
226
        response = self.client.get(
222
227
            reverse('network-view', args=[network.name]))
223
228
        self.assertThat(
232
237
 
233
238
    def test_network_detail_displays_node_count(self):
234
239
        self.client_log_in()
235
 
        network = factory.make_network()
236
 
        [factory.make_mac_address(networks=[network]) for i in range(5)]
 
240
        network = factory.make_Network()
 
241
        [factory.make_MACAddress(networks=[network]) for i in range(5)]
237
242
        response = self.client.get(
238
243
            reverse('network-view', args=[network.name]))
239
244
        document = fromstring(response.content)
243
248
    def test_network_detail_escapes_description(self):
244
249
        nasty_description = 'A<B>C&D'
245
250
        self.client_log_in()
246
 
        network = factory.make_network(description=nasty_description)
 
251
        network = factory.make_Network(description=nasty_description)
247
252
        response = self.client.get(
248
253
            reverse('network-view', args=[network.name]))
249
254
        doc = fromstring(response.content)
256
261
 
257
262
    def test_network_detail_does_not_contain_edit_link(self):
258
263
        self.client_log_in()
259
 
        network = factory.make_network()
 
264
        network = factory.make_Network()
260
265
        response = self.client.get(
261
266
            reverse('network-view', args=[network.name]))
262
267
        network_edit_link = reverse('network-edit', args=[network.name])
264
269
 
265
270
    def test_network_detail_does_not_contain_delete_link(self):
266
271
        self.client_log_in()
267
 
        network = factory.make_network()
 
272
        network = factory.make_Network()
268
273
        response = self.client.get(
269
274
            reverse('network-view', args=[network.name]))
270
275
        network_delete_link = reverse('network-del', args=[network.name])
275
280
 
276
281
    def test_network_detail_contains_edit_link(self):
277
282
        self.client_log_in(as_admin=True)
278
 
        network = factory.make_network()
 
283
        network = factory.make_Network()
279
284
        response = self.client.get(
280
285
            reverse('network-view', args=[network.name]))
281
286
        network_edit_link = reverse('network-edit', args=[network.name])
283
288
 
284
289
    def test_network_detail_contains_delete_link(self):
285
290
        self.client_log_in(as_admin=True)
286
 
        network = factory.make_network()
 
291
        network = factory.make_Network()
287
292
        response = self.client.get(
288
293
            reverse('network-view', args=[network.name]))
289
294
        network_delete_link = reverse('network-del', args=[network.name])
294
299
 
295
300
    def test_cannot_access_network_edit(self):
296
301
        self.client_log_in()
297
 
        network = factory.make_network()
 
302
        network = factory.make_Network()
298
303
        response = self.client.post(
299
304
            reverse('network-edit', args=[network.name]))
300
305
        self.assertEqual(reverse('login'), extract_redirect(response))
304
309
 
305
310
    def test_network_edit(self):
306
311
        self.client_log_in(as_admin=True)
307
 
        network = factory.make_network()
 
312
        network = factory.make_Network()
308
313
        new_name = factory.make_name('name')
309
314
        new_description = factory.make_name('description')
310
315
        new_macs = [
311
 
            factory.make_mac_address()
 
316
            factory.make_MACAddress()
312
317
            for _ in range(3)]
 
318
        new_gateway = factory.getRandomIPAddress()
 
319
        new_dns_servers = factory.getRandomIPAddress()
313
320
        response = self.client.post(
314
321
            reverse('network-edit', args=[network.name]),
315
322
            data={
316
323
                'name': new_name,
317
324
                'description': new_description,
 
325
                'default_gateway': new_gateway,
318
326
                'mac_addresses': new_macs,
 
327
                'dns_servers': new_dns_servers,
319
328
            })
320
329
        self.assertEqual(
321
330
            reverse('network-list'), extract_redirect(response),
332
341
 
333
342
    def test_cannot_delete(self):
334
343
        self.client_log_in()
335
 
        network = factory.make_network()
 
344
        network = factory.make_Network()
336
345
        response = self.client.post(
337
346
            reverse('network-del', args=[network.name]))
338
347
        self.assertEqual(reverse('login'), extract_redirect(response))
343
352
 
344
353
    def test_deletes_network(self):
345
354
        self.client_log_in(as_admin=True)
346
 
        network = factory.make_network()
 
355
        network = factory.make_Network()
347
356
        response = self.client.post(
348
357
            reverse('network-del', args=[network.name]),
349
358
            {'post': 'yes'})
352
361
 
353
362
    def test_redirects_to_listing(self):
354
363
        self.client_log_in(as_admin=True)
355
 
        network = factory.make_network()
 
364
        network = factory.make_Network()
356
365
        response = self.client.post(
357
366
            reverse('network-del', args=[network.name]),
358
367
            {'post': 'yes'})
360
369
 
361
370
    def test_disconnects_macs(self):
362
371
        self.client_log_in(as_admin=True)
363
 
        network = factory.make_network()
364
 
        mac = factory.make_mac_address(networks=[network])
 
372
        network = factory.make_Network()
 
373
        mac = factory.make_MACAddress(networks=[network])
365
374
        response = self.client.post(
366
375
            reverse('network-del', args=[network.name]),
367
376
            {'post': 'yes'})