diff --git a/moto/rds2/models.py b/moto/rds2/models.py index 63d313241..6d9f7c1f5 100644 --- a/moto/rds2/models.py +++ b/moto/rds2/models.py @@ -548,7 +548,7 @@ class RDS2Backend(BaseBackend): self.option_groups[option_group_name].remove_options(options_to_remove) if options_to_include: self.option_groups[option_group_name].add_options(options_to_include) - return ['a'] + return self.option_groups[option_group_name] class OptionGroup(object): diff --git a/moto/rds2/responses.py b/moto/rds2/responses.py index 35fccd714..f0ac52faa 100644 --- a/moto/rds2/responses.py +++ b/moto/rds2/responses.py @@ -198,17 +198,19 @@ class RDS2Response(BaseResponse): 'VpcSecurityGroupMemberships': self._get_param('OptionsToInclude.member.{}.VpcSecurityGroupMemberships'.format(count)) }) count += 1 + count = 1 options_to_remove = [] while self._get_param('OptionsToRemove.member.{}'.format(count)): options_to_remove.append(self._get_param('OptionsToRemove.member.{}'.format(count))) count += 1 apply_immediately = self._get_param('ApplyImmediately') - result = self.backend.modify_option_group(option_group_name, - options_to_include, - options_to_remove, - apply_immediately) - return json.dumps('{"DescribeOptionGroupOptionsResponse": {"DescribeOptionGroupOptionsResult": {"Marker": null, "OptionGroupOptions": [{"MinimumRequiredMinorEngineVersion": "2789.0.v1", "OptionsDependedOn": [], "MajorEngineVersion": "10.50", "Persistent": false, "DefaultPort": null, "Permanent": false, "OptionGroupOptionSettings": [], "EngineName": "sqlserver-ee", "Name": "Mirroring", "PortRequired": false, "Description": "SQLServer Database Mirroring"}, {"MinimumRequiredMinorEngineVersion": "2789.0.v1", "OptionsDependedOn": [], "MajorEngineVersion": "10.50", "Persistent": true, "DefaultPort": null, "Permanent": false, "OptionGroupOptionSettings": [], "EngineName": "sqlserver-ee", "Name": "TDE", "PortRequired": false, "Description": "SQL Server - Transparent Data Encryption"}, {"MinimumRequiredMinorEngineVersion": "2100.60.v1", "OptionsDependedOn": [], "MajorEngineVersion": "11.00", "Persistent": false, "DefaultPort": null, "Permanent": false, "OptionGroupOptionSettings": [], "EngineName": "sqlserver-ee", "Name": "Mirroring", "PortRequired": false, "Description": "SQLServer Database Mirroring"}, {"MinimumRequiredMinorEngineVersion": "2100.60.v1", "OptionsDependedOn": [], "MajorEngineVersion": "11.00", "Persistent": true, "DefaultPort": null, "Permanent": false, "OptionGroupOptionSettings": [], "EngineName": "sqlserver-ee", "Name": "TDE", "PortRequired": false, "Description": "SQL Server - Transparent Data Encryption"}]}, "ResponseMetadata": {"RequestId": "c9f2fd9b-9fcb-11e4-8add-31b6fe33145f"}}}') + option_group = self.backend.modify_option_group(option_group_name, + options_to_include, + options_to_remove, + apply_immediately) + template = self.response_template(MODIFY_OPTION_GROUP_TEMPLATE) + return template.render(option_group=option_group) CREATE_DATABASE_TEMPLATE = """{ @@ -362,4 +364,14 @@ DESCRIBE_OPTION_GROUP_OPTIONS_TEMPLATE = \ {%- endfor -%} ]}, "ResponseMetadata": {"RequestId": "457f7bb8-9fbf-11e4-9084-5754f80d5144"} - }}""" \ No newline at end of file + }}""" + +MODIFY_OPTION_GROUP_TEMPLATE = \ + """{"ModifyOptionGroupResponse": { + "ResponseMetadata": { + "RequestId": "ce9284a5-a0de-11e4-b984-a11a53e1f328" + }, + "ModifyOptionGroupResult": + {{ option_group.to_json() }} + } + }""" diff --git a/tests/test_rds2/test_rds2.py b/tests/test_rds2/test_rds2.py index 44c684721..017869789 100644 --- a/tests/test_rds2/test_rds2.py +++ b/tests/test_rds2/test_rds2.py @@ -73,6 +73,7 @@ def test_create_option_group(): option_group['CreateOptionGroupResponse']['CreateOptionGroupResult']['OptionGroup']['OptionGroupDescription'].should.equal('test option group') option_group['CreateOptionGroupResponse']['CreateOptionGroupResult']['OptionGroup']['MajorEngineVersion'].should.equal('5.6') + @mock_rds2 def test_create_option_group_bad_engine_name(): conn = boto.rds2.connect_to_region("us-west-2") @@ -144,7 +145,14 @@ def test_describe_option_group_options(): @mock_rds2 def test_modify_option_group(): conn = boto.rds2.connect_to_region("us-west-2") - # if Someone can tell me how the hell to use this function I can finish coding this. + conn.create_option_group('test', 'mysql', '5.6', 'test option group') + # if Someone can tell me how the hell to use this function + # to add options to an option_group, I can finish coding this. + result = conn.modify_option_group('test', [], ['MEMCACHED'], True) + result['ModifyOptionGroupResponse']['ModifyOptionGroupResult']['EngineName'].should.equal('mysql') + result['ModifyOptionGroupResponse']['ModifyOptionGroupResult']['Options'].should.equal([]) + result['ModifyOptionGroupResponse']['ModifyOptionGroupResult']['OptionGroupName'].should.equal('test') + @mock_rds2