From e85106c708d593a8048b6a30014ef0744b454942 Mon Sep 17 00:00:00 2001 From: cpitchford Date: Tue, 15 May 2018 17:04:59 +0100 Subject: [PATCH] describe_event_bus returns json, not dict Correct the assumption that describe_event_bus()['Policy'] is a dict As per http://boto3.readthedocs.io/en/latest/reference/services/events.html#CloudWatchEvents.Client.describe_event_bus It should be a JSON encoded string Here we decode the JSON before we look inside the policy --- tests/test_events/test_events.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/test_events/test_events.py b/tests/test_events/test_events.py index e839bde5..835b3b28 100644 --- a/tests/test_events/test_events.py +++ b/tests/test_events/test_events.py @@ -1,6 +1,7 @@ import random import boto3 +import json from moto.events import mock_events from botocore.exceptions import ClientError @@ -181,13 +182,15 @@ def test_permissions(): client.put_permission(Action='PutEvents', Principal='222222222222', StatementId='Account2') resp = client.describe_event_bus() - assert len(resp['Policy']['Statement']) == 2 + resp_policy = json.loads(resp['Policy']) + assert len(resp_policy['Statement']) == 2 client.remove_permission(StatementId='Account2') resp = client.describe_event_bus() - assert len(resp['Policy']['Statement']) == 1 - assert resp['Policy']['Statement'][0]['Sid'] == 'Account1' + resp_policy = json.loads(resp['Policy']) + assert len(resp_policy['Statement']) == 1 + assert resp_policy['Statement'][0]['Sid'] == 'Account1' @mock_events