Esempio n. 1
0
 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)
Esempio n. 2
0
 def test_veneno_skippedUser_noCouponForUser_ProdSanity(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'], testControlType='skip', 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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_veneno_rateLimitsss_dailyLimitExceed(self, listType):
     self.listId = self.testObjectForRateLimit['list'][listType]['groupDetails']['id']
     authorizeResult = VenenoHelper.authorizeForRateLimit(self, listType)
     authorize.assertAuthorize(authorizeResult['authorizeResponse'], 200)
     communicationDetailId ,communicationDetailBucketId, communicationDetailExpectedCount=authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId,authorizeResult['groupVersionResult']['TEST']['id'],authorizeResult['messageId'])
     VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, authorizeResult['groupVersionResult']['TEST']['customer_count'], authorizeResult['groupVersionResult']['TEST']['id'], authorizeResult['payload']['message'],testControlType='custom',skippedReasons=['rate limit crossed for user']).check()
     authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['RATE_LIMIT_ERROR'], 'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1})
 def test_veneno_rateLimit_SetWithSomeNegativeValue(self, listType):
     VenenoHelper.setupStrategy(daily=-1, weekly=-1, monthly=-1)
     VenenoHelper.updateWindowValueToByPassStrategy(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], 'MONTHLY')
     self.listId = self.testObjectForRateLimit['list'][listType]['groupDetails']['id']
     authorizeResult = VenenoHelper.authorizeForRateLimit(self, listType)
     communicationDetailId ,communicationDetailBucketId, communicationDetailExpectedCount=authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId,authorizeResult['groupVersionResult']['TEST']['id'],authorizeResult['messageId'])
     VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, authorizeResult['groupVersionResult']['TEST']['customer_count'], authorizeResult['groupVersionResult']['TEST']['id'], authorizeResult['payload']['message'],testControlType='custom',skippedReasons=['rate limit crossed for user']).check()
     authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['RATE_LIMIT_ERROR'], 'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':3, 'WEEKLY':2, 'MONTHLY':1})
Esempio n. 8
0
    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_veneno_rateLimit_monthlyLimitExceed(self, listType):
     VenenoHelper.setupStrategy(daily=2,
                                weekly=2,
                                monthly=1,
                                channel='PUSH')
     self.listId = self.testObjectForRateLimit['list'][listType][
         'groupDetails']['id']
     cdDetailsBody = {
         'campaignId':
         self.testObjectForRateLimit['campaign']['id'],
         'communicationType':
         'PUSH',
         'subject':
         'Automation Generated Body',
         'body':
         '{"templateData":{"CHANNELACCOUNTNAME":{"luid":"{{luid}}","cuid":"{{cuid}}","communicationId":"{{communicationId}}","title":"asas","message":"asasas","expandableDetails":{"style":"BIG_TEXT","message":"asasas"},"custom":[]}}}'
         .replace('CHANNELACCOUNTNAME', self.account),
         'recipientListId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['id'],
         'overallRecipientCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'groupName':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['group_label']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     communicationDetailBucketId = VenenoHelper.getCommunicationBucketId(
         communicationId)
     authorize.assertUserPresenceInSkippedTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         constant.config['skipped_errors']['RATE_LIMIT_ERROR'],
         'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 1,
             'WEEKLY': 1,
             'MONTHLY': 1
         },
         channel='PUSH')
Esempio n. 10
0
 def test_veneno_rateLimit_dailyLimitExceed(self, listType):
     self.listId = self.testObjectForRateLimit['list'][listType]['groupDetails']['id']
     cdDetailsBody = {
          'campaignId':self.campaignId,
          'communicationType':'EMAIL',
          'subject':'Automation Generated Body {{unsubscribe}}',
          'recipientListId':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['id'],
          'overallRecipientCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'expectedDeliveryCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'groupName':self.testObjectForRateLimit['list'][listType]['groupDetails']['group_label']
         }
     communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
     communicationDetailBucketId = VenenoHelper.getCommunicationBucketId(communicationId)
     authorize.assertUserPresenceInSkippedTable(communicationId , VenenoHelper.getCommunicationBucketId(communicationId), constant.config['skipped_errors']['RATE_LIMIT_ERROR'], 'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1}, channel='EMAIL')
Esempio n. 11
0
 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')
Esempio n. 12
0
    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)
Esempio n. 13
0
    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