from unittest.mock import MagicMock import boto from boto.sns import SNSConnection from garcon import activity from garcon.contrib.aws import sns def test_sns_publish_message(monkeypatch): """Verify sns sends expected subject/message/topic """ monkeypatch.setattr( boto, 'connect_sns', MagicMock(return_value=boto.sns.SNSConnection)) monkeypatch.setattr( SNSConnection, 'publish', MagicMock(return_value=None)) sns.sns_publish_message( activity.Activity(), topic='fake topic', message='hello message', subject='subject line') boto.sns.SNSConnection.publish.assert_called_with( subject='subject line', message='hello message', topic='fake topic')