Esempio n. 1
0
    def test_irisv2_message_precheck_create_filter_mobile_recurring_CreditAvialable(
            self, campaignType, testControlType, listType, channel,
            messageInfo, precheckErrors):
        try:
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            precheckErrors[1]['parameters'][
                'balanceRequiredCredits'] = list_Calls().getCustomerCountInGVD(
                    messageDetails['PAYLOAD']['targetAudience']['include'][0])

            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            IrisHelper.updateCredit(0, channel)
            preCheckResponse = PreCheck.executePrecheck(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'])
            PreCheck.assertPreCheckResponse(preCheckResponse, 200)
            PreCheck.assertPrecheckStatus(preCheckResponse, precheckErrors)
        except Exception, exp:
            Assertion.constructAssertion(
                False, 'Failure Due to Exception :{}'.format(exp))
Esempio n. 2
0
 def test_irisv2_message_execute_flow_precheck_failed_immediate_CreditUnavialable(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     preCheckError = {
         'status': 'TEMPORARY_FAILURE',
         'errorDescription': 'BULK_CREDITS_NOT_AVAILABLE'
     }
     try:
         messageDetails = CreateMessage.create(campaignType,
                                               testControlType,
                                               listType,
                                               channel,
                                               messageInfo,
                                               updateNode=True,
                                               lockNode=True)
         CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
         IrisHelper.updateCredit(0, channel)
         approveRespone = AuthorizeMessage.approve(
             campaignType,
             testControlType,
             listType,
             channel,
             messageInfo,
             messageCreateResponse=messageDetails)
         AuthorizeMessage.assertResponse(approveRespone, 200)
         PreCheckDBValidation(
             constant.config['node'][campaignType][testControlType]
             ['CAMPAIGN']['ID'],
             messageDetails['RESPONSE']['json']['entity']['id'],
             messageInfo['scheduleType']['type'], ['OPENED'],
             remindCheck=False,
             precheck=preCheckError,
             variantCheck=False).validateMessageFlow()
     finally:
         IrisHelper.updateCredit(99999, channel)
Esempio n. 3
0
    def test_irisv2_message_execute_flow_precheck_particularDate_NotAuthorized_remind_retrail_remind_CreditUnavialable(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        preCheckError = {
            'create': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'CAMPAIGN_NOT_AUTHORIZED'
            },
            'execute': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'BULK_CREDITS_NOT_AVAILABLE'
            }
        }
        try:
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                precheck=preCheckError['create'],
                variantCheck=False).validateMessageFlow()
            IrisHelper.updateCredit(0, channel)
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                messageCreateResponse=messageDetails)
            AuthorizeMessage.assertResponse(approveRespone, 200)

            Precheck_calls().waitForJobTypeUpdate(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                'REMIND',
                'PRECHECK',
                'TEMPORARY_FAILURE',
                expectedError='BULK_CREDITS_NOT_AVAILABLE')

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                precheck=preCheckError['execute'],
                variantCheck=False).validateMessageFlow()
        except AssertionError, exp:
            Assertion.constructAssertion(False, 'Reason :{}'.format(exp))
Esempio n. 4
0
    def test_irisv2_message_execute_flow_precheck_particularDate_remind_success_approve_creditNotAvialable(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        try:
            precheckError = {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'CAMPAIGN_NOT_AUTHORIZED'
            }
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                variantCheck=False,
                precheck=precheckError).validateMessageFlow()
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                messageCreateResponse=messageDetails)
            AuthorizeMessage.assertResponse(approveRespone, 200)
            Precheck_calls().waitForJobTypeUpdate(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'], 'REMIND',
                'PRECHECK', 'SUCCESS')

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'],
                ['REMINDED', 'OPENED']).validateMessageFlow()
        finally:
            IrisHelper.updateCredit(99999, channel)
Esempio n. 5
0
    def test_irisv2_message_execute_flow_precheck_recurring__RemindCheckFailure_CreditUnavialable_ExecuteSuccess(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        try:
            precheckError = {
                'remind': {
                    'status':
                    'TEMPORARY_FAILURE',
                    'errorDescription':
                    'CAMPAIGN_NOT_AUTHORIZED,BULK_CREDITS_NOT_AVAILABLE'
                }
            }
            IrisHelper.updateCredit(0, channel)
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                variantCheck=False,
                precheck=precheckError['remind'],
                reloadCheck={
                    'GROUP_RELOAD_NFS': 'SUCCESS',
                    'GROUP_RELOAD_CREATE_AUDIENCE': 'SUBMITTED'
                },
                byPassPrecheckValidation=True).validateMessageFlow()
            IrisHelper.updateCredit(99999, channel)
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                messageCreateResponse=messageDetails)
            AuthorizeMessage.assertResponse(approveRespone, 200)
            Precheck_calls().waitForJobTypeUpdate(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'], 'REMIND',
                'PRECHECK', 'SUCCESS')

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'],
                ['REMINDED', 'OPENED']).validateMessageFlow()
        finally:
            IrisHelper.updateCredit(99999, channel)
Esempio n. 6
0
                'PRECHECK',
                'TEMPORARY_FAILURE',
                expectedError='BULK_CREDITS_NOT_AVAILABLE')

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                precheck=preCheckError['execute'],
                variantCheck=False).validateMessageFlow()
        except AssertionError, exp:
            Assertion.constructAssertion(False, 'Reason :{}'.format(exp))
        finally:
            IrisHelper.updateCredit(99999, channel)

    @pytest.mark.parametrize(
        'campaignType,testControlType,listType,channel,messageInfo', [
            ('LIVE', 'ORG', 'UPLOAD', 'MOBILE', {
                'scheduleType': {
                    'type': 'PARTICULARDATE'
                },
                'offerType': 'PLAIN',
                'messageStrategy': {
                    'type': 'DEFAULT'
                },
                'channels': ['SMS', 'EMAIL'],
                'useTinyUrl': False,
                'encryptUrl': False,
                'skipRateLimit': True
Esempio n. 7
0
    def test_irisv2_message_execute_flow_precheck_failed_particularDate_gatewayNotAvialable_remind_execute_creditNotAvialable(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        preCheckError = {
            'create': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription':
                'CAMPAIGN_NOT_AUTHORIZED,GATEWAY_NOT_AVAILABLE'
            },
            'execute': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'BULK_CREDITS_NOT_AVAILABLE'
            }
        }
        dummyGatewayCreated = False
        try:
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            IrisHelper.disableDomainGatewayMapId(channel)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                precheck=preCheckError['create'],
                variantCheck=False).validateMessageFlow()
            IrisHelper.updateCredit(0, channel)
            if IrisHelper.createNewDummyGateway(channel):
                dummyGatewayCreated = True
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                messageCreateResponse=messageDetails)
            AuthorizeMessage.assertResponse(approveRespone, 200)
            Precheck_calls().waitForJobTypeUpdate(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                'REMIND',
                'PRECHECK',
                'TEMPORARY_FAILURE',
                expectedError='BULK_CREDITS_NOT_AVAILABLE')

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                executeCheck=False,
                precheck=preCheckError['execute'],
                variantCheck=False).validateMessageFlow()
        finally:
            IrisHelper.updateCredit(99999, channel)
            if not dummyGatewayCreated:
                IrisHelper.createNewDummyGateway(channel)