Пример #1
0
 def test_veneno_rateLimit_MonthlyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3,
                                weekly=2,
                                monthly=1,
                                channel='PUSH')
     VenenoHelper.updateWindowValueToByPassStrategy(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'],
         'MONTHLY',
         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)
     VenenoDBAssertion(cdDetailsBody['campaignId'],
                       cdDetailsBody['communicationType'], communicationId,
                       cdDetailsBody['overallRecipientCount'],
                       cdDetailsBody['recipientListId'],
                       cdDetailsBody['subject']).check()
     authorize.assertUserPresenceInNsAdminTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         int(
             json.loads(
                 self.testObjectForRateLimit['list'][listType]
                 ['groupVersionDetails']['TEST']['params'])['test_count']),
         verify=False)
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 3,
             'WEEKLY': 2,
             'MONTHLY': 1
         },
         channel='PUSH')
 def test_veneno_rateLimitsss_allStrategySatisified_sms_sanity(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').check()
     authorize.assertUserPresenceInNsAdminTable(communicationDetailId , communicationDetailBucketId, int(communicationDetailExpectedCount))
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1})
 def test_veneno_rateLimit_reconfig_allStrategySatisified_StatsUpdateCheck(self, listType):
     VenenoHelper.setupStrategy(daily=3, weekly=3, monthly=3)
     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':3, 'WEEKLY':3, 'MONTHLY':3})
Пример #4
0
 def test_veneno_rateLimit_MonthlyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3,
                                weekly=2,
                                monthly=1,
                                channel='EMAIL')
     VenenoHelper.updateWindowValueToByPassStrategy(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'],
         'MONTHLY',
         channel='EMAIL')
     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)
     authorize.assertUserPresenceInNsAdminTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         int(
             json.loads(
                 self.testObjectForRateLimit['list'][listType]
                 ['groupVersionDetails']['TEST']['params'])['test_count']),
         verify=False,
         channel='EMAIL')
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 3,
             'WEEKLY': 2,
             'MONTHLY': 1
         },
         channel='EMAIL')
Пример #5
0
 def test_veneno_inboxUser_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))
Пример #6
0
 def test_veneno_rateLimit_allStrategySatisfied_email_sanity(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)
     authorize.assertUserPresenceInNsAdminTable(communicationId , VenenoHelper.getCommunicationBucketId(communicationId), int(json.loads(self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['params'])['test_count']), testControlType='custom', verify=False,groupVersionId=cdDetailsBody['recipientListId'],channel='EMAIL')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1}, channel='EMAIL')
Пример #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_replyMessage_CUSTOM_allErrorTypes(self, description,
                                                   changeCouponConfig):
     Logger.log(self.Details[description])
     if description == 'COUPON_EXPIRED':
         changeCouponConfig.update(
             {'fixedExpiryDate': Utils.getTime(days=2, milliSeconds=True)})
     self.voucherId = self.Details[description]['voucherId']
     self.commDetailsId = self.Details[description][
         'communicationDetailsId']
     VenenoHelper.couponConfigChange(self, changeCouponConfig)
     time.sleep(70)
     authorize.dbAssertionInSkippedReplyTables(self.commDetailsId)
     campaignMessage.replyMessage(self)
     time.sleep(10)
     campaignReplyStats = dbCallsAuthorize.getVenenoReplyStats(
         self.Details[description]['communicationDetailsId'])
     Assertion.constructAssertion(
         len(campaignReplyStats) != 0,
         'Campaign Reply Stats update status {}'.format(
             len(campaignReplyStats)))
     authorize.assertUserPresenceInNsAdminTable(
         self.Details[description]['communicationDetailsId'],
         self.Details[description]['communicationDetailBucketId'],
         int(self.Details[description]['communicationDetailExpectedCount']),
         verify=False,
         waitForInboxMsg=True)
     communcationDetailsDict = dbCallsAuthorize.getCommunicationDetailsWithId(
         self.Details[description]['communicationDetailsId'])
     Assertion.constructAssertion(
         communcationDetailsDict['state'] == 'REPLAYED',
         'Communication Details MessageId state is Actual: {} and Expected: {}'
         .format(communcationDetailsDict['state'], 'REPLAYED'))
     Assertion.constructAssertion(
         communcationDetailsDict['expected_delivery_count'] == int(
             self.Details[description]['communicationDetailExpectedCount']),
         'Communication Details Expected Delivery count Actual: {} and Expected: {}'
         .format(
             communcationDetailsDict['expected_delivery_count'],
             int(self.Details[description]
                 ['communicationDetailExpectedCount'])))
     Assertion.constructAssertion(
         communcationDetailsDict['message_queue_id'] != 0,
         'Communication Details Message Queue Id is not 0 Actual: {}'.
         format(communcationDetailsDict['message_queue_id']))
Пример #9
0
 def test_veneno_replyMessage_CUSTOM_Sanity(self, description, couponConfig,
                                            skippedReason, configChange):
     couponConfig.update({'description': description})
     self.voucherId = VenenoHelper.createCouponLuci(self, couponConfig)
     communicationDetailsId, communicationDetailBucketId, communicationDetailExpectedCount = VenenoHelper.messageAuthorize(
         self, skippedError=skippedReason, isSkippedMessage=True)
     VenenoHelper.couponConfigChange(self, configChange)
     time.sleep(2)
     self.commDetailsId = communicationDetailsId
     authorize.dbAssertionInSkippedReplyTables(communicationDetailsId)
     campaignMessage.replyMessage(self)
     time.sleep(10)
     campaignReplyStats = dbCallsAuthorize.getVenenoReplyStats(
         communicationDetailsId)
     Assertion.constructAssertion(
         len(campaignReplyStats) != 0,
         'Campaign Reply Stats update status {}'.format(
             len(campaignReplyStats)))
     authorize.assertUserPresenceInNsAdminTable(
         communicationDetailsId,
         communicationDetailBucketId,
         int(communicationDetailExpectedCount),
         verify=False,
         waitForInboxMsg=True)
     communcationDetailsDict = dbCallsAuthorize.getCommunicationDetailsWithId(
         communicationDetailsId)
     Assertion.constructAssertion(
         communcationDetailsDict['state'] == 'REPLAYED',
         'Communication Details MessageId state is Actual: {} and Expected: {}'
         .format(communcationDetailsDict['state'], 'REPLAYED'))
     Assertion.constructAssertion(
         communcationDetailsDict['expected_delivery_count'] == int(
             communicationDetailExpectedCount),
         'Communication Details Expected Delivery count Actual: {} and Expected: {}'
         .format(communcationDetailsDict['expected_delivery_count'],
                 int(communicationDetailExpectedCount)))
     Assertion.constructAssertion(
         communcationDetailsDict['message_queue_id'] != 0,
         'Communication Details Message Queue Id is not 0 Actual: {}'.
         format(communcationDetailsDict['message_queue_id']))
Пример #10
0
 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)
Пример #11
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