summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Wong <duperduper@ucla.edu>2014-09-13 13:24:00 -0700
committerVincent Wong <duperduper@ucla.edu>2014-09-13 13:24:00 -0700
commitc269cbe996d28fef383ab7a5dbb0b1ae6b0015af (patch)
tree97180b2cd2748493942a338576635788056aaa31
parent74b37400324ad31039f38618d05b9fdaf05815d4 (diff)
downloadboto-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.py3
-rw-r--r--tests/unit/ec2/test_ec2object.py3
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__':