~lutostag/ubuntu/trusty/maas/1.5.4

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_node_constraint_filter_forms.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2014-02-15 12:08:23 UTC
  • mto: This revision was merged to the branch mainline in revision 48.
  • Revision ID: package-import@ubuntu.com-20140215120823-u7dkitfy0h8tbruh
Tags: upstream-1.5+bzr1948
ImportĀ upstreamĀ versionĀ 1.5+bzr1948

Show diffs side-by-side

added added

removed removed

Lines of Context:
298
298
        node = factory.make_node(networks=[network, factory.make_network()])
299
299
        self.assertConstrainedNodes([node], {'networks': [network.name]})
300
300
 
 
301
    def test_not_networks_filters_by_name(self):
 
302
        networks = [factory.make_network() for _ in range(2)]
 
303
        nodes = [factory.make_node(networks=[network]) for network in networks]
 
304
        self.assertConstrainedNodes(
 
305
            {nodes[0]},
 
306
            {'not_networks': [networks[1].name]})
 
307
 
 
308
    def test_not_networks_filters_by_ip(self):
 
309
        networks = [factory.make_network() for _ in range(2)]
 
310
        nodes = [factory.make_node(networks=[network]) for network in networks]
 
311
        self.assertConstrainedNodes(
 
312
            {nodes[0]},
 
313
            {'not_networks': ['ip:%s' % networks[1].ip]})
 
314
 
 
315
    def test_not_networks_filters_by_vlan_tag(self):
 
316
        vlan_tags = range(2)
 
317
        networks = [factory.make_network(vlan_tag=tag) for tag in vlan_tags]
 
318
        nodes = [factory.make_node(networks=[network]) for network in networks]
 
319
        self.assertConstrainedNodes(
 
320
            {nodes[0]},
 
321
            {'not_networks': ['vlan:%d' % vlan_tags[1]]})
 
322
 
 
323
    def test_invalid_not_networks(self):
 
324
        form = AcquireNodeForm(data={'not_networks': 'ip:10.0.0.0'})
 
325
        self.assertEquals(
 
326
            (
 
327
                False,
 
328
                {
 
329
                    'not_networks': [
 
330
                        "Invalid parameter: list of networks required.",
 
331
                        ],
 
332
                },
 
333
            ),
 
334
            (form.is_valid(), form.errors))
 
335
 
 
336
        # The validator is unit-tested separately.  This just verifies that it
 
337
        # is being consulted.
 
338
        form = AcquireNodeForm(data={'not_networks': ['vlan:-1']})
 
339
        self.assertEquals(
 
340
            (False, {'not_networks': ["VLAN tag out of range (1-4094)."]}),
 
341
            (form.is_valid(), form.errors))
 
342
 
 
343
    def test_not_networks_combines_filters(self):
 
344
        network_by_name = factory.make_network()
 
345
        network_by_ip = factory.make_network()
 
346
        network_by_vlan = factory.make_network(vlan_tag=randint(1, 0xffe))
 
347
        factory.make_node(networks=[network_by_name])
 
348
        factory.make_node(networks=[network_by_name, network_by_ip])
 
349
        factory.make_node(networks=[network_by_name, network_by_vlan])
 
350
        factory.make_node(networks=[network_by_vlan])
 
351
        factory.make_node(networks=[network_by_vlan, factory.make_network()])
 
352
        right_node = factory.make_node(networks=[factory.make_network()])
 
353
 
 
354
        self.assertConstrainedNodes(
 
355
            {right_node},
 
356
            {
 
357
                'not_networks': [
 
358
                    network_by_name.name,
 
359
                    'ip:%s' % network_by_ip.ip,
 
360
                    'vlan:%d' % network_by_vlan.vlan_tag,
 
361
                    ],
 
362
            })
 
363
 
301
364
    def test_connected_to(self):
302
365
        mac1 = MAC('aa:bb:cc:dd:ee:ff')
303
366
        mac2 = MAC('00:11:22:33:44:55')