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))
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
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')
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()
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()
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)
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()
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')
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')
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')
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))
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))
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))
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)
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')