def METHOD_NAME(
        self,
        prevent_throttling_mock,
        make_api_call_mock
):
    prevent_throttling_mock.side_effect = None
    make_api_call_mock.side_effect = [
        {
            'StackEvents': [
                {
                    'EventId': 'b31b10d0-9e5e-11e8-8eb0-02c3ece5f9fa',
                    'Timestamp': datetime.datetime(2018, 8, 12, 18, 37, 0, 365000, tzinfo=tz.tzutc()),
                }
            ],
            'NextToken': 'next-token-1'
        },
        {
            'StackEvents': [
                {
                    'EventId': 'HelloWorldFunctionHelloWorldPermissionProd',
                    'Timestamp': datetime.datetime(2018, 8, 12, 18, 36, 58, 371000, tzinfo=tz.tzutc())
                }
            ],
            'NextToken': 'next-token-2'
        },
        {
            'StackEvents': [
                {
                    'Timestamp': datetime.datetime(2018, 8, 12, 18, 36, 24, 294000, tzinfo=tz.tzutc())
                }
            ]
        },
    ]
    events = cloudformation.events(
        'sam-cfn-stack',
        start_time=datetime.datetime(2018, 8, 12, 18, 36, 50, 0, tzinfo=tz.tzutc())
    )
    self.assertEqual('b31b10d0-9e5e-11e8-8eb0-02c3ece5f9fa', events[0].event_id)
    self.assertEqual('HelloWorldFunctionHelloWorldPermissionProd', events[1].event_id)
    self.assertEqual(2, len(events))
    make_api_call_mock.assert_has_calls(
        [
            mock.call(
                'cloudformation',
                'describe_stack_events',
                StackName='sam-cfn-stack'
            ),
            mock.call(
                'cloudformation',
                'describe_stack_events',
                StackName='sam-cfn-stack',
                NextToken='next-token-1'
            ),
            mock.call(
                'cloudformation',
                'describe_stack_events',
                StackName='sam-cfn-stack',
                NextToken='next-token-2'
            )
        ]
    )