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_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']))
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()
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)
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 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()
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))
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))
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()
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']))
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()
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)
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()
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]))
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()
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()
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)
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']))
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)
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)
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)
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))
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()