def test_approveMessage_negative_validationMessage_particularDate_ApproveAfterSchedulle( self): messageInfo = { 'scheduleType': { 'type': 'PARTICULARDATE' }, 'offerType': 'PLAIN', 'messageStrategy': { 'type': 'DEFAULT' }, 'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True } messageDetails = CreateMessage.create('LIVE', 'ORG', 'UPLOAD', 'MOBILE', messageInfo) time.sleep(120) responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( self.campaignInfo['ID'], messageDetails['RESPONSE']['json']['entity']['id']) AuthorizeMessage.assertResponse( responseAuthorize, 400, expectedErrorCode=3023, expectedErrorMessage="Message with message id {} does not exists". format(messageDetails['RESPONSE']['json']['entity']['id']))
def test_approveMessage_negative_validationMessage_immediate_ApprovingAlreadyApprovedMessage( self): messageInfo = { 'scheduleType': { 'type': 'IMMEDIATE' }, 'offerType': 'PLAIN', 'messageStrategy': { 'type': 'DEFAULT' }, 'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True } campaignType = 'LIVE' testControlType = 'ORG' listType = 'UPLOAD' channel = 'MOBILE' approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo) AuthorizeMessage.assertResponse(approveRespone, 200) campaignId = constant.config['node'][campaignType][testControlType][ 'CAMPAIGN']['ID'] responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( campaignId, approveRespone['json']['entity']['messageId']) AuthorizeMessage.assertResponse( responseAuthorize, 400, expectedErrorCode=3022, expectedErrorMessage='Message is already approved')
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_approveMessage_negative_validationMessage_wrongMessageId( self, messageId, response, errorCode, errorMessage): responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( self.campaignInfo['ID'], messageId) AuthorizeMessage.assertResponse(responseAuthorize, response, expectedErrorCode=errorCode, expectedErrorMessage=errorMessage)
def test_approveMessage_negative_validationMessage_wrongcampaignId( self, campaignId, response, errorCode, errorMessage): responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( campaignId, self.messageDetails['RESPONSE']['json']['entity']['id']) AuthorizeMessage.assertResponse(responseAuthorize, response, expectedErrorCode=errorCode, expectedErrorMessage=errorMessage)
def test_irisv2_approve_message_after_7_days(self): responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( '760905', '5d878d854f0c41f1325c22d1') AuthorizeMessage.assertResponse( responseAuthorize, 400, expectedErrorCode=3070, expectedErrorMessage= 'Message cannot be approved beyond allowed period of 7 Days : Message cannot be approved 5d878d854f0c41f1325c22d1' )
def test_approveMessage_negative_validationMessage_wrongAuth(self): previousUser = IrisHelper.updateUserName('XXXX') try: responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( self.campaignInfo['ID'], self.messageDetails['RESPONSE']['json']['entity']['id']) AuthorizeMessage.assertResponse( responseAuthorize, 401, expectedErrorCode=999999, expectedErrorMessage='Unauthorized') except Exception, exp: Assertion.constructAssertion(False, 'Exception Occured :{}'.format(exp))
def test_approveMessage_negative_validationMessage_wrongOrgId(self): previousOrg = IrisHelper.updateOrgId(-1) Logger.log(constant.config['orgId']) try: responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( self.campaignInfo['ID'], self.messageDetails['RESPONSE']['json']['entity']['id']) AuthorizeMessage.assertResponse( responseAuthorize, 401, expectedErrorCode=999999, expectedErrorMessage='Invalid org id') except Exception, exp: Assertion.constructAssertion(False, 'Exception Occured :{}'.format(exp))
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_approveMessage_negative_validationMessage_different_campaignId( self): campaignInfo = CreateCampaign.create('LIVE', 'CUSTOM') diffId = campaignInfo['ID'] responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( diffId, self.messageDetails['RESPONSE']['json']['entity']['id']) messageId = self.messageDetails['RESPONSE']['json']['entity']['id'] AuthorizeMessage.assertResponse( responseAuthorize, 400, expectedErrorCode=3023, expectedErrorMessage=[ 'Message with message id {} does not exists'.format(messageId) ])
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 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_approveMessage_negative_validationMessage_wrongcampaignIdMessage( self, campaignId, response, errorCode, errorMessage): responseAuthorize = AuthorizeMessage.approveWithCampaignAndMessageId( campaignId, self.messageDetails['RESPONSE']['json']['entity']['id']) Assertion.constructAssertion( responseAuthorize['statusCode'] == response, 'Actual code :{} and Expected:{}'.format( responseAuthorize['statusCode'], response)) for errors in responseAuthorize['json']['errors']: Assertion.constructAssertion( errors['code'] in errorCode, 'Actual Error Code :{} and Expected :{}'.format( errors['code'], errorCode)) Assertion.constructAssertion( errors['message'] in errorMessage[2].format( self.messageDetails['RESPONSE']['json']['entity']['id']), 'Actual Error message :{} and Expected :{}'.format( errors['message'], errorMessage[2].format(self.messageDetails['RESPONSE'] ['json']['entity']['id'])))