~allenap/maas/nodetag

« back to all changes in this revision

Viewing changes to src/maasserver/models/tests/test_node.py

  • Committer: Gavin Panella
  • Date: 2014-09-14 19:28:57 UTC
  • Revision ID: gavin.panella@canonical.com-20140914192857-c7qpryf7xo0k3qif
Tests for new tags methods on Node.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1208
1208
        node.start_deployment()
1209
1209
        self.assertEqual(NODE_STATUS.DEPLOYING, reload_object(node).status)
1210
1210
 
 
1211
    def test_add_tags(self):
 
1212
        node = factory.make_Node()
 
1213
        other_node = factory.make_Node()
 
1214
        tags = [factory.make_Tag() for _ in xrange(3)]
 
1215
        node.add_tags(tags)
 
1216
        self.assertEqual(
 
1217
            {tag.name for tag in tags},
 
1218
            {tag.name for tag in node.tags.all()})
 
1219
        # Tags are added only to the specified node.
 
1220
        self.assertItemsEqual(
 
1221
            [], [tag.name for tag in other_node.tags.all()])
 
1222
 
 
1223
    def test_remove_tags(self):
 
1224
        node = factory.make_Node()
 
1225
        other_node = factory.make_Node()
 
1226
        tags = [factory.make_Tag() for _ in xrange(3)]
 
1227
        node.add_tags(tags)
 
1228
        other_node.add_tags(tags)
 
1229
        # Remove the first two tags.
 
1230
        node.remove_tags(tags[:2])
 
1231
        self.assertItemsEqual(
 
1232
            {tag.name for tag in tags[2:]},
 
1233
            {tag.name for tag in node.tags.all()})
 
1234
        # Tags are removed only from the specified node.
 
1235
        self.assertItemsEqual(
 
1236
            {tag.name for tag in tags},
 
1237
            {tag.name for tag in other_node.tags.all()})
 
1238
 
 
1239
    def test_clear_tags(self):
 
1240
        node = factory.make_Node()
 
1241
        other_node = factory.make_Node()
 
1242
        tags = [factory.make_Tag() for _ in xrange(3)]
 
1243
        node.add_tags(tags)
 
1244
        other_node.add_tags(tags)
 
1245
        # Clear tags.
 
1246
        node.clear_tags()
 
1247
        self.assertItemsEqual(
 
1248
            [], [tag.name for tag in node.tags.all()])
 
1249
        # Tags are cleared only from the specified node.
 
1250
        self.assertItemsEqual(
 
1251
            {tag.name for tag in tags},
 
1252
            {tag.name for tag in other_node.tags.all()})
 
1253
 
1211
1254
 
1212
1255
class NodeRoutersTest(MAASServerTestCase):
1213
1256