From 1e01356f99141c354b16c1a816c9776df1aabe8b Mon Sep 17 00:00:00 2001 From: cpitchford Date: Tue, 15 May 2018 16:45:49 +0100 Subject: [PATCH] Bugfix: describe_event_bus()['Policy'] should be JSON string, not object boto3.client('events')['Policy'] must be a string as per: http://boto3.readthedocs.io/en/latest/reference/services/events.html#CloudWatchEvents.Client.describe_event_bus Adding json.dumps() around the policy value ensures we do not return an unexpected dict This change corrects an error when attempting to decode the policy: json.load(boto3.client('events').describe_event_bus()['Policy']) --- moto/events/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/moto/events/models.py b/moto/events/models.py index 5c1d507c..0885d8d4 100644 --- a/moto/events/models.py +++ b/moto/events/models.py @@ -1,5 +1,6 @@ import os import re +import json from moto.core.exceptions import JsonRESTError from moto.core import BaseBackend, BaseModel @@ -238,8 +239,10 @@ class EventsBackend(BaseBackend): 'Action': 'events:{0}'.format(data['action']), 'Resource': arn }) + policy = {'Version': '2012-10-17', 'Statement': statements} + policy_json = json.dumps(policy) return { - 'Policy': {'Version': '2012-10-17', 'Statement': statements}, + 'Policy': policy_json, 'Name': 'default', 'Arn': arn }