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

« back to all changes in this revision

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

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright 2012, 2013 Canonical Ltd.  This software is licensed under the
 
1
# Copyright 2012-2014 Canonical Ltd.  This software is licensed under the
2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
3
 
4
4
"""Tests for `maasserver.populate_tags`."""
30
30
class TestPopulateTags(MAASServerTestCase):
31
31
 
32
32
    def test_populate_tags_task_routed_to_nodegroup_worker(self):
33
 
        nodegroup = factory.make_node_group()
34
 
        tag = factory.make_tag()
 
33
        nodegroup = factory.make_NodeGroup()
 
34
        tag = factory.make_Tag()
35
35
        task = self.patch(populate_tags_module, 'update_node_tags')
36
36
        populate_tags(tag)
37
37
        args, kwargs = task.apply_async.call_args
38
38
        self.assertEqual(nodegroup.work_queue, kwargs['queue'])
39
39
 
40
40
    def test_populate_tags_task_routed_to_all_nodegroup_workers(self):
41
 
        nodegroups = [factory.make_node_group() for i in range(5)]
42
 
        tag = factory.make_tag()
 
41
        nodegroups = [factory.make_NodeGroup() for i in range(5)]
 
42
        tag = factory.make_Tag()
43
43
        refresh = self.patch(populate_tags_module, 'refresh_worker')
44
44
        task = self.patch(populate_tags_module, 'update_node_tags')
45
45
        populate_tags(tag)
62
62
class TestPopulateTagsForSingleNode(MAASServerTestCase):
63
63
 
64
64
    def test_updates_node_with_all_applicable_tags(self):
65
 
        node = factory.make_node()
66
 
        factory.make_node_commission_result(
 
65
        node = factory.make_Node()
 
66
        factory.make_NodeResult_for_commissioning(
67
67
            node, commissioningscript.LSHW_OUTPUT_NAME, 0, b"<foo/>")
68
 
        factory.make_node_commission_result(
 
68
        factory.make_NodeResult_for_commissioning(
69
69
            node, commissioningscript.LLDP_OUTPUT_NAME, 0, b"<bar/>")
70
70
        tags = [
71
 
            factory.make_tag("foo", "/foo"),
72
 
            factory.make_tag("bar", "//lldp:bar"),
73
 
            factory.make_tag("baz", "/foo/bar"),
 
71
            factory.make_Tag("foo", "/foo"),
 
72
            factory.make_Tag("bar", "//lldp:bar"),
 
73
            factory.make_Tag("baz", "/foo/bar"),
74
74
            ]
75
75
        populate_tags_for_single_node(tags, node)
76
76
        self.assertItemsEqual(
77
77
            ["foo", "bar"], [tag.name for tag in node.tags.all()])
78
78
 
79
79
    def test_ignores_tags_with_unrecognised_namespaces(self):
80
 
        node = factory.make_node()
81
 
        factory.make_node_commission_result(
 
80
        node = factory.make_Node()
 
81
        factory.make_NodeResult_for_commissioning(
82
82
            node, commissioningscript.LSHW_OUTPUT_NAME, 0, b"<foo/>")
83
83
        tags = [
84
 
            factory.make_tag("foo", "/foo"),
85
 
            factory.make_tag("lou", "//nge:bar"),
 
84
            factory.make_Tag("foo", "/foo"),
 
85
            factory.make_Tag("lou", "//nge:bar"),
86
86
            ]
87
87
        populate_tags_for_single_node(tags, node)  # Look mom, no exception!
88
88
        self.assertSequenceEqual(
89
89
            ["foo"], [tag.name for tag in node.tags.all()])
90
90
 
91
91
    def test_ignores_tags_without_definition(self):
92
 
        node = factory.make_node()
93
 
        factory.make_node_commission_result(
 
92
        node = factory.make_Node()
 
93
        factory.make_NodeResult_for_commissioning(
94
94
            node, commissioningscript.LSHW_OUTPUT_NAME, 0, b"<foo/>")
95
95
        tags = [
96
 
            factory.make_tag("foo", "/foo"),
 
96
            factory.make_Tag("foo", "/foo"),
97
97
            Tag(name="empty", definition=""),
98
98
            Tag(name="null", definition=None),
99
99
            ]