def test_irisv2_message_execute_loyalty_mobile_coupon_recurring_ProdSanity( self, campaignType, testControlType, listType, channel, messageInfo): campaignId = CreateCampaign.create(campaignType, testControlType, updateNode=True, lockNode=True)['ID'] couponSeriesId = CreateMessage.getCouponSeriesId(campaignId) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, campaignId=campaignId, couponSeriesId=couponSeriesId) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = campaignId response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def irisv2_message_execute_stickyList_particularDate_coupon( self, campaignType, testControlType, listType, channel, messageInfo): includeUsers = constant.config[ 'pocUsers'] + CreateAudience.getPocNewUsers(offset=5) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, derivedListInfo={ 'excludeUsers': CreateAudience.getPocNewUsers(newUsers=True), 'includeUsers': includeUsers, 'groupId': self.listInfo[0]['gId'], 'label': self.listInfo[0]['gLabel'] }) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
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()
def test_irisv2_message_execute_mobilePush_ContentType_OnlyAndroid( self, campaignType, testControlType, listType, channel, messageInfo): constant.config['mobilepush']['channels'] = ['android'] try: approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, updateNode=True) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][ testControlType]['CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][ messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][ messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check() finally: constant.config['mobilepush']['channels'] = ['android', 'ios']
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()
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 irisv2_message_execute_stickyList_immediate_plain_additionalProperties_UsingTinyURL( self, campaignType, testControlType, listType, channel, messageInfo): messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, updateNode=True, derivedListInfo={ 'excludeUsers': [], 'includeUsers': ':1' }) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, messageCreateResponse=messageDetails) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_irisv2_message_personalize_execute_stickylist_Msms_Msms_particulardate_plain_plain_live_multiCategory( self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, derivedListInfo={ 'excludeUsers': [], 'includeUsers': ':1' }) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType, personalizedMessage=True).check()
def irisv2_message_Sanity_create_execute_stickyList_immediate_plain( self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, derivedListInfo={ 'excludeUsers': [], 'includeUsers': ':1' }) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_irisv2_message_execute_loyalty_mobile_email_recurring_immediate_particulardate_allOffer_live_current( self, campaignType, testControlType, listType, channel, messageInfo): campaignId = CreateCampaign.create(campaignType, testControlType, updateNode=True, lockNode=True)['ID'] approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, campaignId=campaignId) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = campaignId response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_irisv2_message_execute_stickylistThread_mobile_email_coupon_live_ProdSanity( self, campaignType, testControlType, listType, channel, messageInfo, skippedReason): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, derivedListInfo={ 'excludeUsers': [], 'includeUsers': ':1' }) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType, skippedReason=skippedReason).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()
def irisv2_message_Validation_StoreTag_Skip_create_execute_upload_mobile_immediate_plain(self, campaignType, testControlType, listType, channel, messageInfo): messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, updateNode=True, lockNode=True) approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, messageCreateResponse=messageDetails) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'], testControlType,skippedReason=['NO_STORE','No entry for store present']).check()
def irisv2_message_execute_upload_mobile_particularDate_coupon(self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_approveMessage_positiveScenarios_WithDifferntStoreType(self, campaignType, testControlType, listType, channel, messageInfo, storeType): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, updateNode=True, lockNode=True, storeType=storeType) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
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_2_irisv2_message_execute_upload_mobile_particularDate_plain_UsingRateLimit(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).check()
def test_reminder_edit_allToNotTransacted_particularDate_coupons(self, campaignType, testControlType, listType, channel, messageInfo): remindParams = { 'reminderStrategy': 'ALL', 'parentMessageId': constant.config['reminder']['coupon']['messageId'] } campaignId = constant.config['reminder']['coupon']['campaignId'] messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, listInfo='', campaignId=campaignId, remindParams=remindParams, lockNode=True) CreateMessage.assertResponse(messageDetails['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION') editInfo = { 'messageContent': { 'message_content_id_1': { "storeType": "REGISTERED_STORE", "offers": [], "messageBody": "Edit Message {{first_name}} {{last_name}} {{fullname}} {{dynamic_expiry_date_after_1_days.FORMAT_2}} {{voucher}} {{valid_days_from_create}} {{valid_till_date.FORMAT_2}} {{optout}}", "channel": "SMS" } }, 'targetAudience': { "isDef": True, "orgUsers": [], "includeDefinition": { "parentMessageId": constant.config['reminder']['coupon']['messageId'], "defType": "parentMsgReminder", "reminderStrategy": "NOT_TRANSACTED" } }, 'schedule': {'scheduleType': 'PARTICULAR_DATE', 'scheduledDate': Utils.getTime(minutes=3, seconds=30, milliSeconds=True) } } editInfo = CreateMessage.edit(campaignId, messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'], editInfo) message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION', version=1) approveRespone = AuthorizeMessage.approveWithCampaignAndMessageId(campaignId, editInfo['RESPONSE']['json']['entity'][ 'id']) AuthorizeMessage.assertResponse(approveRespone, 200) AuthorizeMessageDBAssertion(campaignId, editInfo['RESPONSE'], editInfo['PAYLOAD'], testControlType, version=1).check()
def test_reminder_create_plain_transactionType_All_Sanity(self, campaignType, testControlType, listType, channel, messageInfo): remindParams = { 'reminderStrategy': 'ALL', 'parentMessageId': constant.config['reminder']['plain']['messageId'] } campaignId = constant.config['reminder']['plain']['campaignId'] messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, listInfo='', campaignId=campaignId, remindParams=remindParams, lockNode=True) CreateMessage.assertResponse(messageDetails['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION',sleepTime=20) approveRespone = AuthorizeMessage.approveWithCampaignAndMessageId(campaignId, messageDetails['RESPONSE']['json']['entity']['id']) AuthorizeMessage.assertResponse(approveRespone, 200) AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'], testControlType).check()
def irisv2_message_edit_RECURRING_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') messageDetails['PAYLOAD'].update({ 'schedule': { 'scheduleType': 'PARTICULAR_DATE', 'scheduledDate': int(time.time() * 1000) + 2 * 60 * 1000 } }) editInfo = CreateMessage.edit( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']) CreateMessage.assertResponse(editInfo['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose( editInfo['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION', version=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 est_irisv2_message_execute_upload_sms_immediate_points_plain_live_callTask( self, campaignType, testControlType, listType, channel, messageInfo): #TODO Task Still pending . approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_approveMessage_USER_ID_positiveScenarios_WithDifferntCustomTags(self, campaignType, testControlType, listType, channel, messageInfo, customTags): listInfo = CreateAudience.uploadList(campaignType, testControlType, schemaIdentifier=[channel], schemaData=[channel, 'FIRST_NAME'] + customTags, newUser=False, campaignCheck=False, updateNode=True, lockNode=True) messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo=messageInfo, listInfo=listInfo, updateNode=True, lockNode=True, numberOfCustomTag=len(customTags)) if not message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION'): raise Exception('VariantNotCreatedException') campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] 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_personalize_execute_loyalty_smsssssssssssssssss_email_sms_immediate_coupon_points_plain_live_multiCategory( self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType, personalizedMessage=True).check()
def test_irisv2_message_Sanity_execute_mobilePush_android_text_ios_image_secondCTA_DeepLink_PrimaryCTA_ExternalURL_customTrue( self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, updateNode=True) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_irisv2_message_execute_mobilePush_android_image_secondCTA_Multiplevalue_primaryCTAEmable_IOS_Text( self, campaignType, testControlType, listType, channel, messageInfo): approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo, updateNode=True) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
def test_irisv2_message_execute_upload_push_immediate_coupon_live_pushThread( self, campaignType, testControlType, listType, channel, messageInfo): try: actualOrgId = IrisHelper.updateOrgId( constant.config['mobilepush']['orgId']) actualOrgName = IrisHelper.updateOrgName( constant.config['mobilepush']['orgName']) campaignInfo = CreateCampaign.create(campaignType, testControlType, updateNode=True, lockNode=True) couponSeriesId = CreateMessage.getCouponSeriesId( campaignInfo['ID']) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, campaignId=campaignInfo['ID'], couponSeriesId=couponSeriesId) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = campaignInfo['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][ messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][ messageInfo['scheduleType']['type']][ messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check() finally: IrisHelper.updateOrgId(actualOrgId) IrisHelper.updateOrgName(actualOrgName)
def test_irisv2_message_personalize_execute_derived_smssssssssssssss_email_immediate_plain_plain_live_multiCategory( self, campaignType, testControlType, channel, messageInfo): messageDetails = CreateMessage.create( campaignType, testControlType, 'DERIVED', channel, messageInfo, derivedListInfo={ 'includedGroups': ['UPLOAD', 'LOYALTY', 'DERIVED'], 'excludedGroup': ['UPLOADOLD'], 'derived': ['UPLOADOLD', 'UPLOAD', 'LOYALTY'], 'noOfUserUpload': 5 }) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, 'DERIVED', channel, messageInfo=messageInfo, messageCreateResponse=messageDetails) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] response = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['RESPONSE'] payload = constant.config['node'][campaignType][testControlType][ 'LIST'][listType][channel]['MESSAGE'][messageInfo['scheduleType'][ 'type']][messageInfo['offerType']]['PAYLOAD'] AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType, personalizedMessage=True).check()
def irisv2_message_sanity_execute_filter_immediate_plain_storeTag_lasttransactedstore( self, campaignType, testControlType, listType, channel, messageInfo): messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, updateNode=True, lockNode=True) approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, messageCreateResponse=messageDetails) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'], testControlType).check()
def test_irisv2_getStatusBy_messageId_Sanity(self, campaignType, testControlType, channel, messageInfo, queryParam): messageDetails = CreateMessage.create(campaignType, testControlType, 'LOYALTY', channel, messageInfo, updateNode=True, lockNode=True) CreateMessage.assertResponse(messageDetails['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose( messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION') approveRespone = AuthorizeMessage.approve( campaignType, testControlType, 'LOYALTY', channel, messageInfo, messageCreateResponse=messageDetails) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'], testControlType).check() response = GetMonitoringDetails.getByMessageId( campaignId, messageDetails['RESPONSE']['json']['entity']['id'], queryParam) actualResponse, expectedResponse = GetMonitoringDetails.formatingMonitorDetails( response, isScheduledMsg=True, isDeliveryBreakEnabled=True) Assertion.constructAssertion( actualResponse == expectedResponse, 'Monitoring Details response Matched Actual: {} and Expected: {}'. format(actualResponse, expectedResponse))
def irisv2_message_edit_reject_edit_stop_execute_Sanity( self, campaignType, testControlType, listType, channel, messageInfo): messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo, updateNode=True, lockNode=True) CreateMessage.assertResponse(messageDetails['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose( messageDetails['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION') messageDetails['PAYLOAD'].update({ 'schedule': { 'scheduleType': 'PARTICULAR_DATE', 'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000 } }) #editing message editInfo = CreateMessage.edit( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']) CreateMessageDBAssertion(constant.config['node'][campaignType] [testControlType]['CAMPAIGN']['ID'], editInfo['RESPONSE']['json']['entity']['id'], editInfo['PAYLOAD'], version=1).check() #rejecting message rejectResponse = CreateMessage.reject( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id']) CreateMessage.assertResponse(rejectResponse, 200) CreateMessageDBAssertion( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'], approved='REJECTED').check() #editing message messageDetails['PAYLOAD'].update({ 'schedule': { 'scheduleType': 'PARTICULAR_DATE', 'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000 } }) editInfo = CreateMessage.edit( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']) CreateMessage.assertResponse(editInfo['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose( editInfo['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION', version=2) CreateMessageDBAssertion(constant.config['node'][campaignType] [testControlType]['CAMPAIGN']['ID'], editInfo['RESPONSE']['json']['entity']['id'], editInfo['PAYLOAD'], version=2).check() #approving message approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, messageCreateResponse=editInfo) AuthorizeMessage.assertResponse(approveRespone, 200) time.sleep(15) #stopping the message stopResponse = CreateMessage.stop( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], approveRespone['json']['entity']['messageId']) CreateMessage.assertResponse(stopResponse, 200) CreateMessageDBAssertion( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'], reject={ 'status': 'CLOSED' }, approved='STOPPED').check() #editing message messageDetails['PAYLOAD'].update({ 'schedule': { 'scheduleType': 'PARTICULAR_DATE', 'scheduledDate': int(time.time() * 1000) + 4 * 60 * 1000 } }) editInfo = CreateMessage.edit( constant.config['node'][campaignType][testControlType]['CAMPAIGN'] ['ID'], messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']) CreateMessage.assertResponse(editInfo['RESPONSE'], 200) message_calls().waitForJobDetailsStatusToClose( editInfo['RESPONSE']['json']['entity']['id'], 'VARIANT_CREATION', version=3) CreateMessageDBAssertion(constant.config['node'][campaignType] [testControlType]['CAMPAIGN']['ID'], editInfo['RESPONSE']['json']['entity']['id'], editInfo['PAYLOAD'], version=3).check() #approving message approveRespone = AuthorizeMessage.approve( campaignType, testControlType, listType, channel, messageInfo, messageCreateResponse=editInfo) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] AuthorizeMessageDBAssertion(campaignId, editInfo['RESPONSE'], editInfo['PAYLOAD'], testControlType, version=3).check()