def test_veneno_skippedUser_couponAlreadyIssued_ProdSanity(self): try: self.couponConfigChange({'do_not_resend_existing_voucher':True}) time.sleep(70) messagePayloadToUpdate = { 'incentive':{ 'type':'COUPONS', 'voucherSeriesId':self.voucherId }, 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due to Coupon is not reusable : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['max coupon per user exceeded']).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['MAX_COUPON_ISSUAL_PER_USER_EXCEEDED'], 'max coupon per user exceeded') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_veneno_skippedUser_couponExpired(self): try: self.couponConfigChange({ 'fixedExpiryDate': int(time.time() * 1000 - 24 * 60 * 60 * 1000) }) time.sleep(70) messagePayloadToUpdate = { 'incentive': { 'type': 'COUPONS', 'voucherSeriesId': self.voucherId }, 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to Coupon not issuable as its Expired : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], skippedReasons=['coupon series expired']).check() authorize.assertUserPresenceInSkippedTable( communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['COUPON_EXPIRED'], 'coupon series expired') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_authorize_sms_max_user_limit(self, description, messageInfo , errorMessage): actualListIdGettingUsedInAllCases = self.listId actualCampaignIdGettingUsedInAllCases = self.campaignId try: self.listId = constant.config['message_recurring']['SMS']['listId'] self.campaignId = constant.config['message_recurring']['SMS']['campaignId'] payloadData = construct.constructCreateMessageBody(self.listId, messageInfo[0], messageInfo[1], messageInfo[2], messageInfo[3]) payloadData['schedule'].update({'maxUsers': 1}) response = campaignMessage.createMessage(self, payloadData=payloadData)[0] messageId = response['json']['entity']['messageId'] authorize.makeAuthorizeRequest(self.campaignId, messageId) time.sleep(80) authorize.dbAssertAuthorize_HealthDashboardNotification(self.campaignId, messageId, ExpectedMsg=errorMessage, channel='users_recurring_campaign') except AssertionError, reason: Assertion.constructAssertion(False, reason)
def test_veneno_skippedUser_noStore_ProdSanity(self, storeType, errorType, errorMessage): originalListId = self.listId originalBucketId = self.bucketId originalGroupVersionDetail = self.groupVersionResult try: messagePayloadToUpdate = { 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due to Store Name Tag used :{{store_name}} {{optout}}', 'storeType' : storeType } mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=[errorMessage]).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, errorType, errorMessage) except Exception, exp: Assertion.constructAssertion(False, exp)
def test_veneno_skippedUser_invalidMobile(self): originalListId = self.listId originalBucketId = self.bucketId originalGroupVersionDetail = self.groupVersionResult try: messagePayloadToUpdate = { 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due Invalid User : {{optout}}' } invalidUserData = 'ndncFirstName,ndncLastName,{}'.format(dbCallsMessage.getInvalidUserMobileNumber()[0]) mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':[invalidUserData]}}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Captured mobile for user seems to be invalid']).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['INVALID_MOBILE'], 'Captured mobile for user seems to be invalid') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_veneno_skippedUser_unsubscribed_ProdSanity(self): originalListId = self.listId originalBucketId = self.bucketId originalGroupVersionDetail = self.groupVersionResult try: messagePayloadToUpdate = { 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due Unsubscribe User : {{optout}}' } cusObj = InTouchAPI(Customer.Add()) mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':['TestX,AutomationX,{}'.format(cusObj.params['mobile'])]}}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] unsubscribeObj = InTouchAPI(Customer.unsubscribe(body={'root':{'subscription':{'mobile':cusObj.params['mobile']}}})) if unsubscribeObj.status_code == 200: messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Captured mobile for user seems to be unsubscribed']).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['UNSUBSCRIBED'], 'Captured mobile for user seems to be unsubscribed') else : raise Exception('Not Able To Unsubscribe using Intouch Call') except Exception, exp: Assertion.constructAssertion(False, exp)
def authorizeForRateLimit(self, listType): messageResponse, messagePayload = campaignMessage.createMessage( self, messageInfo=['SMS', ['IMMEDIATE'], ['PLAIN'], True]) authorizeResponse = authorize.makeAuthorizeRequest( str(self.testObjectForRateLimit['campaign']['id']), str(messageResponse['json']['entity']['messageId'])) return { 'campaignId': self.testObjectForRateLimit['campaign']['id'], 'listId': self.testObjectForRateLimit['list'][listType]['groupDetails'] ['id'], 'groupVersionResult': self.testObjectForRateLimit['list'][listType] ['groupVersionDetails'], 'bucketId': self.testObjectForRateLimit['list'][listType] ['groupVersionDetails']['TEST']['bucket_id'], 'voucherId': None, 'strategy': None, 'messageInfo': ['SMS', ['IMMEDIATE'], ['PLAIN'], True], 'payload': messagePayload, 'messageId': str(messageResponse['json']['entity']['messageId']), 'authorizeResponse': authorizeResponse }
def test_veneno_skippedUser_noCouponForUser(self): try: mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList( campaignId=self.campaignId, numberOfUsers=2) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] self.couponConfigChange({'max_create': 1, 'max_redeem': 1}) time.sleep(70) messagePayloadToUpdate = { 'incentive': { 'type': 'COUPONS', 'voucherSeriesId': self.voucherId }, 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to number of Issued coupon is 1 and users are 2 : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], skippedReasons=['max create for series exceeded']).check() authorize.assertUserPresenceInSkippedTable( communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors'] ['MAX_COUPON_ISSUAL_PER_SERIES_EXCEEDED'], 'max create for series exceeded') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_authorize_sms_invalid_orgId(self, description, messageInfo, orgIdPassed, statusCode, errorCode, errorMessage): actualOrgIdGettingUsedThroughOut = constant.config['orgId'] try: response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0] messageId = response['json']['entity']['messageId'] constant.config['orgId'] = orgIdPassed authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage[0].format(self.campaignId)) except AssertionError, reason: Assertion.constructAssertion(False, reason)
def test_veneno_skippedUser_nonLoyaltyCustomer(self): originalListId = self.listId originalBucketId = self.bucketId originalGroupVersionDetail = self.groupVersionResult try: messagePayloadToUpdate = { 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to Loyalty Tag used :{{loyalty_points}} {{optout}}' } mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList( {}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], skippedReasons=['Users are not registered in loyalty program' ]).check() authorize.assertUserPresenceInSkippedTable( communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['NON_LOYALTY_CUSTOMER'], 'Users are not registered in loyalty program') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_authorize_sms_recurring_multiple_times(self, description, messageInfo, statusCode, errorCode, errorMessage): actualListIdGettingUsedInAllCases = self.listId actualCampaignIdGettingUsedInAllCases = self.campaignId try: self.listId = constant.config['message_recurring']['SMS']['listId'] self.campaignId = constant.config['message_recurring']['SMS']['campaignId'] authorizeResult = authorize.authorizeCampaign(self, messageInfo, False) authorizeResult = authorize.makeAuthorizeRequest(authorizeResult['campaignId'], authorizeResult['messageId']) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage) except AssertionError, reason: Assertion.constructAssertion(False, reason)
def test_veneno_skippedUser_couponReedemed_ProdSanity(self): try: cusObj = InTouchAPI(Transaction.Add()) mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':['TestX,AutomationX,{}'.format(cusObj.params['mobile'])]}}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] self.couponConfigChange({'allow_multiple_vouchers_per_user':False,'same_user_multiple_redeem':False,'multiple_use':False}) time.sleep(70) messagePayloadToUpdate = { 'incentive':{ 'type':'COUPONS', 'voucherSeriesId':self.voucherId }, 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due to Coupon has already been redeemed : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) custObjResponse = cusObj.response # json.loads(cusObj.response.replace("'", "\"")) couponCode = dbCallsCoupons.getCouponCode(self.voucherId, custObjResponse['response']['transactions']['transaction'][0]['customer']['user_id']) coupObj = InTouchAPI(Coupon.Redeem(body={'root':{'coupon':{'transaction':{'number':cusObj.params['transactionId'], 'amount':100}}}}, mobile=cusObj.params['mobile'], code=couponCode)) messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Coupon For user was already redeemed.']).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['COUPON_REDEEMED'], 'Coupon For user was already redeemed.') except Exception, exp: Assertion.constructAssertion(False, exp)
def messageAuthorizeWithoutAssertions(self): messagePayloadToUpdate = { 'incentive': { 'type': 'COUPONS', 'voucherSeriesId': self.voucherId }, 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to Coupon issuable : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId'])
def test_authorize_sms_NSAdmin(self, description, messageInfo , statusCode, errorCode, errorMessage): self.nsHelper.disableDomainPropertiesGatewayMap() self.nsHelper.addDefaultGateway('BULK') gatewayId = self.nsHelper.getDomainGatewayMapId('valuefirstmock') payload = {'senderDetails': {'gsmSenderId': 919845012345, 'useSystemDefaults': messageInfo[1], 'cdmaSenderId': 919845012345, 'domainGatewayMapId' : gatewayId}, 'channel': 'SMS'} response = campaignMessage.createMessage(self, payloadData=payload)[0] messageId = response['json']['entity']['messageId'] authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId) tmpErrorMessage = [] for error in errorMessage: tmpErrorMessage.append(error.format(gatewayId)) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, tmpErrorMessage)
def test_veneno_inboxUser_GroupTagPresent(self): messagePayloadToUpdate = { 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Inbox Due to group Tag Present in List :{{group_tag_1}} {{optout}}' } mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList( { 'groupTags': ['TestAutomation_GroupTag1', 'TestAutomation_GroupTag2'] }, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message']).check() authorize.assertUserPresenceInNsAdminTable( communicationDetailId, communicationDetailBucketId, 1)
def test_veneno_skippedUser_noGroupTagPresent_ProdSanity(self): messagePayloadToUpdate = { 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Skip Due to group Tag Not Present in List :{{group_tag_1}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Group Tag Not Present']).check() authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['GROUP_TAG_NOT_PRESENT'], 'Group Tag Not Present')
def test_authorize_sms_Domain_not_available(self, description, messageInfo , errorMessage): self.nsHelper.disableDomainPropertiesGatewayMap() self.nsHelper.addDefaultGateway('BULK') gatewayId = self.nsHelper.getDomainGatewayMapId('valuefirstmock') actualListIdGettingUsedInAllCases = self.listId actualCampaignIdGettingUsedInAllCases = self.campaignId try: self.listId = constant.config['message_recurring']['SMS']['listId'] self.campaignId = constant.config['message_recurring']['SMS']['campaignId'] payloadData = construct.constructCreateMessageBody(self.listId, messageInfo[0], messageInfo[1], messageInfo[2], messageInfo[3]) payloadData.update({'senderDetails': {'gsmSenderId': int(senderIds['gsm_sender_id']), 'useSystemDefaults': True, 'cdmaSenderId': int(senderIds['cdma_sender_id']), 'domainGatewayMapId' : gatewayId}, 'channel': 'SMS'}) response = campaignMessage.createMessage(self, payloadData=payloadData)[0] messageId = response['json']['entity']['messageId'] authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId) authorize.dbAssertAuthorize_HealthDashboardNotification(self.campaignId, messageId, ExpectedMsg=errorMessage, channel='campaign_authorized') except AssertionError, reason: Assertion.constructAssertion(False, reason)
def test_veneno_inboxUser_CustomFiledValue_ProdSanity(self): obj = InTouchAPI(Customer.Add(body={'root':{'customer':{'custom_fields':{'field':{'name':'gender', 'value':'Male'}}}}})) mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':['TestX,AutomationX,{}'.format(obj.params['mobile'])]}}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messagePayloadToUpdate = { 'senderDetails':{ 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId':constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults':False, 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId'] }, 'message' : 'This Message is Going to Inbox Due to custom Field Value : {{custom_field.gender}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId , communicationDetailBucketId , communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip').check() authorize.assertUserPresenceInNsAdminTable(communicationDetailId , communicationDetailBucketId, 1)
def test_authorize_sms_invalid_campaignId(self, description, messageInfo, campaignIdPassed, statusCode, errorCode, errorMessage): response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0] messageId = response['json']['entity']['messageId'] authorizeResult = authorize.makeAuthorizeRequest(campaignIdPassed, messageId) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage)
def test_authorize_sms_invalid_messageId(self, description, messageInfo, messageIdPassed, statusCode, errorCode, errorMessage): campaignMessage.createMessage(self, messageInfo=messageInfo)[0] authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageIdPassed) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage)
def test_authorize_sms_expired_campaign(self, description, messageInfo, payload, statusCode, errorCode, errorMessage): response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0] messageId = response['json']['entity']['messageId'] campaigns.updateCampaign(payload, campaignId=self.campaignId) authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage[0].format(self.campaignId))
def messageAuthorize(self, skippedError=[], isSkippedMessage=False, couponConfig=None): if couponConfig is not None: VenenoHelper.couponConfigChange(self, couponConfig) messagePayloadToUpdate = { 'incentive': { 'type': 'COUPONS', 'voucherSeriesId': self.voucherId }, 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to Coupon issuable : {{voucher}} {{optout}}' } messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = VenenoHelper.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) if not isSkippedMessage: communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType=self.testControlType).check() authorize.assertUserPresenceInNsAdminTable( communicationDetailId, communicationDetailBucketId, int(communicationDetailExpectedCount)) else: communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], skippedReasons=[skippedError[1]], testControlType=self.testControlType).check() authorize.assertUserPresenceInSkippedTable( communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors'][skippedError[0]], skippedError[1]) return communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount
def test_authorize_sms_multiple_times(self, description, messageInfo, statusCode, errorCode, errorMessage): authorizeResult = authorize.authorizeCampaign(self, messageInfo, constant.messagesDefault['updated']) authorizeResult = authorize.makeAuthorizeRequest(authorizeResult['campaignId'], authorizeResult['messageId']) authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage)