Esempio n. 1
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)
Esempio n. 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)
Esempio n. 3
0
 def test_veneno_skippedUser_invalidMobile(self):
     originalListId = self.listId
     originalBucketId = self.bucketId
     originalGroupVersionDetail = self.groupVersionResult
     try:
         messagePayloadToUpdate = {
             'senderDetails':{
                 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'],
                 'gsmSenderId':constant.config['message_senders']['gsmSenderId'],
                 'useSystemDefaults':False,
                 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId']
             },
             'message' : 'This Message is Going to Skip Due Invalid User : {{optout}}'
         }
         invalidUserData = 'ndncFirstName,ndncLastName,{}'.format(dbCallsMessage.getInvalidUserMobileNumber()[0])
         mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':[invalidUserData]}}, campaignId=self.campaignId)
         self.listId = mergeListresponse['json']['entity']['listId']
         self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId'])
         self.bucketId = self.groupVersionResult['TEST']['bucket_id']
        
         messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate)
         authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId'])
         authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse)
         communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId'])
         VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Captured mobile for user seems to be invalid']).check()
         authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['INVALID_MOBILE'], 'Captured mobile for user seems to be invalid')
     except Exception, exp:
         Assertion.constructAssertion(False, exp)
Esempio n. 4
0
 def test_veneno_skippedUser_unsubscribed_ProdSanity(self):
     originalListId = self.listId
     originalBucketId = self.bucketId
     originalGroupVersionDetail = self.groupVersionResult
     try:
         messagePayloadToUpdate = {
             'senderDetails':{
                 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'],
                 'gsmSenderId':constant.config['message_senders']['gsmSenderId'],
                 'useSystemDefaults':False,
                 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId']
             },
             'message' : 'This Message is Going to Skip Due Unsubscribe User : {{optout}}'
         }
         
         cusObj = InTouchAPI(Customer.Add())
         mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':['TestX,AutomationX,{}'.format(cusObj.params['mobile'])]}}, campaignId=self.campaignId)
         self.listId = mergeListresponse['json']['entity']['listId']
         self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId'])
         self.bucketId = self.groupVersionResult['TEST']['bucket_id']
         
         unsubscribeObj = InTouchAPI(Customer.unsubscribe(body={'root':{'subscription':{'mobile':cusObj.params['mobile']}}}))
         if unsubscribeObj.status_code == 200:
             messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate)
             authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId'])
             authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse)
             communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId'])
             VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Captured mobile for user seems to be unsubscribed']).check()
             authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['UNSUBSCRIBED'], 'Captured mobile for user seems to be unsubscribed')
         else :
             raise Exception('Not Able To Unsubscribe using Intouch Call')
     except Exception, exp:
         Assertion.constructAssertion(False, exp)
Esempio n. 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)
Esempio n. 6
0
    def test_wechat_createMessage_Invalid_Payload(self, description,
                                                  invalidpayload, statusCode,
                                                  errorCode, errorMessage):
        try:
            payload = {
                'message': construct.constructWechatMessageBody('plain')
            }
            payload.update({
                'channel':
                'WECHAT',
                'accountDetails':
                construct.constructAccountDetails()
            })
            if 'data' == invalidpayload.keys()[0]:
                payload.pop(invalidpayload[invalidpayload.keys()[0]])
            else:
                payload[invalidpayload.keys()[0]].pop(
                    invalidpayload[invalidpayload.keys()[0]])

            response, payload = campaignMessage.createMessage(
                self, payloadData=payload)
            campaignMessage.assertCreateMessage(response, statusCode,
                                                errorCode, errorMessage)
        except AssertionError, reason:
            Assertion.constructAssertion(False, reason)
Esempio n. 7
0
 def test_wechat_createMessage_Recurring(self, description, messageInfo):
     Logger.log(
         'Actual ListId:{} and CampaignId:{} and used for Recurring listId:{} and campaignId:{}'
         .format(
             self.listId, self.campaignId,
             constant.config['message_recurring']['WECHAT']['listId'],
             constant.config['message_recurring']['WECHAT']['campaignId']))
     actualListIdGettingUsedInAllCases = self.listId
     actualCampaignIdGettingUsedInAllCases = self.campaignId
     actualVoucherIdGettingUsedInAllCases = self.voucherId
     try:
         self.listId = constant.config['message_recurring']['WECHAT'][
             'listId']
         self.campaignId = constant.config['message_recurring']['WECHAT'][
             'campaignId']
         self.voucherId = constant.config['message_recurring']['WECHAT'][
             'voucherId']
         response, payload = campaignMessage.createMessage(
             self, messageInfo=messageInfo)
         campaignMessage.assertCreateMessage(response, 200)
         campaignMessage.assertCreateMessageDbCalls(
             response['json']['entity']['messageId'], self.campaignId,
             payload)
         campaignMessage.updateDefaultMessageJsonWithMessageInfoValues(
             messageInfo, payload, response['json']['entity']['messageId'])
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 8
0
 def authorizeForRateLimit(self, listType):
     messageResponse, messagePayload = campaignMessage.createMessage(
         self, messageInfo=['SMS', ['IMMEDIATE'], ['PLAIN'], True])
     authorizeResponse = authorize.makeAuthorizeRequest(
         str(self.testObjectForRateLimit['campaign']['id']),
         str(messageResponse['json']['entity']['messageId']))
     return {
         'campaignId':
         self.testObjectForRateLimit['campaign']['id'],
         'listId':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['id'],
         'groupVersionResult':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails'],
         'bucketId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['bucket_id'],
         'voucherId':
         None,
         'strategy':
         None,
         'messageInfo': ['SMS', ['IMMEDIATE'], ['PLAIN'], True],
         'payload':
         messagePayload,
         'messageId':
         str(messageResponse['json']['entity']['messageId']),
         'authorizeResponse':
         authorizeResponse
     }
Esempio n. 9
0
 def test_wechat_createMessage_Points(self, description, messageInfo):
     response, payload = campaignMessage.createMessage(
         self, messageInfo=messageInfo)
     campaignMessage.assertCreateMessage(response, 200)
     campaignMessage.assertCreateMessageDbCalls(
         response['json']['entity']['messageId'], self.campaignId, payload)
     campaignMessage.updateDefaultMessageJsonWithMessageInfoValues(
         messageInfo, payload, response['json']['entity']['messageId'])
Esempio n. 10
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)
Esempio n. 11
0
 def test_authorize_sms_invalid_orgId(self, description, messageInfo, orgIdPassed, statusCode, errorCode, errorMessage):
     actualOrgIdGettingUsedThroughOut = constant.config['orgId']
     try:
         response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0]
         messageId = response['json']['entity']['messageId']
         constant.config['orgId'] = orgIdPassed
         authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId)
         authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage[0].format(self.campaignId))
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 12
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)
Esempio n. 13
0
 def test_authorize_sms_health_dashboard_without_Authorize(self, description, messageInfo, errorMessage):
     actualListIdGettingUsedInAllCases = self.listId
     actualCampaignIdGettingUsedInAllCases = self.campaignId
     try:
         self.listId = constant.config['message_recurring']['SMS']['listId']
         self.campaignId = constant.config['message_recurring']['SMS']['campaignId']
         authorizeResult = campaignMessage.createMessage(self, messageInfo=messageInfo)[0]
         messageId = authorizeResult['json']['entity']['messageId']
         time.sleep(20)
         authorize.dbAssertAuthorize_HealthDashboardNotification(self.campaignId, messageId,ExpectedMsg=errorMessage, channel='campaign_authorized')
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 14
0
 def test_wechat_createMessage_Invalid_IncentivesType(
         self, description, payload, incentives, statusCode, errorCode,
         errorMessage):
     try:
         payload.update(
             {'templateId': self.templateIdDict[incentives.lower()]})
         response, payload = campaignMessage.createMessage(
             self, payloadData=payload)
         campaignMessage.assertCreateMessage(response, statusCode,
                                             errorCode, errorMessage)
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 15
0
 def test_wechat_createMessage_Immediate_Plain_InvalidAccountDetails(
         self, description, payload, accountDetailsPassed, statusCode,
         errorCode, errorMessage):
     try:
         payload.update({accountDetailsPassed})
         payload.update({'templateId': self.templateIdDict['plain']})
         response, payload = campaignMessage.createMessage(
             self, payloadData=payload)
         campaignMessage.assertCreateMessage(response, statusCode,
                                             errorCode, errorMessage)
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 16
0
    def test_veneno_skippedUser_couponReedemed_ProdSanity(self):
        try:
            cusObj = InTouchAPI(Transaction.Add())

            mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList({'name': 'IRIS_LIST_' + str(int(time.time() * 100000)), 'recipients':{'dataSource':'CSV', 'schema':'firstName,lastName,mobile', 'data':['TestX,AutomationX,{}'.format(cusObj.params['mobile'])]}}, campaignId=self.campaignId)
            self.listId = mergeListresponse['json']['entity']['listId']
            self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(mergeListresponse['json']['entity']['listId'])
            self.bucketId = self.groupVersionResult['TEST']['bucket_id']
           
            self.couponConfigChange({'allow_multiple_vouchers_per_user':False,'same_user_multiple_redeem':False,'multiple_use':False})
            time.sleep(70)
            messagePayloadToUpdate = {
                    'incentive':{
                        'type':'COUPONS',
                        'voucherSeriesId':self.voucherId
                    },
                    'senderDetails':{
                        'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'],
                        'gsmSenderId':constant.config['message_senders']['gsmSenderId'],
                        'useSystemDefaults':False,
                        'cdmaSenderId':constant.config['message_senders']['cdmaSenderId']
                    },
                    'message' : 'This Message is Going to Skip Due to Coupon has already been redeemed : {{voucher}} {{optout}}'
            }
            
            messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate)
            authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId'])
            
            custObjResponse = cusObj.response  # json.loads(cusObj.response.replace("'", "\""))
            couponCode = dbCallsCoupons.getCouponCode(self.voucherId, custObjResponse['response']['transactions']['transaction'][0]['customer']['user_id'])
            coupObj = InTouchAPI(Coupon.Redeem(body={'root':{'coupon':{'transaction':{'number':cusObj.params['transactionId'], 'amount':100}}}}, mobile=cusObj.params['mobile'], code=couponCode))
            messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate)
            authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId'])
            authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse)
            communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId'])
            VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Coupon For user was already redeemed.']).check()
            authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['COUPON_REDEEMED'], 'Coupon For user was already redeemed.')
        except Exception, exp:
            Assertion.constructAssertion(False, exp)
Esempio n. 17
0
 def test_wechat_createMessage_Immediate_Plain_WithInvalidListId(
         self, description, payload, listIdPassed, statusCode, errorCode,
         errorMessage):
     actualListIdGettingUsedThroughOut = self.listId
     try:
         self.listId = listIdPassed
         payload.update({'templateId': self.templateIdDict['plain']})
         response, payload = campaignMessage.createMessage(
             self, payloadData=payload)
         campaignMessage.assertCreateMessage(response, statusCode,
                                             errorCode, errorMessage)
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 18
0
 def authorizeCampaign(self, messageInfo, usePreCreatedMessages=False):
     if usePreCreatedMessages:
         Logger.log(
             'Message Object Found Update so Getting Message Details To Make Authorize Request'
         )
         messageObjectDetailsForMessageInfo = authorize.getMessageDetailsFromObject(
             messageInfo)
         Logger.log('Recieved Message Object :',
                    messageObjectDetailsForMessageInfo)
         if messageObjectDetailsForMessageInfo == {}:
             Logger.log(
                 'As Message Object is Empty Creating a New Message to Authorize'
             )
             return authorize.authorizeCampaign(self, messageInfo, False)
         authorizeResponse = authorize.makeAuthorizeRequest(
             messageObjectDetailsForMessageInfo['campaignId'],
             messageObjectDetailsForMessageInfo['messageId'])
         messageObjectDetailsForMessageInfo.update(
             {'authorizeResponse': authorizeResponse})
         Logger.log(
             'Authorized Succesfully and constructed MessageDefault Info Object as :',
             messageObjectDetailsForMessageInfo)
         return messageObjectDetailsForMessageInfo
     else:
         Logger.log('Creating a New Message And Authorizing')
         messageResponse, messagePayload = campaignMessage.createMessage(
             self, messageInfo=messageInfo)
         Logger.log('Message Created for Authorize with Id :{}'.format(
             messageResponse['json']['entity']['messageId']))
         campaignMessage.assertCreateMessage(messageResponse, 200)
         Logger.log('Making Authorize Post Request')
         authorizeResponse = authorize.makeAuthorizeRequest(
             str(self.campaignId),
             str(messageResponse['json']['entity']['messageId']))
         messageObjectDetailsForMessageInfo = {
             'campaignId': self.campaignId,
             'listId': self.listId,
             'groupVersionResult': self.groupVersionResult,
             'bucketId': self.bucketId,
             'voucherId': self.voucherId,
             'strategy': self.strategy,
             'messageInfo': messageInfo,
             'payload': messagePayload,
             'messageId':
             str(messageResponse['json']['entity']['messageId']),
             'authorizeResponse': authorizeResponse
         }
         Logger.log(
             'Authorized Succesfully and constructed MessageDefault Info Object as :',
             messageObjectDetailsForMessageInfo)
         return messageObjectDetailsForMessageInfo
Esempio n. 19
0
    def test_authorize_sms_NSAdmin(self, description, messageInfo , statusCode, errorCode, errorMessage):

        self.nsHelper.disableDomainPropertiesGatewayMap()
        self.nsHelper.addDefaultGateway('BULK')
        gatewayId = self.nsHelper.getDomainGatewayMapId('valuefirstmock')

        payload = {'senderDetails': {'gsmSenderId': 919845012345, 'useSystemDefaults': messageInfo[1], 'cdmaSenderId': 919845012345, 'domainGatewayMapId' : gatewayId}, 'channel': 'SMS'}
        response = campaignMessage.createMessage(self, payloadData=payload)[0]
        messageId = response['json']['entity']['messageId']

        authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId)
        tmpErrorMessage = []
        for error in errorMessage:
            tmpErrorMessage.append(error.format(gatewayId))
        authorize.assertAuthorize(authorizeResult, statusCode, errorCode, tmpErrorMessage)
Esempio n. 20
0
 def test_authorize_sms_max_user_limit(self, description, messageInfo , errorMessage):
     actualListIdGettingUsedInAllCases = self.listId
     actualCampaignIdGettingUsedInAllCases = self.campaignId
     try:
         self.listId = constant.config['message_recurring']['SMS']['listId']
         self.campaignId = constant.config['message_recurring']['SMS']['campaignId']
         payloadData = construct.constructCreateMessageBody(self.listId, messageInfo[0], messageInfo[1], messageInfo[2], messageInfo[3])
         payloadData['schedule'].update({'maxUsers': 1})
         response = campaignMessage.createMessage(self, payloadData=payloadData)[0]
         messageId = response['json']['entity']['messageId']
         authorize.makeAuthorizeRequest(self.campaignId, messageId)
         time.sleep(80)
         authorize.dbAssertAuthorize_HealthDashboardNotification(self.campaignId, messageId, ExpectedMsg=errorMessage, channel='users_recurring_campaign')
     except AssertionError, reason:
         Assertion.constructAssertion(False, reason)
Esempio n. 21
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)
Esempio n. 22
0
 def test_veneno_skippedUser_noGroupTagPresent_ProdSanity(self):
     messagePayloadToUpdate = {
             'senderDetails':{
                 'domainGatewayMapId':constant.config['message_senders']['domainGatewayMapId'],
                 'gsmSenderId':constant.config['message_senders']['gsmSenderId'],
                 'useSystemDefaults':False,
                 'cdmaSenderId':constant.config['message_senders']['cdmaSenderId']
             },
             'message' : 'This Message is Going to Skip Due to group Tag Not Present in List :{{group_tag_1}} {{optout}}'
     }
     
     messageResponse, messagePayload = campaignMessage.createMessage(self, payloadData=messagePayloadToUpdate)
     authorizeResponse = authorize.makeAuthorizeRequest(self.campaignId, messageResponse['json']['entity']['messageId'])
     authorizeResult = self.getAuthorizeResultBody(self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse)
     communicationDetailId , communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId(self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId'])
     VenenoDBAssertion(self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], testControlType='skip', skippedReasons=['Group Tag Not Present']).check()
     authorize.assertUserPresenceInSkippedTable(communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['GROUP_TAG_NOT_PRESENT'], 'Group Tag Not Present')
Esempio n. 23
0
 def test_wechat_createMessage_using_templateIds(self, description, payload,
                                                 incentives):
     payload.update({'templateId': self.templateIdDict[incentives.lower()]})
     if incentives.lower() == 'coupons':
         payload.update({
             'incentive':
             construct.constructIncentivesForCreateMessage(
                 [incentives, self.voucherId])
         })
     if incentives.lower() != 'plain' and incentives.lower() != 'coupons':
         payload.update({
             'incentive':
             construct.constructIncentivesForCreateMessage([incentives])
         })
     response, payload = campaignMessage.createMessage(self, payload)
     campaignMessage.assertCreateMessage(response, 200)
     campaignMessage.assertCreateMessageDbCalls(
         response['json']['entity']['messageId'], self.campaignId, payload)
Esempio n. 24
0
    def test_authorize_sms_Domain_not_available(self, description, messageInfo , errorMessage):

        self.nsHelper.disableDomainPropertiesGatewayMap()
        self.nsHelper.addDefaultGateway('BULK')
        gatewayId = self.nsHelper.getDomainGatewayMapId('valuefirstmock')


        actualListIdGettingUsedInAllCases = self.listId
        actualCampaignIdGettingUsedInAllCases = self.campaignId
        try:
            self.listId = constant.config['message_recurring']['SMS']['listId']
            self.campaignId = constant.config['message_recurring']['SMS']['campaignId']

            payloadData = construct.constructCreateMessageBody(self.listId, messageInfo[0], messageInfo[1], messageInfo[2], messageInfo[3])
            payloadData.update({'senderDetails': {'gsmSenderId': int(senderIds['gsm_sender_id']), 'useSystemDefaults': True, 'cdmaSenderId': int(senderIds['cdma_sender_id']), 'domainGatewayMapId' : gatewayId}, 'channel': 'SMS'})
            response = campaignMessage.createMessage(self, payloadData=payloadData)[0]
            messageId = response['json']['entity']['messageId']
            authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId)

            authorize.dbAssertAuthorize_HealthDashboardNotification(self.campaignId, messageId, ExpectedMsg=errorMessage, channel='campaign_authorized')
        except AssertionError, reason:
            Assertion.constructAssertion(False, reason)
Esempio n. 25
0
    def messageAuthorizeWithoutAssertions(self):
        messagePayloadToUpdate = {
            'incentive': {
                'type': 'COUPONS',
                'voucherSeriesId': self.voucherId
            },
            'senderDetails': {
                'domainGatewayMapId':
                constant.config['message_senders']['domainGatewayMapId'],
                'gsmSenderId':
                constant.config['message_senders']['gsmSenderId'],
                'useSystemDefaults':
                False,
                'cdmaSenderId':
                constant.config['message_senders']['cdmaSenderId']
            },
            'message':
            'This Message is Going to Skip Due to Coupon issuable : {{voucher}} {{optout}}'
        }

        messageResponse, messagePayload = campaignMessage.createMessage(
            self, payloadData=messagePayloadToUpdate)
        authorize.makeAuthorizeRequest(
            self.campaignId, messageResponse['json']['entity']['messageId'])
Esempio n. 26
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)
Esempio n. 27
0
 def test_authorize_sms_invalid_campaignId(self, description, messageInfo, campaignIdPassed, statusCode, errorCode, errorMessage):
     response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0]
     messageId = response['json']['entity']['messageId']
     authorizeResult = authorize.makeAuthorizeRequest(campaignIdPassed, messageId)
     authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage)
Esempio n. 28
0
 def test_authorize_sms_expired_campaign(self, description, messageInfo, payload, statusCode, errorCode, errorMessage):
     response = campaignMessage.createMessage(self, messageInfo=messageInfo)[0]
     messageId = response['json']['entity']['messageId']
     campaigns.updateCampaign(payload, campaignId=self.campaignId)
     authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageId)
     authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage[0].format(self.campaignId))
Esempio n. 29
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
Esempio n. 30
0
 def test_authorize_sms_invalid_messageId(self, description, messageInfo, messageIdPassed, statusCode, errorCode, errorMessage):
     campaignMessage.createMessage(self, messageInfo=messageInfo)[0]
     authorizeResult = authorize.makeAuthorizeRequest(self.campaignId, messageIdPassed)
     authorize.assertAuthorize(authorizeResult, statusCode, errorCode, errorMessage)