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()
Example #2
0
 def test_irisv2_message_edit_recurring_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']))
Example #3
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()
Example #4
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)
Example #5
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()
Example #6
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()
Example #7
0
 def test_irisV2_editCampaignStartDate_AftereCreatingMessage(
         self, description, campaignType, testControlType, channel,
         messageInfo, editInfo, statusCode, errorCode, errorDescription):
     campaignInfo = CreateCampaign.create(campaignType,
                                          testControlType,
                                          updateNode=True)
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'LOYALTY',
                                           channel,
                                           messageInfo,
                                           campaignId=campaignInfo['ID'],
                                           updateNode=True)
     campaignInfo = constant.config['node'][campaignType][testControlType][
         'CAMPAIGN']
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     editInfo = CreateCampaign.edit(campaignInfo, editInfo)
     Assertion.constructAssertion(
         editInfo['RESPONSE']['statusCode'] == statusCode,
         'Actual Status Code :{} and Expected : {}'.format(
             editInfo['RESPONSE']['statusCode'], statusCode))
     Assertion.constructAssertion(
         editInfo['RESPONSE']['json']['errors'][0]['code'] == errorCode,
         'Actual Error Code :{} and Expected : {}'.format(
             editInfo['RESPONSE']['json']['errors'][0]['code'], errorCode))
     Assertion.constructAssertion(
         editInfo['RESPONSE']['json']['errors'][0]['message']
         in errorDescription,
         'Actual Error Code :{} and Expected : {}'.format(
             editInfo['RESPONSE']['json']['errors'][0]['message'],
             errorDescription))
Example #8
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))
Example #9
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()
Example #10
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))
    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']))
Example #12
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()
Example #13
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)
Example #14
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)
 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()
Example #16
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))
 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()
 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]))
Example #19
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()
 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()
Example #21
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 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()
Example #23
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()
 def irisv2_message_execute_filter_mobile_Recurring_plain_UsingRateLimit(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
Example #25
0
 def test_irisv2_editMessage_with_invalid_messageId(self, campaignType, testControlType,
                                                      listType,
                                                      channel, messageInfo, statusCode, errorCode, errorDescription):
     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)
     editInfo = CreateMessage.edit(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                   'hjsdgf7823jsd72v',messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'], 400, expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription.format(messageDetails['RESPONSE']['json']['entity']['id']))
Example #26
0
 def test_irisV2_editMessage_afterCampaign_expires(self, description, campaignType, testControlType, channel,
                                                   messageInfo, statusCode, errorCode, errorDescription):
     messageDetails = CreateMessage.create(campaignType, testControlType, 'LOYALTY', channel, messageInfo,
                                           updateNode=True)
     campaignInfo = constant.config['node'][campaignType][testControlType]['CAMPAIGN']
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     editInfo = {'endDate': Utils.getTime(minutes=1, milliSeconds=True)}
     editInfo = CreateCampaign.edit(campaignInfo, editInfo)
     time.sleep(61)
     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)
Example #27
0
 def test_irisv2_message_edit_immediate_live_create_plain_mobile_negativeCases(self, campaignType,
                                                                               testControlType, listType,
                                                                               channel, messageInfo,
                                                                               editInfo, statusCode, errorCode,
                                                                               errorDescription):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True, lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     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)
Example #28
0
 def test_irisv2_editMessage_with_negative_campaignId(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')
     editInfo = CreateMessage.edit(-1234,
                                   messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'], 400, expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription)
Example #29
0
 def test_irisv2_getStatusBy_messageId_All_User_Skipp(
         self, campaignType, testControlType, channel, messageInfo,
         queryParam):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'UPLOAD',
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     messageDetails['PAYLOAD']['messageContent']['message_content_id_1'][
         'emailBody'] = '{{unsubscribe}},{{last_transacted_store_external_id_2}}'
     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,
         'UPLOAD',
         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,
         skippedReason=['No entry for last shopped store present']).check()
     response = GetMonitoringDetails.getByMessageId(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], editInfo['RESPONSE']['json']['entity']['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))
Example #30
0
    def test_irisv2_message_execute_flow_precheck_particularDate_passed_with2MinsInterval(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        precheckError = {
            'remind': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'CAMPAIGN_NOT_AUTHORIZED'
            }
        }
        scheduleType = {
            'scheduleType':
            'PARTICULAR_DATE',
            'scheduledDate':
            Utils.getTime(minutes=2, seconds=00, milliSeconds=True)
        }
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              scheduleType=scheduleType,
                                              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']).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()