示例#1
0
    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)
示例#2
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)
示例#3
0
    def test_veneno_skippedUser_unsubscribed(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'],
                    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)
示例#4
0
    def test_veneno_skippedUser_couponReedemed(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'],
                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)
示例#5
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'],
                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)
示例#6
0
    def test_veneno_skippedUser_noGroupTagPresent(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'],
                          skippedReasons=['Group Tag Not Present']).check()
        authorize.assertUserPresenceInSkippedTable(
            communicationDetailId, communicationDetailBucketId,
            constant.config['skipped_errors']['GROUP_TAG_NOT_PRESENT'],
            'Group Tag Not Present')
示例#7
0
    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)
示例#8
0
    def test_veneno_skippedUser_noStore(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'],
                skippedReasons=[errorMessage]).check()
            authorize.assertUserPresenceInSkippedTable(
                communicationDetailId, communicationDetailBucketId, errorType,
                errorMessage)
        except Exception, exp:
            Assertion.constructAssertion(False, exp)
示例#9
0
 def test_veneno_inboxUser_incentives_generic_ProdSanity(
         self, description, messageInfo):
     authorizeResult = authorize.authorizeCampaign(self, messageInfo, False)
     authorize.assertAuthorize(authorizeResult['authorizeResponse'], 200)
     communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(
         self.campaignId, self.groupVersionResult['TEST']['id'],
         authorizeResult['messageId'])
     VenenoDBAssertion(self.campaignId, messageInfo[0],
                       communicationDetailId,
                       self.groupVersionResult['TEST']['customer_count'],
                       self.groupVersionResult['TEST']['id'],
                       authorizeResult['payload']['message']).check()
     authorize.assertUserPresenceInNsAdminTable(
         communicationDetailId, communicationDetailBucketId,
         int(communicationDetailExpectedCount))
示例#10
0
    def test_veneno_inboxUser_CustomFiledValue(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']).check()
        authorize.assertUserPresenceInNsAdminTable(
            communicationDetailId, communicationDetailBucketId, 1)
示例#11
0
 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_rateLimit_reconfig_allStrategySatisified(self, listType):
     VenenoHelper.setupStrategy(daily=2, weekly=2, monthly=2)
     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').check()
     authorize.assertUserPresenceInNsAdminTable(communicationDetailId , communicationDetailBucketId, int(communicationDetailExpectedCount))
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':2, 'WEEKLY':2, 'MONTHLY':2})
 def test_veneno_rateLimit_dailyWeeklyMonthlyLimitExceed(self, listType):
     VenenoHelper.setupStrategy(daily=1, weekly=1, monthly=1)
     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_dailyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3, weekly=4, monthly=4)
     VenenoHelper.updateWindowValueToByPassStrategy(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], 'DAILY')
     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').check()
     authorize.assertUserPresenceInNsAdminTable(communicationDetailId , communicationDetailBucketId, int(communicationDetailExpectedCount))
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':4, 'MONTHLY':4})
示例#15
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