def test_flow_social_positive_withoutCoupon_CreateAdsetAndUseExistingAsTrue(self):
		cdDetailsBody = {
		     'campaignId':self.campaigns['CUSTOM'],
		     'targetType':'SOCIAL',
		     'communicationType':'FACEBOOK',
		     'subject':'',
		     'recipientListId':self.groupVersionid,
		     'overallRecipientCount':self.numberOfUsers,
		     'expectedDeliveryCount':self.numberOfUsers,
		     'groupName':self.groupName
		    }
	   	extraParams = {
	   		'voucher_series': -1,
	   		'default_argument' : {
	   			"entity_id":-1,
	   			"is_loyalty_checkbox_enabled":"0",
	   			"voucher_series_id":"-1",
	   			"daily_budget":10000,
			    "create_adset":True,
			    "use_existing_adset":True,
			    "adset_id":social_user_calls().getRemoteAdset()
	   		}
	   	}
		communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody,extraParams=extraParams)
		communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
		SocialDBAssertion(self.campaigns['CUSTOM'],self.groupVersionid,communicationId,self.numberOfUsers,socialAdsetInfo=False,aggregationDetail=False).check()
	def test_flow_social_positive_withoutCoupon(self,campaignType):
		cdDetailsBody = {
		     'campaignId':self.campaigns[campaignType.upper()],
		     'targetType':'SOCIAL',
		     'communicationType':'FACEBOOK',
		     'subject':'',
		     'recipientListId':self.groupVersionid,
		     'overallRecipientCount':self.numberOfUsers,
		     'expectedDeliveryCount':self.numberOfUsers,
		     'groupName':self.groupName
		    }
	   	extraParams = {
	   		'voucher_series': -1,
	   		'default_argument' : {
	   			"entity_id":-1,
	   			"is_loyalty_checkbox_enabled":"0",
	   			"voucher_series_id":"-1",
	   			"daily_budget":10000,
			    "create_adset":True,
			    "use_existing_adset":False,
			    "adset_name": 'AutoAdset_{}'.format(int(time.time()*1000))
	   		}
	   	}
		communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody,extraParams=extraParams)
		communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
		remoteCampaignId,remoteListId,remoteAdsetId,remoteOfferid = SocialDBAssertion(self.campaigns[campaignType.upper()],self.groupVersionid,communicationId,self.numberOfUsers).check()
		SocialRemoteObjectAssertion(self.campaigns[campaignType.upper()],remoteCampaignId,remoteListId,remoteAdsetId)
 def test_flow_social_skipped_accountDetailsWrong(self):
     ckvId = SocialHelper.updateConfigKeyValue(0)
     try:
         cdDetailsBody = {
             'campaignId': self.campaigns['ORG'],
             'targetType': 'SOCIAL',
             'communicationType': 'FACEBOOK',
             'subject': '',
             'recipientListId': self.groupVersionid,
             'overallRecipientCount': self.numberOfUsers,
             'expectedDeliveryCount': self.numberOfUsers,
             'groupName': self.groupName
         }
         extraParams = {
             'voucher_series': self.voucherSeriesId,
             'default_argument': {
                 "entity_id": -1,
                 "is_loyalty_checkbox_enabled": "0",
                 "voucher_series_id": self.voucherSeriesId,
                 "daily_budget": 10000,
                 "create_adset": True,
                 "use_existing_adset": False,
                 "adset_name":
                 'AutoAdset_{}'.format(int(time.time() * 1000))
             }
         }
         communicationDetailObject = VenenoObject.communicationDetail(
             cdDetailsBody, extraParams=extraParams)
         communicationId = self.connObj.addMessageForRecipients(
             communicationDetailObject)
         SocialHelper.assertCommunicationDetailInErrorState(
             self.groupVersionid, communicationId)
     except Exception, exp:
         Assertion.constructAssertion(False, 'Excpetion :{}'.format(exp))
Exemple #4
0
 def createMessageForThriftHelp(campaignId, groupVersionid, numberOfUsers,
                                groupName):
     connObj = VenenoHelper.getConnObj(newConnection=True)
     cdDetailsBody = {
         'campaignId': campaignId,
         'targetType': 'SOCIAL',
         'communicationType': 'FACEBOOK',
         'subject': '',
         'recipientListId': groupVersionid,
         'overallRecipientCount': numberOfUsers,
         'expectedDeliveryCount': numberOfUsers,
         'groupName': groupName
     }
     extraParams = {
         'voucher_series': -1,
         'default_argument': {
             "entity_id": -1,
             "is_loyalty_checkbox_enabled": "0",
             "voucher_series_id": "-1",
             "daily_budget": 1000000
         }
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody, extraParams=extraParams)
     communicationId = connObj.addMessageForRecipients(
         communicationDetailObject)
     return communicationId
Exemple #5
0
 def est_venenoThrift_inboxUser_WeChat_Sanity(self):
     actualOrgId = construct.updateOrgId(constant.config['wechat']['orgId'])
     actualOrgName = construct.updateOrgName(constant.config['wechat']['orgName'])
     try:
         details = VenenoHelper.preRequisitesForVenenoWechat(testControlType='skip')
         campaignMessage.getWeCRMTemplates()
         subject = {
             "template_id" : unicodedata.normalize('NFKD', constant.config['templateId']).encode('ascii', 'ignore'),
             "touser" : "{{wechat_open_id}}",
             "OriginalId" : constant.config['wechat']['OriginalId'],
             "Title" : "",
             "BrandId" : "f",
             "url" : "http://we.capillarytech-cn.com/web?appid=wxc7bf989decc7e35b&redirect_uri=http://somelink.com/someword?nowAParam=firstParam&second=second.Param&response_type=code&scope=snsapi_base&state=STATE",
             "TopColor" : "#000000",
             "data" : {"productType": {"value": "HakeemProduct", "color": "#00000"}, "name": {"value": "Hakeem {{first_name}} Lukka", "color": "#00000"}, "number": {"value": "898767 skdjnjn", "color": "#00000"}, "expDate": {"value": "look down", "color": "#00000"}, "remark": { "value": "Look up", "color": "#00000"}}
         }
         cdDetailsBody = {
              'campaignId':details['campaignId'],
              'communicationType':'WECHAT',
              'subject': str(subject),
              'body': 'Thrift Created Automation Wechat Body',
              'recipientListId':details['groupVersionResult']['TEST']['id'],
              'overallRecipientCount':details['groupVersionResult']['TEST']['customer_count'],
              'expectedDeliveryCount':details['groupVersionResult']['TEST']['customer_count'],
              'groupName':details['groupName']
             }
         communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
         communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
         VenenoDBAssertion(cdDetailsBody['campaignId'], cdDetailsBody['communicationType'], communicationId, cdDetailsBody['overallRecipientCount'], cdDetailsBody['recipientListId'], cdDetailsBody['subject'], testControlType='skip', skippedReasons=['Captured OpenId for user seems to be unsubscribed']).check()
     except Exception, exp:
         raise Exception('Wechat Case Failed due to :{}'.format(exp))
 def test_veneno_rateLimit_MonthlyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3,
                                weekly=2,
                                monthly=1,
                                channel='PUSH')
     VenenoHelper.updateWindowValueToByPassStrategy(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'],
         'MONTHLY',
         channel='PUSH')
     self.listId = self.testObjectForRateLimit['list'][listType][
         'groupDetails']['id']
     cdDetailsBody = {
         'campaignId':
         self.testObjectForRateLimit['campaign']['id'],
         'communicationType':
         'PUSH',
         'subject':
         'Automation Generated Body',
         'body':
         '{"templateData":{"CHANNELACCOUNTNAME":{"luid":"{{luid}}","cuid":"{{cuid}}","communicationId":"{{communicationId}}","title":"asas","message":"asasas","expandableDetails":{"style":"BIG_TEXT","message":"asasas"},"custom":[]}}}'
         .replace('CHANNELACCOUNTNAME', self.account),
         'recipientListId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['id'],
         'overallRecipientCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'groupName':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['group_label']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     VenenoDBAssertion(cdDetailsBody['campaignId'],
                       cdDetailsBody['communicationType'], communicationId,
                       cdDetailsBody['overallRecipientCount'],
                       cdDetailsBody['recipientListId'],
                       cdDetailsBody['subject']).check()
     authorize.assertUserPresenceInNsAdminTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         int(
             json.loads(
                 self.testObjectForRateLimit['list'][listType]
                 ['groupVersionDetails']['TEST']['params'])['test_count']),
         verify=False)
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 3,
             'WEEKLY': 2,
             'MONTHLY': 1
         },
         channel='PUSH')
Exemple #7
0
 def test_flow_social_positive_withInternalCoupon_CreateAdsetAsFalse(self):
     cdDetailsBody = {
         'campaignId': self.campaigns['ORG'],
         'targetType': 'SOCIAL',
         'communicationType': 'FACEBOOK',
         'subject': '',
         'recipientListId': self.groupVersionid,
         'overallRecipientCount': self.numberOfUsers,
         'expectedDeliveryCount': self.numberOfUsers,
         'groupName': self.groupName
     }
     extraParams = {
         'voucher_series': self.voucherSeriesId,
         'default_argument': {
             "entity_id": -1,
             "is_loyalty_checkbox_enabled": "0",
             "voucher_series_id": self.voucherSeriesId,
             "daily_budget": 10000,
             "create_adset": False
         }
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody, extraParams=extraParams)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     SocialDBAssertion(self.campaigns['ORG'],
                       self.groupVersionid,
                       communicationId,
                       self.numberOfUsers,
                       couponUsed=True,
                       socialAdsetInfo=False,
                       aggregationDetail=False,
                       venenoDataDetailsInfo=False).check()
Exemple #8
0
 def test_venenoThrift_skippedUser_CallTask(self):
     cdDetailsBody = {
         'campaignId':
         self.details['campaignId'],
         'communicationType':
         'CALL_TASK',
         'subject':
         'Automation Generated Body {{first_name}} {{last_name}} {{fullname}} {{custom_tag_2}} {{optout}}',
         'recipientListId':
         self.details['groupVersionResult']['TEST']['id'],
         'overallRecipientCount':
         self.details['groupVersionResult']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.details['groupVersionResult']['TEST']['customer_count'],
         'groupName':
         self.details['groupName']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     VenenoDBAssertion(cdDetailsBody['campaignId'],
                       cdDetailsBody['communicationType'],
                       communicationId,
                       cdDetailsBody['overallRecipientCount'],
                       cdDetailsBody['recipientListId'],
                       cdDetailsBody['subject'],
                       testControlType='custom',
                       skippedReasons=['Custom Tag Not Present']).check()
Exemple #9
0
 def est_flow_social_negative_withExternalCoupon(self):
     cdDetailsBody = {
         'campaignId': self.campaigns['ORG'],
         'targetType': 'SOCIAL',
         'communicationType': 'FACEBOOK',
         'subject': '',
         'recipientListId': self.groupVersionid,
         'overallRecipientCount': self.numberOfUsers,
         'expectedDeliveryCount': self.numberOfUsers,
         'groupName': self.groupName
     }
     extraParams = {
         'voucher_series': self.voucherSeriesId,
         'default_argument': {
             "entity_id": -1,
             "is_loyalty_checkbox_enabled": "0",
             "voucher_series_id": self.voucherSeriesId,
             "daily_budget": 10000,
             "create_adset": True,
             "use_existing_adset": False,
             "adset_name": 'AutoAdset_{}'.format(int(time.time() * 1000))
         }
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody, extraParams=extraParams)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     SocialHelper.assertCommunicationDetailInErrorState(
         self.groupVersionid, communicationId)
     SocialHelper.assertAggregationDetailAndAudienceListCreated(
         self.groupVersionid, communicationId)
Exemple #10
0
 def test_venenoThrift_inboxUser_Email_GenericTags(self):
     cdDetailsBody = {
         'campaignId':
         self.details['campaignId'],
         'communicationType':
         'EMAIL',
         'subject':
         'Automation Generated Body {{first_name}} {{last_name}} {{fullname}} {{unsubscribe}}',
         'recipientListId':
         self.details['groupVersionResult']['TEST']['id'],
         'overallRecipientCount':
         self.details['groupVersionResult']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.details['groupVersionResult']['TEST']['customer_count'],
         'groupName':
         self.details['groupName']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     VenenoDBAssertion(cdDetailsBody['campaignId'],
                       cdDetailsBody['communicationType'],
                       communicationId,
                       cdDetailsBody['overallRecipientCount'],
                       cdDetailsBody['recipientListId'],
                       cdDetailsBody['subject'],
                       testControlType='custom').check()
Exemple #11
0
 def test_venenoThrift_skippeduser_Email_pointsMessageConfiguredError(self):
     cdDetailsBody = {'campaignId':self.details['campaignId'],
          'communicationType':'EMAIL',
          'subject':'Automation Generated Body {{first_name}} {{last_name}} {{fullname}} {{promotion_points}} {{unsubscribe}}',
          'recipientListId':self.details['groupVersionResult']['TEST']['id'],
          'overallRecipientCount':self.details['groupVersionResult']['TEST']['customer_count'],
          'expectedDeliveryCount':self.details['groupVersionResult']['TEST']['customer_count'],
          'groupName':self.details['groupName']
         }
     extraDefaultPrams = {
         "default_argument":{
             "drag_drop_id": None,
             "entity_id":-1,
             "expiry_strategy_id": "7496",
             "is_drag_drop": 0,
             "is_list_processed_for_reachability": True,
             "msg_count": "1",
             "program_id": "1215",
             "promotion_id": 8616,
             "reachability_rules": "UNABLE_TO_VERIFY,VALID,SOFTBOUNCED",
             "sendToNdnc": "false",
             "till_id": "50012200",
             "useTinyUrl": "false"
             }
         }
     communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody, extraParams=extraDefaultPrams)
     communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
     VenenoDBAssertion(cdDetailsBody['campaignId'], cdDetailsBody['communicationType'], communicationId, cdDetailsBody['overallRecipientCount'], cdDetailsBody['recipientListId'], cdDetailsBody['subject'], testControlType='skip', skippedReasons=['Message is not configured properly and is missing points related properties']).check()
 def test_veneno_rateLimit_MonthlyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3,
                                weekly=2,
                                monthly=1,
                                channel='EMAIL')
     VenenoHelper.updateWindowValueToByPassStrategy(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'],
         'MONTHLY',
         channel='EMAIL')
     self.listId = self.testObjectForRateLimit['list'][listType][
         'groupDetails']['id']
     cdDetailsBody = {
         'campaignId':
         self.campaignId,
         'communicationType':
         'EMAIL',
         'subject':
         'Automation Generated Body {{unsubscribe}}',
         'recipientListId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['id'],
         'overallRecipientCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'groupName':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['group_label']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     authorize.assertUserPresenceInNsAdminTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         int(
             json.loads(
                 self.testObjectForRateLimit['list'][listType]
                 ['groupVersionDetails']['TEST']['params'])['test_count']),
         verify=False,
         channel='EMAIL')
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 3,
             'WEEKLY': 2,
             'MONTHLY': 1
         },
         channel='EMAIL')
 def test_veneno_rateLimit_monthlyLimitExceed(self, listType):
     VenenoHelper.setupStrategy(daily=2,
                                weekly=2,
                                monthly=1,
                                channel='PUSH')
     self.listId = self.testObjectForRateLimit['list'][listType][
         'groupDetails']['id']
     cdDetailsBody = {
         'campaignId':
         self.testObjectForRateLimit['campaign']['id'],
         'communicationType':
         'PUSH',
         'subject':
         'Automation Generated Body',
         'body':
         '{"templateData":{"CHANNELACCOUNTNAME":{"luid":"{{luid}}","cuid":"{{cuid}}","communicationId":"{{communicationId}}","title":"asas","message":"asasas","expandableDetails":{"style":"BIG_TEXT","message":"asasas"},"custom":[]}}}'
         .replace('CHANNELACCOUNTNAME', self.account),
         'recipientListId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['id'],
         'overallRecipientCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'groupName':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['group_label']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     communicationDetailBucketId = VenenoHelper.getCommunicationBucketId(
         communicationId)
     authorize.assertUserPresenceInSkippedTable(
         communicationId,
         VenenoHelper.getCommunicationBucketId(communicationId),
         constant.config['skipped_errors']['RATE_LIMIT_ERROR'],
         'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 1,
             'WEEKLY': 1,
             'MONTHLY': 1
         },
         channel='PUSH')
Exemple #14
0
 def test_veneno_rateLimit_allStrategySatisfied_email_sanity(self, listType):
     self.listId = self.testObjectForRateLimit['list'][listType]['groupDetails']['id']
     cdDetailsBody = {
          'campaignId':self.campaignId,
          'communicationType':'EMAIL',
          'subject':'Automation Generated Body {{unsubscribe}}',
          'recipientListId':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['id'],
          'overallRecipientCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'expectedDeliveryCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'groupName':self.testObjectForRateLimit['list'][listType]['groupDetails']['group_label']
         }
     communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
     authorize.assertUserPresenceInNsAdminTable(communicationId , VenenoHelper.getCommunicationBucketId(communicationId), int(json.loads(self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['params'])['test_count']), testControlType='custom', verify=False,groupVersionId=cdDetailsBody['recipientListId'],channel='EMAIL')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1}, channel='EMAIL')
Exemple #15
0
 def test_veneno_rateLimit_dailyLimitExceed(self, listType):
     self.listId = self.testObjectForRateLimit['list'][listType]['groupDetails']['id']
     cdDetailsBody = {
          'campaignId':self.campaignId,
          'communicationType':'EMAIL',
          'subject':'Automation Generated Body {{unsubscribe}}',
          'recipientListId':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['id'],
          'overallRecipientCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'expectedDeliveryCount':self.testObjectForRateLimit['list'][listType]['groupVersionDetails']['TEST']['customer_count'],
          'groupName':self.testObjectForRateLimit['list'][listType]['groupDetails']['group_label']
         }
     communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
     communicationDetailBucketId = VenenoHelper.getCommunicationBucketId(communicationId)
     authorize.assertUserPresenceInSkippedTable(communicationId , VenenoHelper.getCommunicationBucketId(communicationId), constant.config['skipped_errors']['RATE_LIMIT_ERROR'], 'rate limit crossed for user')
     authorize.dbAssertRateLimitStats(self.testObjectForRateLimit['list'][listType]['campaignGroupRecipients']['TEST'], {'DAILY':1, 'WEEKLY':1, 'MONTHLY':1}, channel='EMAIL')
Exemple #16
0
 def test_flow_social_skippedWithCouponExpired(self):
     try:
         SocialHelper.couponConfigChange(
             {
                 'fixedExpiryDate':
                 int(time.time() * 1000 - 24 * 60 * 60 * 1000)
             }, self.campaigns['ORG'], self.voucherSeriesId)
         cdDetailsBody = {
             'campaignId': self.campaigns['ORG'],
             'targetType': 'SOCIAL',
             'communicationType': 'FACEBOOK',
             'subject': '',
             'recipientListId': self.groupVersionid,
             'overallRecipientCount': self.numberOfUsers,
             'expectedDeliveryCount': self.numberOfUsers,
             'groupName': self.groupName
         }
         extraParams = {
             'voucher_series': self.voucherSeriesId,
             'default_argument': {
                 "entity_id": -1,
                 "is_loyalty_checkbox_enabled": "0",
                 "voucher_series_id": self.voucherSeriesId,
                 "daily_budget": 10000,
                 "create_adset": True,
                 "use_existing_adset": False,
                 "adset_name":
                 'AutoAdset_{}'.format(int(time.time() * 1000))
             }
         }
         communicationDetailObject = VenenoObject.communicationDetail(
             cdDetailsBody, extraParams=extraParams)
         communicationId = self.connObj.addMessageForRecipients(
             communicationDetailObject)
         SocialDBAssertion(self.campaigns['ORG'],
                           self.groupVersionid,
                           communicationId,
                           self.numberOfUsers,
                           couponUsed=True,
                           skippedReason=['Coupon Could not be issued'],
                           skippedUsers=True,
                           socialAudienceList=False,
                           socialAdsetInfo=False,
                           aggregationDetail=False).check()
     except Exception, exp:
         Assertion.constructAssertion(
             False, 'Failed with Exception :{}'.format(exp))
Exemple #17
0
 def test_venenoThrift_inboxUser_Line_Sanity(self):
     actualOrgId = construct.updateOrgId(constant.config['line']['orgId'])
     actualOrgName = construct.updateOrgName(constant.config['line']['orgName'])
     try:
         details = VenenoHelper.preRequisitesForVenenoLine(testControlType='skip')
         cdDetailsBody = {
              'campaignId':details['campaignId'],
              'communicationType':'LINE',
              'subject':'{"to":"{{line_id}}","messages":[{"type":"text","text":"Automated Call {{user_id_b64}}"}]}',
              'body':'',
              'recipientListId':details['groupVersionResult']['TEST']['id'],
              'overallRecipientCount':details['groupVersionResult']['TEST']['customer_count'],
              'expectedDeliveryCount':details['groupVersionResult']['TEST']['customer_count'],
              'groupName':details['groupName']
             }
         communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
         communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
         VenenoDBAssertion(cdDetailsBody['campaignId'], cdDetailsBody['communicationType'], communicationId, cdDetailsBody['overallRecipientCount'], cdDetailsBody['recipientListId'], cdDetailsBody['subject'], testControlType='skip').check()
     except Exception, exp:
         raise Exception('Line Failure ,due to :{}'.format(exp))
Exemple #18
0
 def est_venenoThrift_inboxUser_MobilePush_IOS(self):
     actualOrgId = construct.updateOrgId(constant.config['mobilepush']['orgId'])
     actualOrgName = construct.updateOrgName(constant.config['mobilepush']['orgName'])
     try:
         details = VenenoHelper.preRequisitesForVenenoMobilePush('ios',testControlType='skip')
 
         cdDetailsBody = {
              'campaignId':details['campaignId'],
              'communicationType':'PUSH',
              'subject':'Automation Generated Body ',
              'body':'{"templateData":{"ANDROID":{"luid":"{{luid}}","cuid":"{{cuid}}","communicationId":"{{communicationId}}","title":"hi {{first_name}}","message":"{{first_name}}","expandableDetails":{"style":"BIG_TEXT","message":"{{first_name}}"},"custom":[]},"IOS":{"luid":"{{luid}}","cuid":"{{cuid}}","communicationId":"{{communicationId}}","title":"hi {{first_name}}","message":"{{first_name}}","expandableDetails":{"style":"BIG_TEXT","message":"hi {{first_name}}","ctas":[]},"custom":[]}}}',
              'recipientListId':details['groupVersionResult']['TEST']['id'],
              'overallRecipientCount':details['groupVersionResult']['TEST']['customer_count'],
              'expectedDeliveryCount':details['groupVersionResult']['TEST']['customer_count'],
              'groupName':details['groupName']
             }
         communicationDetailObject = VenenoObject.communicationDetail(cdDetailsBody)
         communicationId = self.connObj.addMessageForRecipients(communicationDetailObject)
         VenenoDBAssertion(cdDetailsBody['campaignId'], cdDetailsBody['communicationType'], communicationId, cdDetailsBody['overallRecipientCount'], cdDetailsBody['recipientListId'], cdDetailsBody['subject'], testControlType='skip').check()
     except Exception, exp:
         raise Exception('MobilePush Failure ,due to :{}'.format(exp))
Exemple #19
0
 def est_flow_social_positive_withExternalCoupon_Sanity(self):
     couponsused = LuciHelper.uploadCouponAndAssertions(
         self, self.voucherSeriesId, 2, noOfCouponsToBeUpload=20)['coupons']
     cdDetailsBody = {
         'campaignId': self.campaigns['ORG'],
         'targetType': 'SOCIAL',
         'communicationType': 'FACEBOOK',
         'subject': '',
         'recipientListId': self.groupVersionid,
         'overallRecipientCount': self.numberOfUsers,
         'expectedDeliveryCount': self.numberOfUsers,
         'groupName': self.groupName
     }
     extraParams = {
         'voucher_series': self.voucherSeriesId,
         'default_argument': {
             "entity_id": -1,
             "is_loyalty_checkbox_enabled": "0",
             "voucher_series_id": self.voucherSeriesId,
             "daily_budget": 10000,
             "create_adset": True,
             "use_existing_adset": False,
             "adset_name": 'AutoAdset_{}'.format(int(time.time() * 1000))
         }
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody, extraParams=extraParams)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     remoteCampaignId, remoteListId, remoteAdsetId, remoteOfferid = SocialDBAssertion(
         self.campaigns['ORG'],
         self.groupVersionid,
         communicationId,
         self.numberOfUsers,
         couponUsed=True,
         couponUsedExteranal=True,
         socialOffer=True,
         externalOfferList=couponsused).check()
     SocialRemoteObjectAssertion(self.campaigns['ORG'], remoteCampaignId,
                                 remoteListId, remoteAdsetId)
Exemple #20
0
 def test_veneno_rateLimit_MonthlyByPass(self, listType):
     VenenoHelper.setupStrategy(daily=3,
                                weekly=2,
                                monthly=1,
                                channel='WECHAT')
     VenenoHelper.updateWindowValueToByPassStrategy(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'],
         'MONTHLY',
         channel='WECHAT')
     self.listId = self.testObjectForRateLimit['list'][listType][
         'groupDetails']['id']
     campaignMessage.getWeCRMTemplates()
     subject = {
         "template_id":
         unicodedata.normalize('NFKD',
                               constant.config['templateId']).encode(
                                   'ascii', 'ignore'),
         "touser":
         "******",
         "OriginalId":
         constant.config['wechat']['OriginalId'],
         "Title":
         "",
         "BrandId":
         "f",
         "url":
         "http://we.capillarytech-cn.com/web?appid=wxc7bf989decc7e35b&redirect_uri=http://somelink.com/someword?nowAParam=firstParam&second=second.Param&response_type=code&scope=snsapi_base&state=STATE",
         "TopColor":
         "#000000",
         "data": {
             "productType": {
                 "value": "HakeemProduct",
                 "color": "#00000"
             },
             "name": {
                 "value": "Hakeem {{first_name}} Lukka",
                 "color": "#00000"
             },
             "number": {
                 "value": "898767 skdjnjn",
                 "color": "#00000"
             },
             "expDate": {
                 "value": "look down",
                 "color": "#00000"
             },
             "remark": {
                 "value": "Look up",
                 "color": "#00000"
             }
         }
     }
     cdDetailsBody = {
         'campaignId':
         self.testObjectForRateLimit['campaign']['id'],
         'communicationType':
         'WECHAT',
         'subject':
         str(subject),
         'body':
         'Thrift Created Automation Wechat Body',
         'recipientListId':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['id'],
         'overallRecipientCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'expectedDeliveryCount':
         self.testObjectForRateLimit['list'][listType]
         ['groupVersionDetails']['TEST']['customer_count'],
         'groupName':
         self.testObjectForRateLimit['list'][listType]['groupDetails']
         ['group_label']
     }
     communicationDetailObject = VenenoObject.communicationDetail(
         cdDetailsBody)
     communicationId = self.connObj.addMessageForRecipients(
         communicationDetailObject)
     VenenoDBAssertion(
         cdDetailsBody['campaignId'],
         cdDetailsBody['communicationType'],
         communicationId,
         cdDetailsBody['overallRecipientCount'],
         cdDetailsBody['recipientListId'],
         cdDetailsBody['subject'],
         skippedReasons=[
             'Captured OpenId for user seems to be unsubscribed',
             'rate limit crossed for user'
         ]).check()
     authorize.dbAssertRateLimitStats(
         self.testObjectForRateLimit['list'][listType]
         ['campaignGroupRecipients']['TEST'], {
             'DAILY': 3,
             'WEEKLY': 2,
             'MONTHLY': 1
         },
         channel='WECHAT')