Index: boto-2.40.0/boto/ec2/instance.py
===================================================================
--- boto-2.40.0.orig/boto/ec2/instance.py
+++ boto-2.40.0/boto/ec2/instance.py
@@ -631,7 +631,8 @@ class InstanceAttribute(dict):
'disableApiTermination',
'instanceInitiatedShutdownBehavior',
'rootDeviceName', 'blockDeviceMapping', 'sourceDestCheck',
- 'groupSet']
+ 'groupSet', 'productCodes', 'ebsOptimized',
+ 'sriovNetSupport']
def __init__(self, parent=None):
dict.__init__(self)
Index: boto-2.40.0/tests/unit/ec2/test_attribute.py
===================================================================
--- /dev/null
+++ boto-2.40.0/tests/unit/ec2/test_attribute.py
@@ -0,0 +1,72 @@
+from tests.unit import unittest
+from tests.compat import mock
+
+from boto.ec2.connection import EC2Connection, Instance
+
+ATTRIBUTE_GET_TRUE_EBSOPTIMIZED_RESPONSE = b"""
+
+ 59dbff89-35bd-4eac-99ed-be587EXAMPLE
+ i-10a64379
+
+ true
+
+
+"""
+
+ATTRIBUTE_GET_FALSE_EBSOPTIMIZED_RESPONSE = b"""
+
+ 59dbff89-35bd-4eac-99ed-be587EXAMPLE
+ i-10a64379
+
+ false
+
+
+"""
+
+ATTRIBUTE_GET_EMPTY_PRODUCTCODES_RESPONSE = b"""
+
+ 59dbff89-35bd-4eac-99ed-be587EXAMPLE
+ i-10a64379
+
+
+"""
+
+# Tests to be run on an InstanceAttributes
+# Format:
+# (EC2_RESPONSE_STRING, (string_of_attribute_to_test, value) )
+ATTRIBUTE_TESTS = [
+ (ATTRIBUTE_GET_TRUE_EBSOPTIMIZED_RESPONSE,
+ ('ebsOptimized', True)),
+ (ATTRIBUTE_GET_FALSE_EBSOPTIMIZED_RESPONSE,
+ ('ebsOptimized', False)),
+ (ATTRIBUTE_GET_EMPTY_PRODUCTCODES_RESPONSE,
+ ('productCodes', None)),
+]
+
+
+class TestInstanceAttributes(unittest.TestCase):
+ """Tests Instance Attributes."""
+ def _setup_mock(self):
+ """Sets up a mock ec2 request.
+ Returns: response, ec2 connection and Instance
+ """
+ mock_response = mock.Mock()
+ mock_response.status = 200
+ ec2 = EC2Connection(aws_access_key_id='aws_access_key_id',
+ aws_secret_access_key='aws_secret_access_key')
+ ec2.make_request = mock.Mock(return_value=mock_response)
+ return mock_response, ec2, Instance(ec2)
+
+ def test_instance_get_attributes(self):
+ """Tests the InstanceAttributes from the EC2 object."""
+ mock_response, _, instance = self._setup_mock()
+
+ for response, attr_test in ATTRIBUTE_TESTS:
+ mock_response.read.return_value = response
+ expected_value = dict([attr_test])
+ actual_value = instance.get_attribute(attr_test[0])
+ self.assertEqual(expected_value, actual_value)
+
+
+if __name__ == '__main__':
+ unittest.main()