def test_calls_publish(self, mock_boto3): mock_client = mock.MagicMock() mock_boto3.client.return_value = mock_client sns.send_data({"lol": "wut"}, 'topic') self.assertTrue(mock_client.publish.called)
def route(event, context): order_data = sns.parse_data(event) product = order_data.get('product') if product in SUPPORTED_PRODUCTS: product_topic = '{}-order'.format(product) sns.send_data(order_data, product_topic) else: print "Error: Invalid product {}".format(product)
def test_calls_publish_with_serialized_data(self, mock_boto3): mock_client = mock.MagicMock() mock_boto3.client.return_value = mock_client data = {"lol": "wut"} message_json = json.dumps(data) sns.send_data(data, 'topic') args, kwargs = mock_client.publish.call_args self.assertEqual(kwargs['Message'], message_json)
def test_calls_publish_with_topic_arn(self, mock_os, mock_boto3): mock_client = mock.MagicMock() mock_boto3.client.return_value = mock_client mock_os.environ = { 'SNS_TOPIC_ARN_PREFIX': 'arn:aws:sns:us-east-1:12345' } sns.send_data({"lol": "wut"}, 'topic') args, kwargs = mock_client.publish.call_args self.assertEqual(kwargs['TopicArn'], 'arn:aws:sns:us-east-1:12345:topic')
def create(order_data): if order_data: sns.send_data(order_data, 'new-order')
def test_creates_sns_client(self, mock_boto3): sns.send_data({"lol": "wut"}, 'topic') mock_boto3.client.assert_called_with('sns')