Change put_rule (and it's response) and fix tests_events/

This commit is contained in:
Guilherme Martins Crocetti 2020-03-22 17:32:37 -03:00
parent 7318523b50
commit a1f664d2bb
3 changed files with 22 additions and 9 deletions

View File

@ -250,10 +250,10 @@ class EventsBackend(BaseBackend):
return return_obj return return_obj
def put_rule(self, name, **kwargs): def put_rule(self, name, **kwargs):
rule = Rule(name, self.region_name, **kwargs) new_rule = Rule(name, self.region_name, **kwargs)
self.rules[rule.name] = rule self.rules[new_rule.name] = new_rule
self.rules_order.append(rule.name) self.rules_order.append(new_rule.name)
return rule.arn return new_rule
def put_targets(self, name, targets): def put_targets(self, name, targets):
rule = self.rules.get(name) rule = self.rules.get(name)

View File

@ -191,7 +191,7 @@ class EventsHandler(BaseResponse):
"ValidationException", "Parameter ScheduleExpression is not valid." "ValidationException", "Parameter ScheduleExpression is not valid."
) )
rule_arn = self.events_backend.put_rule( rule = self.events_backend.put_rule(
name, name,
ScheduleExpression=sched_exp, ScheduleExpression=sched_exp,
EventPattern=event_pattern, EventPattern=event_pattern,
@ -200,7 +200,7 @@ class EventsHandler(BaseResponse):
RoleArn=role_arn, RoleArn=role_arn,
) )
return json.dumps({"RuleArn": rule_arn}), self.response_headers return json.dumps({"RuleArn": rule.arn}), self.response_headers
def put_targets(self): def put_targets(self):
rule_name = self._get_param("Rule") rule_name = self._get_param("Rule")

View File

@ -1,15 +1,16 @@
from moto.events.models import EventsBackend
from moto.events import mock_events
import json import json
import random import random
import unittest import unittest
import boto3 import boto3
import sure # noqa
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
from moto.core.exceptions import JsonRESTError
from nose.tools import assert_raises from nose.tools import assert_raises
from moto.core import ACCOUNT_ID from moto.core import ACCOUNT_ID
from moto.core.exceptions import JsonRESTError
from moto.events import mock_events
from moto.events.models import EventsBackend
RULES = [ RULES = [
{"Name": "test1", "ScheduleExpression": "rate(5 minutes)"}, {"Name": "test1", "ScheduleExpression": "rate(5 minutes)"},
@ -75,6 +76,18 @@ def generate_environment():
return client return client
@mock_events
def test_put_rule():
client = boto3.client("events", "us-west-2")
client.list_rules()["Rules"].should.have.length_of(0)
rule_data = get_random_rule()
client.put_rule(**rule_data)
client.list_rules()["Rules"].should.have.length_of(1)
@mock_events @mock_events
def test_list_rules(): def test_list_rules():
client = generate_environment() client = generate_environment()