Exemplo n.º 1
0
 def test_reminder_create_sms_coupon_email_particulardate_nonResponders_Coupon_appoved(self, campaignType,
                                                                                       testControlType, listType,
                                                                                       channel,
                                                                                       messageInfo):
     remindParams = {
         'reminderStrategy': 'COUPON_NOT_REDEEMED',
         'parentMessageId': constant.config['reminder']['coupon']['messageId']
     }
     campaignId = constant.config['reminder']['coupon']['campaignId']
     constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] = campaignId
     messageContent = CreateMessage.constructMessageContent(campaignType, testControlType,
                                                            messageInfo['messageStrategy'],
                                                            messageInfo['offerType'],
                                                            channel)
     messageContent['message_content_id_1']['offers'] = []
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           listInfo='', campaignId=campaignId, remindParams=remindParams,
                                           lockNode=True, messageContent=messageContent)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'],
                                                    'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approveWithCampaignAndMessageId(campaignId,
                                                                       messageDetails['RESPONSE']['json']['entity'][
                                                                           'id'])
     AuthorizeMessage.assertResponse(approveRespone, 200)
     AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'],
                                 testControlType).check()
Exemplo n.º 2
0
 def test_irisv2_messageStatus_upload_email_particulardate_point_notApproved_Reject(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     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'],
         reject={
             'status': 'CLOSED'
         },
         approved='REJECTED').check()
Exemplo n.º 3
0
 def test_approveMessage_negative_validationMessage_particularDate_ApproveAfterSchedulle(
         self):
     messageInfo = {
         'scheduleType': {
             'type': 'PARTICULARDATE'
         },
         'offerType': 'PLAIN',
         'messageStrategy': {
             'type': 'DEFAULT'
         },
         'channels': ['SMS', 'EMAIL'],
         'useTinyUrl': False,
         'encryptUrl': False,
         'skipRateLimit': True
     }
     messageDetails = CreateMessage.create('LIVE', 'ORG', 'UPLOAD',
                                           'MOBILE', messageInfo)
     time.sleep(120)
     responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId(
         self.campaignInfo['ID'],
         messageDetails['RESPONSE']['json']['entity']['id'])
     AuthorizeMessage.assertResponse(
         responseAuthorize,
         400,
         expectedErrorCode=3023,
         expectedErrorMessage="Message with message id {} does not exists".
         format(messageDetails['RESPONSE']['json']['entity']['id']))
 def test_irisv2_message_edit_particularDate_live_create_plain_mobile_editMessage_with_campaignId_of_another_campaign(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     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')
     campaignInfo = CreateCampaign.create(campaignType,
                                          testControlType,
                                          updateNode=True)
     editInfo = CreateMessage.edit(
         campaignInfo['ID'],
         messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(
         editInfo['RESPONSE'],
         400,
         expectedErrorCode=[errorCode],
         expectedErrorMessage=errorDescription.format(
             messageDetails['RESPONSE']['json']['entity']['id']))
Exemplo n.º 5
0
 def test_irisv2_getStatusBy_messageId_Yet_to_go(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)
     response = GetMonitoringDetails.getByMessageId(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         queryParam)
     actualResponse, expectedResponse = GetMonitoringDetails.formatingMonitorDetails(
         response,
         isScheduledMsg=True,
         isDeliveryBreakEnabled=False,
         forceUpdate=True)
     Assertion.constructAssertion(
         actualResponse == expectedResponse,
         'Monitoring Details response Matched Actual: {} and Expected: {}'.
         format(actualResponse, expectedResponse))
Exemplo n.º 6
0
 def test_irisv2_message_execute_derivedThread_mobile_email_coupon_plain_live(
         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']
     AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'],
                                 messageDetails['PAYLOAD'],
                                 testControlType).check()
Exemplo n.º 7
0
 def test_irisv2_message_execute_flow_precheck_immediate_Sanity(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     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', 'EXECUTING', 'OPENED'],
         remindCheck=False).validateMessageFlow()
Exemplo n.º 8
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)
Exemplo n.º 9
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))
Exemplo n.º 10
0
 def irisv2_message_create_upload_mobile_particularDate_points(self, campaignType, testControlType, listType,
                                                                   channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'],
                              offer=True).check()
Exemplo n.º 11
0
    def test_irisv2_getMessage_create_upload_mobile_particularDate_coupon(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageById(campaignId, messageId)
        GetMessage.assertResponse(getMessageResponse, 200)
        CreateMessageDBAssertion(campaignId, messageId,
                                 getMessageResponse['json']['entity']).check()
Exemplo n.º 12
0
 def test_irisv2_messageStatus_sms_recurring_points_Approved_Stop(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType,
                                           listType, channel, messageInfo)
     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()
 def irisv2_message_create_filter_derived_EMAIL_particularDate_points(self, campaignType, testControlType,
                                                                        channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, 'DERIVED', channel, messageInfo,derivedListInfo={ 'includedGroups' : ['UPLOADOLD', 'LOYALTY'],'excludedGroup' : ['UPLOADOLD'], 'noOfUserUpload' : 5})
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'],
                              offer=True).check()
    def test_irisv2_message_edit_particularDate_live_create_plain_mobile_editMessage_approvedAndExecuted(
            self, campaignType, testControlType, listType, channel,
            messageInfo, editInfo, statusCode, errorCode, errorDescription):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True)
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)
        time.sleep(180)

        editInfo = CreateMessage.edit(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'], editInfo)
        CreateMessage.assertResponse(
            editInfo['RESPONSE'],
            400,
            expectedErrorCode=[errorCode],
            expectedErrorMessage=errorDescription.format(
                messageDetails['RESPONSE']['json']['entity']['id']))
Exemplo n.º 15
0
 def test_irisv2_message_edit_upcoming_create_plain_mobile_particulardate_to_immediate(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     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')
     dateTime = Utils.getTime(hours=5, minutes=32, dateTimeFormat=True)
     messageDetails['PAYLOAD'].update(
         {'schedule': {
             'scheduleType': 'IMMEDIATE'
         }})
     editInfo = CreateMessage.edit(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'],
                                  400,
                                  expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription)
Exemplo n.º 16
0
 def test_irisv2_message_edit_upcoming_create_plain_mobile_particulardate_datechangeTonow(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     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) + 1 * 60 * 1000
         }
     })
     editInfo = CreateMessage.edit(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'],
                                  400,
                                  expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription)
Exemplo n.º 17
0
    def test_irisv2_message_execute_upload_email_particulardate_points_live(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True)
        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,
            skippedReason=['No Loyalty Entry Found For User']).check()
Exemplo n.º 18
0
 def irisv2_message_create_filter_immediate_plain(self, campaignType, testControlType,
                                                       channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, 'LOYALTY', channel, messageInfo)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'],
                              messageDetails['PAYLOAD']).check()
Exemplo n.º 19
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))
Exemplo n.º 20
0
 def irisv2_message_create_upload_mobile_immediate_plain_lapsed(self, campaignType, testControlType, listType,
                                                                     channel, messageInfo):
     CreateCampaign.create(campaignType, testControlType, endDate=int(
         time.time() * 1000) + 5 * 60 * 1000)  # Extending Campaign for 5 Mins to set message
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']).check()
Exemplo n.º 21
0
 def irisv2_message_create_testDerived_Recurring_plain_derived(self, campaignType, testControlType,
                                                                    channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, 'DERIVED', channel, messageInfo,
                                           derivedListInfo={'includedGroups': ['UPLOAD', 'UPLOAD'],
                                                            'noOfUserUpload': 5})
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 400, expectedErrorCode=[3050],
                                  expectedErrorMessage='Target Audience is not filter based : {}.'.format(
                                      messageDetails['PAYLOAD']['targetAudience']['include'][0]))
Exemplo n.º 22
0
 def irisv2_message_create_filter_mobile_Recurring_plain_UsingTinyURL(self, campaignType, testControlType,
                                                                           listType, channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']).check()
Exemplo n.º 23
0
    def test_irisv2_getMessage_queryParam_WithBothTargetAudienceAndVariation_HavingOffer(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        for eachType in ['MESSAGE_TARGET_AUDIENCE', 'VARIANT_CREATION']:
            status = message_calls().waitForJobDetailsStatusToClose(
                messageId, eachType, maxNumberOfAttempts=20)

        if status:
            getMessageResponse = GetMessage.getMessageById(
                campaignId, messageId, [('includeVariant', 'true'),
                                        ('includeAudience', 'true')])
            GetMessage.assertResponse(getMessageResponse, 200)
            CreateMessageDBAssertion(
                campaignId, messageId,
                getMessageResponse['json']['entity']).check()
            VariantDBAssertion(
                campaignId,
                messageId,
                getMessageResponse['json']['entity']['messageVariantList'],
                offer=True).check()
            GetListDBAssertion(
                constant.config['node'][campaignType][testControlType]['LIST']
                [listType][channel]['ID'], {
                    'json': {
                        'entity':
                        getMessageResponse['json']['entity']['targetAudience']
                        ['includeAudienceGroupInfo'][0]
                    }
                },
                campaignHashLookUp=False,
                createAudienceJob=False,
                reachabilityCheck=False,
                campaignGroupRecipients=False).check()
        else:
            Assertion.constructAssertion(
                False, 'Variant_Creation is Not Closed in Specified time')
 def irisv2_message_create_filter_derived_SMS_immediate_plain_additionalProperties_UsingTinyURL(self, campaignType,
                                                                                                testControlType,
                                                                                                channel,
                                                                                                messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, 'DERIVED', channel, messageInfo,derivedListInfo={ 'includedGroups' : ['UPLOADOLD', 'LOYALTY'],'excludedGroup' : ['UPLOADOLD'], 'noOfUserUpload' : 5})
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']).check()
Exemplo n.º 25
0
    def test_irisv2_getMessageVariant_create_upload_mobile_immediate_points(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageVariantById(
            campaignId,
            message_calls().getVariantIdByMessageId(messageId))
        GetMessage.assertResponse(getMessageResponse, 200)
        VariantDBAssertion(campaignId, messageId,
                           [getMessageResponse['json']['entity']]).check()
 def irisv2_message_execute_upload_mobile_immediate_plain_lapsed(self, campaignType, testControlType, listType,
                                                                      channel, messageInfo):
     CreateCampaign.create(campaignType, testControlType, endDate=int(
         time.time() * 1000) + 1 * 60 * 1000)
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo)
     approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo,
                                               messageCreateResponse=messageDetails)
     AuthorizeMessage.assertResponse(approveRespone, 400, expectedErrorCode=3036,
                                     expectedErrorMessage=['Campaign expired'])
Exemplo n.º 27
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)
    def test_irisv2_getMessage_mobilePush_queryParam_withTargetAudience(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageById(
            campaignId, messageId, [('includeAudience', 'true')])
        GetMessage.assertResponse(getMessageResponse, 200)
        CreateMessageDBAssertion(campaignId, messageId,
                                 getMessageResponse['json']['entity']).check()
 def irisv2_message_edit_PARTICULARDATE_upcoming_create_execute_plain_mobile_schedulle_body_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')
     dateTime = Utils.getTime(hours=5, minutes=32, dateTimeFormat=True)
     messageDetails['PAYLOAD'].update({
         'schedule': {
             'startDate':
             Utils.getTime(minutes=1, seconds=25, milliSeconds=True),
             'endDate':
             Utils.getTime(minutes=40, milliSeconds=True),
             'repeatOn': [1],
             'repeatType':
             'DAILY',
             'scheduleType':
             'RECURRING',
             'hour':
             int(dateTime[11:13]),
             'minute':
             int(dateTime[14:16])
         }
     })
     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=1)
     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=1).check()
Exemplo n.º 30
0
 def irisv2_message_create_upload_mobile_immediate_plain_additionalProperties_UsingRateLimit(self, campaignType,
                                                                                                  testControlType,
                                                                                                  listType, channel,
                                                                                                  messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']).check()