示例#1
0
    def test_run_exception(self, mCreateSession, mSample):
        mSample.return_value = 'XXX'
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')
        client.list_activities.return_value = {
            'activities': [{
                'name': 'name',
                'activityArn': 'XXX'
            }]
        }

        activity = ActivityMixin()

        def stop_loop(*args, **kwargs):
            activity.polling = False
            raise BossError(None)

        client.get_activity_task.side_effect = stop_loop

        activity.run('name')

        calls = [
            mock.call.list_activities(),
            mock.call.get_activity_task(activityArn='XXX',
                                        workerName='name-XXX')
        ]
        self.assertEqual(client.mock_calls, calls)
示例#2
0
    def test_poll_task_exception(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')

        activity = ActivityMixin()

        self.assertEqual(activity.arn, None)

        with self.assertRaises(Exception):
            activity.poll_task(worker='worker')

        calls = []
        self.assertEqual(client.mock_calls, calls)
示例#3
0
    def test_delete_activity(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')

        activity = ActivityMixin()
        activity.arn = 'XXX'

        activity.delete_activity()

        self.assertEqual(activity.arn, None)

        calls = [mock.call.delete_activity(activityArn='XXX')]
        self.assertEqual(client.mock_calls, calls)
示例#4
0
    def test_create_activity_exists(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')

        activity = ActivityMixin()
        activity.arn = 'XXX'

        activity.create_activity()

        self.assertEqual(activity.arn, 'XXX')

        calls = []
        self.assertEqual(client.mock_calls, calls)
示例#5
0
    def test_delete_activity_exception(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')

        activity = ActivityMixin()

        self.assertEqual(activity.arn, None)

        with self.assertRaises(Exception):
            activity.delete_activity(exception=True)

        self.assertEqual(activity.arn, None)

        calls = []
        self.assertEqual(client.mock_calls, calls)
示例#6
0
    def test_create_activity(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')
        client.create_activity.return_value = {'activityArn': 'XXX'}

        activity = ActivityMixin()
        activity.name = 'name'

        self.assertEqual(activity.arn, None)

        activity.create_activity()

        self.assertEqual(activity.arn, 'XXX')

        calls = [mock.call.create_activity(name='name')]
        self.assertEqual(client.mock_calls, calls)
示例#7
0
    def test_poll_task_no_work(self, mCreateSession):
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')
        client.get_activity_task.return_value = {'taskToken': ''}

        activity = ActivityMixin()
        activity.arn = 'XXX'

        token, input_ = activity.poll_task('worker')

        self.assertEqual(token, None)
        self.assertEqual(input_, None)

        calls = [
            mock.call.get_activity_task(activityArn='XXX', workerName='worker')
        ]
        self.assertEqual(client.mock_calls, calls)
示例#8
0
    def test_run(self, mCreateSession, mSample):
        mSample.return_value = 'XXX'
        iSession = MockSession()
        mCreateSession.return_value = (iSession, '123456')
        client = iSession.client('stepfunctions')
        client.list_activities.return_value = {
            'activities': [{
                'name': 'name',
                'activityArn': 'XXX'
            }]
        }
        client.get_activity_task.return_value = {
            'taskToken': 'YYY',
            'input': '{}'
        }

        target = mock.MagicMock()

        activity = ActivityMixin(handle_task=target)

        def stop_loop(*args, **kwargs):
            activity.polling = False
            return mock.DEFAULT

        target.side_effect = stop_loop

        activity.run('name')

        calls = [
            mock.call.list_activities(),
            mock.call.get_activity_task(activityArn='XXX',
                                        workerName='name-XXX')
        ]
        self.assertEqual(client.mock_calls, calls)

        calls = [mock.call('YYY', {}), mock.call().start()]
        self.assertEqual(target.mock_calls, calls)