Exemple #1
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)
Exemple #2
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)
Exemple #3
0
 def test_mergeList_WrongCampaignId(self):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {'name': 'IRIS_WRONG_CAMPAIGNID_' + str(int(time.time()))},
         campaignId=-1)
     campaignList.assertMergeList(
         mergeListresponse, 400, 100,
         'Invalid request : must be greater than or equal to 1')
Exemple #4
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)
Exemple #5
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)
Exemple #6
0
 def test_mergeList_LiveCampaign_mobile(self, campaignAndListType, userType,
                                        numberOfUsers, customTagCount):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignType=campaignAndListType,
         userType=userType,
         numberOfUsers=numberOfUsers,
         numberOfCustomTags=customTagCount)
     campaignList.assertMergeList(mergeListresponse, 200)
     groupVersionDetailResult, bucketId = campaignList.assertCreateListDbCalls(
         mergeListresponse.get('json').get('entity').get('listId'),
         mergeListPayload,
         campaignAndListType[1],
         expectedTestUsers=mergeListresponse.get('json').get('entity').get(
             'recipientsResponse').get('test'),
         expectedControlUsers=mergeListresponse.get('json').get(
             'entity').get('recipientsResponse').get('control'))
     Logger.log('GroupVersionId : {}, bucketId : {}'.format(
         groupVersionDetailResult, bucketId))
     addRecipientResponse = {
         'json': {
             'entity':
             mergeListresponse.get('json').get('entity').get(
                 'recipientsResponse')
         }
     }
     campaignList.assertAddRecipientDbCalls(
         addRecipientResponse, mergeListPayload.get('recipients'),
         mergeListresponse, campaignId, bucketId, {
             'TEST': groupVersionDetailResult.get('TEST'),
             'CONTROL': groupVersionDetailResult.get('CONTROL')
         }, userType)
Exemple #7
0
 def test_mergeList_popKeysFromAddRecipientPayload(self,
                                                   campaignAndListType,
                                                   keyToPop, statusCode,
                                                   errorCode, errorMessage):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         keyToPop, campaignType=campaignAndListType, process='pop')
     campaignList.assertMergeList(mergeListresponse, statusCode, errorCode,
                                  errorMessage)
Exemple #8
0
 def test_mergeList_WrongValuesInCustomTagAndDataPassed(
         self, payloadToUpdate, statusCode, errorCode, errorMessage):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         payloadData=payloadToUpdate)
     campaignList.assertMergeList(mergeListresponse, statusCode, errorCode,
                                  errorMessage)
     campaignList.assertInvalidDataInListResponse(
         mergeListresponse, payloadToUpdate['recipients']['data'],
         ['Data does not match with schema'])
Exemple #9
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)
Exemple #10
0
 def test_mergeList_WrongDataSourceInSchema(self, campaignAndListType):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {
             'recipients': {
                 'dataSource': 'wrong',
                 'schema': 'firstName,lastName,mobile',
                 'data': ['Test1,Automation1,8497846843']
             }
         },
         campaignType=campaignAndListType)
     campaignList.assertMergeList(mergeListresponse, 400, 100, '')
Exemple #11
0
 def test_mergeList_BoundaryValue_NumberOfUsers(self, campaignAndListType,
                                                userType, numberOfUsers,
                                                customTagCount, statusCode,
                                                errorCode, errorMessage):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignType=campaignAndListType,
         userType=userType,
         numberOfUsers=numberOfUsers,
         numberOfCustomTags=customTagCount)
     campaignList.assertMergeList(mergeListresponse, statusCode, errorCode,
                                  errorMessage)
Exemple #12
0
 def createListForSocial(campaignInfo,
                         campaignType,
                         numberOfUsers=5,
                         newUser=False):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignId=campaignInfo[campaignType],
         campaignType=['LIVE', campaignType, 'List', 'TAGS', 0],
         userType='mobile',
         numberOfUsers=numberOfUsers,
         numberOfCustomTags=0,
         newUser=newUser)
     return dbCallsList.getGroupVersionDetailsWithGroupId(
         mergeListresponse['json']['entity']
         ['listId'])['TEST']['id'], mergeListPayload['name']
Exemple #13
0
 def test_mergeList_DuplicateData(self, campaignAndListType, schema, data):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {
             'recipients': {
                 'dataSource': 'CSV',
                 'schema': schema,
                 'data': data
             },
             'name': 'IRIS_MERGE_DUPLICATE_' + str(int(time.time()))
         },
         campaignType=campaignAndListType)
     campaignList.assertMergeList(mergeListresponse, 200)
     Assertion.constructAssertion(
         mergeListresponse.get('json').get('entity').get(
             'recipientsResponse').get('test') == 1,
         'Matching test count to be 1 as 2 data were passed of same details'
     )
Exemple #14
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)
Exemple #15
0
 def test_mergeList_AppendingInSameList(self, campaignAndListType, userType,
                                        numberOfUsers, customTagCount):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignType=campaignAndListType,
         userType=userType,
         numberOfUsers=numberOfUsers,
         numberOfCustomTags=customTagCount)
     campaignList.assertMergeList(mergeListresponse, 200)
     addRecipientResponse, addRecipientPayload = campaignList.addRecipient(
         {}, campaignId,
         mergeListresponse.get('json').get('entity').get('listId'),
         str(userType), int(numberOfUsers), int(customTagCount))
     campaignList.assertAddRecipient(addRecipientResponse, 200)
     Assertion.constructAssertion(
         addRecipientResponse.get('json').get('entity').get('test') +
         addRecipientResponse.get('json').get('entity').get('control') ==
         numberOfUsers * 2, 'Matching Data has got Appended')
Exemple #16
0
 def test_campaignShard_upload_paste_email_customTag(
         self, campaignType, userType, numberOfUsers, customTagCount):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignId=self.campaignId[campaignType],
         campaignType=['LIVE', campaignType, 'List', 'TAGS', 0],
         userType=userType,
         numberOfUsers=numberOfUsers,
         numberOfCustomTags=customTagCount,
         newUser=False)
     campaignList.assertMergeList(mergeListresponse, 200)
     CampaignShardDBAssertion(self.campaignId[campaignType],
                              campaignType,
                              'upload',
                              mergeListPayload['name'],
                              mergeListresponse['json']['entity']['listId'],
                              mergeListPayload['recipients']['schema'],
                              mergeListPayload['recipients']['data'],
                              numberOfCustomTags=customTagCount,
                              numberOfGroupTags=0).check()
Exemple #17
0
 def test_fetchEmailStatus_CampaignPasteList_Sanity(self):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {},
         campaignType=['LIVE', 'SKIP', 'List', 'TAGS', 0],
         userType='email',
         numberOfUsers=1,
         numberOfCustomTags=0)
     recipients = mergeListPayload['recipients']['data'][0]
     recipients = recipients.split(',')
     email = recipients[-1]
     for _ in range(0, 13):
         status = DarknightHelper.getEmailStatus(email)
         if status == 'INVALID':
             break
         else:
             time.sleep(10)
     Assertion.constructAssertion(
         status == 'INVALID',
         'Verifying email status from paste list upload in campaigns: ' +
         email)
Exemple #18
0
 def test_mergeList_WrongSchemaAndData(self, campaignAndListType, schema,
                                       data, reasonResponse):
     mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
         {
             'recipients': {
                 'schema': schema,
                 'data': data
             },
             'name': 'IRIS_MERGE_LIST_' + str(int(time.time()))
         },
         campaignType=campaignAndListType)
     campaignList.assertMergeList(mergeListresponse, 200)
     addRecipientResponse = addRecipientResponse = {
         'json': {
             'entity':
             mergeListresponse.get('json').get('entity').get(
                 'recipientsResponse')
         }
     }
     campaignList.assertInvalidDataInListResponse(addRecipientResponse,
                                                  data, reasonResponse)
Exemple #19
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)
Exemple #20
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)
Exemple #21
0
 def setupUploadList(eachCampaignType,
                     campaignName,
                     campaignId,
                     nameOfFilterLists,
                     newUser=False,
                     setupObjectForCampaignShard=True,
                     channel='mobile'):
     try:
         Logger.log(
             'Setting up Upload List :{} for campaignName :{} , campaignId :{}'
             .format(nameOfFilterLists, campaignName, campaignId))
         mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList(
             {},
             campaignId=campaignId,
             campaignType=['LIVE', eachCampaignType, 'List', 'TAGS', 0],
             userType=channel,
             numberOfUsers=10,
             numberOfCustomTags=0,
             newUser=newUser)
         groupDetails = dbCallsList.getGroupDetailsWithListId(
             mergeListresponse['json']['entity']['listId'])
         groupVersionDetails = dbCallsList.getGroupVersionDetailsWithGroupId(
             mergeListresponse['json']['entity']['listId'])
         camapignGroupRecipientsData = {
             'TEST':
             dbCallsList.getAllUsersFromCampaignGroupRecipient(
                 groupVersionDetails['TEST']['bucket_id'],
                 groupVersionDetails['TEST']['id'])
         }
         if 'CONTROL' in groupVersionDetails:
             camapignGroupRecipientsData.update({
                 'CONTROL':
                 dbCallsList.getAllUsersFromCampaignGroupRecipient(
                     groupVersionDetails['CONTROL']['bucket_id'],
                     groupVersionDetails['CONTROL']['id'])
             })
         if setupObjectForCampaignShard:
             constant.thiriftCampaignShardTestReferenceObject[
                 eachCampaignType.lower(
                 )]['campaign']['lists']['UPLOADED'].append({
                     'addRecipientPayload':
                     mergeListPayload['recipients'],
                     'groupLabel':
                     mergeListPayload['name'],
                     'groupDetails':
                     groupDetails,
                     'groupVersionDetails':
                     groupVersionDetails,
                     'campaignGroupRecipients':
                     camapignGroupRecipientsData
                 })
         else:
             return {
                 'addRecipientPayload': mergeListPayload['recipients'],
                 'groupLabel': mergeListPayload['name'],
                 'groupDetails': groupDetails,
                 'groupVersionDetails': groupVersionDetails,
                 'campaignGroupRecipients': camapignGroupRecipientsData
             }
     except Exception, exp:
         raise Exception(
             'Upload Setup Failed with  Exception :{}'.format(exp))