diff options
author | Vincent Wong <duperduper@ucla.edu> | 2014-09-13 13:24:00 -0700 |
---|---|---|
committer | Vincent Wong <duperduper@ucla.edu> | 2014-09-13 13:24:00 -0700 |
commit | c269cbe996d28fef383ab7a5dbb0b1ae6b0015af (patch) | |
tree | 97180b2cd2748493942a338576635788056aaa31 | |
parent | 74b37400324ad31039f38618d05b9fdaf05815d4 (diff) | |
download | boto-c269cbe996d28fef383ab7a5dbb0b1ae6b0015af.tar.gz |
Fixed remove_tags not checking values, fixed test
Fixed Issue #2414. remove_tags now locally verifies that the value given for a
key matches the one in self.tags before deleting it.
Fixed TestRemoveTags.test_remove_tag_empty_value in ec2/test_ec2object. An
empty string is _not_ supposed to act like None to unconditionally delete the
tag. The original test acted like it does.
-rw-r--r-- | boto/ec2/ec2object.py | 3 | ||||
-rw-r--r-- | tests/unit/ec2/test_ec2object.py | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/boto/ec2/ec2object.py b/boto/ec2/ec2object.py index 8bc428db..2a43ed47 100644 --- a/boto/ec2/ec2object.py +++ b/boto/ec2/ec2object.py @@ -140,4 +140,5 @@ class TaggedEC2Object(EC2Object): ) for key, value in tags.iteritems(): if key in self.tags: - del self.tags[key] + if value is None or value == self.tags[key]: + del self.tags[key] diff --git a/tests/unit/ec2/test_ec2object.py b/tests/unit/ec2/test_ec2object.py index 4ece8d92..5664c1bc 100644 --- a/tests/unit/ec2/test_ec2object.py +++ b/tests/unit/ec2/test_ec2object.py @@ -138,7 +138,8 @@ class TestRemoveTags(AWSMockServiceTestCase): 'SignatureVersion', 'Timestamp', 'Version']) - self.assertEqual(taggedEC2Object.tags, {"key2": "value2"}) + self.assertEqual(taggedEC2Object.tags, + {"key1": "value1", "key2": "value2"}) if __name__ == '__main__': |