From c40437398fdd3fdbfffe7fdde8d701b9f2a71f50 Mon Sep 17 00:00:00 2001 From: Hugo Lopes Tavares Date: Mon, 2 Feb 2015 17:19:01 -0500 Subject: [PATCH 1/2] Add StorageType and Iops elements to DBInstance XML response --- moto/rds/models.py | 6 ++++++ tests/helpers.py | 13 +++++++++++++ tests/test_rds/test_rds.py | 15 ++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/moto/rds/models.py b/moto/rds/models.py index f0ac1e78902c..80a55434d2cf 100644 --- a/moto/rds/models.py +++ b/moto/rds/models.py @@ -199,6 +199,12 @@ def to_xml(self): {{ database.publicly_accessible }} {{ database.auto_minor_version_upgrade }} {{ database.allocated_storage }} + {% if database.iops %} + {{ database.iops }} + io1 + {% else %} + {{ database.storage_type }} + {% endif %} {{ database.db_instance_class }} {{ database.master_username }} diff --git a/tests/helpers.py b/tests/helpers.py index 33509c06eb68..718f2ab6e6d0 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -26,6 +26,19 @@ def __call__(self, test): return skip_test +class requires_boto_lte(object): + """Decorator for requiring boto version lesser than or equal to 'version'""" + def __init__(self, version): + self.version = version + + def __call__(self, test): + boto_version = version_tuple(boto.__version__) + required = version_tuple(self.version) + if boto_version <= required: + return test + return skip_test + + class disable_on_py3(object): def __call__(self, test): if not six.PY3: diff --git a/tests/test_rds/test_rds.py b/tests/test_rds/test_rds.py index e30818c6fff1..0efd6dfcc04a 100644 --- a/tests/test_rds/test_rds.py +++ b/tests/test_rds/test_rds.py @@ -6,7 +6,7 @@ import sure # noqa from moto import mock_ec2, mock_rds -from tests.helpers import disable_on_py3 +from tests.helpers import disable_on_py3, requires_boto_lte @disable_on_py3() @@ -257,3 +257,16 @@ def test_connecting_to_us_east_1(): database.master_username.should.equal("root") database.endpoint.should.equal(('db-master-1.aaaaaaaaaa.us-east-1.rds.amazonaws.com', 3306)) database.security_groups[0].name.should.equal('my_sg') + + +@requires_boto_lte('2.36.0') +@disable_on_py3() +@mock_rds +def test_create_database_with_iops(): + conn = boto.rds.connect_to_region("us-west-2") + + database = conn.create_dbinstance("db-master-1", 10, 'db.m1.small', 'root', 'hunter2', iops=6000) + + database.status.should.equal('available') + database.iops.should.equal(6000) + database.StorageType.should.equal('io1') From 7eb969fb008fc47c56033e76fc31aac63eb27efb Mon Sep 17 00:00:00 2001 From: Hugo Lopes Tavares Date: Tue, 3 Feb 2015 16:57:12 -0500 Subject: [PATCH 2/2] Remove requires_boto_lte and add comment about StorageType vs storage_type --- tests/helpers.py | 13 ------------- tests/test_rds/test_rds.py | 4 ++-- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/tests/helpers.py b/tests/helpers.py index 718f2ab6e6d0..33509c06eb68 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -26,19 +26,6 @@ def __call__(self, test): return skip_test -class requires_boto_lte(object): - """Decorator for requiring boto version lesser than or equal to 'version'""" - def __init__(self, version): - self.version = version - - def __call__(self, test): - boto_version = version_tuple(boto.__version__) - required = version_tuple(self.version) - if boto_version <= required: - return test - return skip_test - - class disable_on_py3(object): def __call__(self, test): if not six.PY3: diff --git a/tests/test_rds/test_rds.py b/tests/test_rds/test_rds.py index 0efd6dfcc04a..df8ede179377 100644 --- a/tests/test_rds/test_rds.py +++ b/tests/test_rds/test_rds.py @@ -6,7 +6,7 @@ import sure # noqa from moto import mock_ec2, mock_rds -from tests.helpers import disable_on_py3, requires_boto_lte +from tests.helpers import disable_on_py3 @disable_on_py3() @@ -259,7 +259,6 @@ def test_connecting_to_us_east_1(): database.security_groups[0].name.should.equal('my_sg') -@requires_boto_lte('2.36.0') @disable_on_py3() @mock_rds def test_create_database_with_iops(): @@ -269,4 +268,5 @@ def test_create_database_with_iops(): database.status.should.equal('available') database.iops.should.equal(6000) + # boto>2.36.0 may change the following property name to `storage_type` database.StorageType.should.equal('io1')