def test_irisv2_message_execute_mobilePush_android_image_secondCTA_Multiplevalue_primaryCTAEmable_IOS_Text(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        approveRespone = AuthorizeMessage.approve(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']

        AuthorizeMessageDBAssertion(campaignId, response, payload,
                                    testControlType).check()
Exemplo n.º 2
0
    def test_irisv2_message_personalize_execute_upload_sms_sms_immediate_plain_plain_live_multiCategory(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        approveRespone = AuthorizeMessage.approve(campaignType,
                                                  testControlType, listType,
                                                  channel, messageInfo)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']

        AuthorizeMessageDBAssertion(campaignId,
                                    response,
                                    payload,
                                    testControlType,
                                    personalizedMessage=True).check()
    def test_irisv2_message_Sanity_execute_mobilePush_android_text_ios_image_secondCTA_DeepLink_PrimaryCTA_ExternalURL_customTrue(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        approveRespone = AuthorizeMessage.approve(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']

        AuthorizeMessageDBAssertion(campaignId, response, payload,
                                    testControlType).check()
Exemplo n.º 4
0
    def test_irisv2_message_execute_upload_push_immediate_coupon_live_pushThread(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        try:
            actualOrgId = IrisHelper.updateOrgId(
                constant.config['mobilepush']['orgId'])
            actualOrgName = IrisHelper.updateOrgName(
                constant.config['mobilepush']['orgName'])
            campaignInfo = CreateCampaign.create(campaignType,
                                                 testControlType,
                                                 updateNode=True,
                                                 lockNode=True)
            couponSeriesId = CreateMessage.getCouponSeriesId(
                campaignInfo['ID'])
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                campaignId=campaignInfo['ID'],
                couponSeriesId=couponSeriesId)
            AuthorizeMessage.assertResponse(approveRespone, 200)

            campaignId = campaignInfo['ID']
            response = constant.config['node'][campaignType][testControlType][
                'LIST'][listType][channel]['MESSAGE'][
                    messageInfo['scheduleType']['type']][
                        messageInfo['offerType']]['RESPONSE']
            payload = constant.config['node'][campaignType][testControlType][
                'LIST'][listType][channel]['MESSAGE'][
                    messageInfo['scheduleType']['type']][
                        messageInfo['offerType']]['PAYLOAD']

            AuthorizeMessageDBAssertion(campaignId, response, payload,
                                        testControlType).check()
        finally:
            IrisHelper.updateOrgId(actualOrgId)
            IrisHelper.updateOrgName(actualOrgName)
Exemplo n.º 5
0
    def irisv2_message_execute_stickyList_immediate_plain_additionalProperties_UsingRateLimit(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True,
                                              derivedListInfo={
                                                  'excludeUsers': [],
                                                  'includeUsers':
                                                  ':1',
                                                  'groupId':
                                                  self.listInfo[0]['gId'],
                                                  'label':
                                                  self.listInfo[0]['gLabel']
                                              })
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']

        AuthorizeMessageDBAssertion(campaignId, response, payload,
                                    testControlType).check()
Exemplo n.º 6
0
    def test_irisv2_messageStatus_stickylist_sms_recurring_points_Approved_Stop(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              'ORG_USERS',
                                              channel,
                                              messageInfo,
                                              derivedListInfo={
                                                  'excludeUsers': [],
                                                  'includeUsers': ':1'
                                              })

        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        message_calls().waitForJobDetailsStatusToClose(
            messageDetails['RESPONSE']['json']['entity']['id'],
            'VARIANT_CREATION')
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)
        stopResponse = CreateMessage.stop(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], approveRespone['json']['entity']['messageId'])
        CreateMessage.assertResponse(stopResponse, 200)
        CreateMessageDBAssertion(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'],
            messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'],
            reject={
                'status': 'CLOSED'
            },
            approved='STOPPED').check()
Exemplo n.º 7
0
    def test_irisv2_message_execute_flow_precheck_particularDate_with2HoursInterval_RemindCheck(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        scheduleType = {
            'scheduleType':
            'PARTICULAR_DATE',
            'scheduledDate':
            Utils.getTime(hours=2, minutes=1, seconds=30, milliSeconds=True)
        }
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              scheduleType=scheduleType,
                                              updateNode=True,
                                              lockNode=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', 'SUCCESS')

        PreCheckDBValidation(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'],
            messageDetails['RESPONSE']['json']['entity']['id'],
            messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
            executeCheck=False,
            variantCheck=False).validateMessageFlow()
Exemplo n.º 8
0
    def test_irisv2_message_personalize_execute_derived_smssssssssssssss_email_immediate_plain_plain_live_multiCategory(
            self, campaignType, testControlType, channel, messageInfo):
        messageDetails = CreateMessage.create(
            campaignType,
            testControlType,
            'DERIVED',
            channel,
            messageInfo,
            derivedListInfo={
                'includedGroups': ['UPLOAD', 'LOYALTY', 'DERIVED'],
                'excludedGroup': ['UPLOADOLD'],
                'derived': ['UPLOADOLD', 'UPLOAD', 'LOYALTY'],
                'noOfUserUpload': 5
            })
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            'DERIVED',
            channel,
            messageInfo=messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']

        AuthorizeMessageDBAssertion(campaignId,
                                    response,
                                    payload,
                                    testControlType,
                                    personalizedMessage=True).check()
Exemplo n.º 9
0
    def irisv2_message_Sanity_create_execute_stickyList_recurring_plain(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        approveRespone = AuthorizeMessage.approve(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  derivedListInfo={
                                                      'excludeUsers': [],
                                                      'includeUsers': ':1'
                                                  })
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][
                'type']][messageInfo['offerType']]['PAYLOAD']
        AuthorizeMessageDBAssertion(campaignId, response, payload,
                                    testControlType).check()
Exemplo n.º 10
0
 def test_irisv2_getStatusBy_messageId_Sanity(self, campaignType,
                                              testControlType, channel,
                                              messageInfo, queryParam):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'LOYALTY',
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approve(
         campaignType,
         testControlType,
         'LOYALTY',
         channel,
         messageInfo,
         messageCreateResponse=messageDetails)
     AuthorizeMessage.assertResponse(approveRespone, 200)
     campaignId = constant.config['node'][campaignType][testControlType][
         'CAMPAIGN']['ID']
     AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'],
                                 messageDetails['PAYLOAD'],
                                 testControlType).check()
     response = GetMonitoringDetails.getByMessageId(
         campaignId, messageDetails['RESPONSE']['json']['entity']['id'],
         queryParam)
     actualResponse, expectedResponse = GetMonitoringDetails.formatingMonitorDetails(
         response, isScheduledMsg=True, isDeliveryBreakEnabled=True)
     Assertion.constructAssertion(
         actualResponse == expectedResponse,
         'Monitoring Details response Matched Actual: {} and Expected: {}'.
         format(actualResponse, expectedResponse))
Exemplo n.º 11
0
    def irisv2_message_sanity_execute_filter_immediate_plain_storeTag_lasttransactedstore(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True,
                                              lockNode=True)
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'],
                                    messageDetails['PAYLOAD'],
                                    testControlType).check()
Exemplo n.º 12
0
    def test_irisv2_message_execute_flow_precheck_immediate_GatewayUnavialable_remind(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        preCheckError = {
            'status': 'TEMPORARY_FAILURE',
            'errorDescription': 'GATEWAY_NOT_AVAILABLE'
        }
        try:
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            IrisHelper.disableDomainGatewayMapId(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'], ['REMINDED', 'OPENED'],
                remindCheck=False,
                precheck=preCheckError,
                variantCheck=False).validateMessageFlow()
        except AssertionError, exp:
            Assertion.constructAssertion(False, '{}'.format(exp))
Exemplo n.º 13
0
    def test_irisv2_message_execute_flow_precheck_recurring__RemindCheck(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        try:
            precheckError = {
                'remind': {
                    'status': 'TEMPORARY_FAILURE',
                    'errorDescription': 'CAMPAIGN_NOT_AUTHORIZED'
                },
                'execute': {
                    'status': 'TEMPORARY_FAILURE',
                    'errorDescription': 'BULK_CREDITS_NOT_AVAILABLE'
                }
            }

            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(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,
                variantCheck=False,
                precheck=precheckError['execute']).validateMessageFlow()
        finally:
            IrisHelper.updateCredit(99999, channel)
Exemplo n.º 14
0
 def test_irisv2_getStatusBy_campaignId_Sanity(self, campaignType,
                                               testControlType, channel,
                                               messageInfo, queryParam):
     campaignInfo = CreateCampaign.create(campaignType,
                                          testControlType,
                                          updateNode=True,
                                          lockNode=True)
     Logger.log('campaign id is', campaignInfo['ID'])
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'LOYALTY',
                                           channel,
                                           messageInfo,
                                           campaignId=campaignInfo['ID'],
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approve(
         campaignType,
         testControlType,
         'LOYALTY',
         channel,
         messageInfo,
         messageCreateResponse=messageDetails,
         campaignId=campaignInfo['ID'])
     AuthorizeMessage.assertResponse(approveRespone, 200)
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'LOYALTY',
                                           channel,
                                           messageInfo,
                                           campaignId=campaignInfo['ID'],
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approve(
         campaignType,
         testControlType,
         'LOYALTY',
         channel,
         messageInfo,
         messageCreateResponse=messageDetails,
         campaignId=campaignInfo['ID'])
     AuthorizeMessage.assertResponse(approveRespone, 200)
     time.sleep(150)
     message_calls().getCommunicationDetailsWithOnlyMessageId(
         approveRespone['json']['entity']['messageId'])
     response = GetMonitoringDetails.getByCampaignId(
         campaignInfo['ID'], queryParam)
     actualResponse, expectedResponse = GetMonitoringDetails.formatingMonitorDetails(
         response, isScheduledMsg=False, isDeliveryBreakEnabled=True)
     Assertion.constructAssertion(
         actualResponse == expectedResponse,
         'Monitoring Details response Matched Actual: {} and Expected: {}'.
         format(actualResponse, expectedResponse))
Exemplo n.º 15
0
    def irisv2_message_edit_reject_edit_stop_execute_Sanity(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True,
                                              lockNode=True)
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        message_calls().waitForJobDetailsStatusToClose(
            messageDetails['RESPONSE']['json']['entity']['id'],
            'VARIANT_CREATION')
        messageDetails['PAYLOAD'].update({
            'schedule': {
                'scheduleType': 'PARTICULAR_DATE',
                'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000
            }
        })
        #editing message
        editInfo = CreateMessage.edit(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'])
        CreateMessageDBAssertion(constant.config['node'][campaignType]
                                 [testControlType]['CAMPAIGN']['ID'],
                                 editInfo['RESPONSE']['json']['entity']['id'],
                                 editInfo['PAYLOAD'],
                                 version=1).check()

        #rejecting message
        rejectResponse = CreateMessage.reject(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'])
        CreateMessage.assertResponse(rejectResponse, 200)
        CreateMessageDBAssertion(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'],
            messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'],
            approved='REJECTED').check()
        #editing message
        messageDetails['PAYLOAD'].update({
            'schedule': {
                'scheduleType': 'PARTICULAR_DATE',
                'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000
            }
        })
        editInfo = CreateMessage.edit(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'])
        CreateMessage.assertResponse(editInfo['RESPONSE'], 200)
        message_calls().waitForJobDetailsStatusToClose(
            editInfo['RESPONSE']['json']['entity']['id'],
            'VARIANT_CREATION',
            version=2)
        CreateMessageDBAssertion(constant.config['node'][campaignType]
                                 [testControlType]['CAMPAIGN']['ID'],
                                 editInfo['RESPONSE']['json']['entity']['id'],
                                 editInfo['PAYLOAD'],
                                 version=2).check()
        #approving message
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=editInfo)
        AuthorizeMessage.assertResponse(approveRespone, 200)
        time.sleep(15)
        #stopping the message
        stopResponse = CreateMessage.stop(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], approveRespone['json']['entity']['messageId'])
        CreateMessage.assertResponse(stopResponse, 200)
        CreateMessageDBAssertion(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'],
            messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'],
            reject={
                'status': 'CLOSED'
            },
            approved='STOPPED').check()
        #editing message
        messageDetails['PAYLOAD'].update({
            'schedule': {
                'scheduleType': 'PARTICULAR_DATE',
                'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000
            }
        })
        editInfo = CreateMessage.edit(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'])
        CreateMessage.assertResponse(editInfo['RESPONSE'], 200)
        message_calls().waitForJobDetailsStatusToClose(
            editInfo['RESPONSE']['json']['entity']['id'],
            'VARIANT_CREATION',
            version=3)
        CreateMessageDBAssertion(constant.config['node'][campaignType]
                                 [testControlType]['CAMPAIGN']['ID'],
                                 editInfo['RESPONSE']['json']['entity']['id'],
                                 editInfo['PAYLOAD'],
                                 version=3).check()
        #approving message
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=editInfo)
        AuthorizeMessage.assertResponse(approveRespone, 200)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        AuthorizeMessageDBAssertion(campaignId,
                                    editInfo['RESPONSE'],
                                    editInfo['PAYLOAD'],
                                    testControlType,
                                    version=3).check()
Exemplo n.º 16
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)