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)
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)
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')
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)
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)
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)
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)
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'])
def test_veneno_skippedUser_nonLoyaltyCustomer(self): originalListId = self.listId originalBucketId = self.bucketId originalGroupVersionDetail = self.groupVersionResult try: messagePayloadToUpdate = { 'senderDetails': { 'domainGatewayMapId': constant.config['message_senders']['domainGatewayMapId'], 'gsmSenderId': constant.config['message_senders']['gsmSenderId'], 'useSystemDefaults': False, 'cdmaSenderId': constant.config['message_senders']['cdmaSenderId'] }, 'message': 'This Message is Going to Skip Due to Loyalty Tag used :{{loyalty_points}} {{optout}}' } mergeListresponse, mergeListPayload, campaignId = campaignList.mergeList( {}, campaignId=self.campaignId) self.listId = mergeListresponse['json']['entity']['listId'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( mergeListresponse['json']['entity']['listId']) self.bucketId = self.groupVersionResult['TEST']['bucket_id'] messageResponse, messagePayload = campaignMessage.createMessage( self, payloadData=messagePayloadToUpdate) authorizeResponse = authorize.makeAuthorizeRequest( self.campaignId, messageResponse['json']['entity']['messageId']) authorizeResult = self.getAuthorizeResultBody( self.campaignId, self.listId, self.groupVersionResult, self.bucketId, self.voucherId, self.strategy, messagePayload, str(messageResponse['json']['entity']['messageId']), authorizeResponse) communicationDetailId, communicationDetailBucketId, communicationDetailExpectedCount = authorize.assertMessageQueueAndGetCommunicationDetailsForReferenceMessageQueueId( self.campaignId, self.groupVersionResult['TEST']['id'], authorizeResult['messageId']) VenenoDBAssertion( self.campaignId, 'SMS', communicationDetailId, self.groupVersionResult['TEST']['customer_count'], self.groupVersionResult['TEST']['id'], authorizeResult['payload']['message'], skippedReasons=['Users are not registered in loyalty program' ]).check() authorize.assertUserPresenceInSkippedTable( communicationDetailId, communicationDetailBucketId, constant.config['skipped_errors']['NON_LOYALTY_CUSTOMER'], 'Users are not registered in loyalty program') except Exception, exp: Assertion.constructAssertion(False, exp)
def test_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, '')
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)
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']
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' )
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)
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')
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()
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)
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)
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)
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)
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))