def test_createCoupon_SameCampaignSameName(self, description, payloadData): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon(response, 200) secondResponse, secondPayload, campaignId = coupons.createCoupons( payloadData=payloadData, campaignId=campaignId) coupons.assertCreateCoupon( secondResponse, 400, 4005, 'Coupon Exists Exception : Coupon Already Exists for this Campaign ' )
def test_createCoupon_MultipleCouponInSameCampaign(self, description, payloadData): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon(response, 200) failedResponse, failedCasepayload, campaignId = coupons.createCoupons( payloadData=payloadData, campaignId=campaignId) coupons.assertCreateCoupon( failedResponse, 400, 4005, 'Coupon Exists Exception : Coupon Already Exists for this Campaign ' ) coupons.assertCreateCouponDbCalls(response, payload, campaignId)
def setup_class(self): self.numberOfUsers = 20 self.constructObj = LuciObject() self.DracarysObj = DracarysObject() self.DracraysConnObj = DracarysHelper.getConnObj(newConnection=True) self.campaigns = SocialHelper.createCampaignsForSocialThrift( testControlType=['ORG']) self.groupVersionid, self.groupName = SocialHelper.createListForSocial( self.campaigns, 'ORG', numberOfUsers=self.numberOfUsers, newUser=True) self.remoteCampaignId = SocialHelper.createRemoteCampaignsForSocialThrift( self.campaigns['ORG']) SocialHelper.updateRemoteCampaignIdInCampaignsBase( self.campaigns['ORG'], self.remoteCampaignId) self.voucherSeriesId = coupons.createCoupons( campaignId=self.campaigns['ORG'], payloadData={ 'couponLimit': { 'limit': 0, 'type': 'UNLIMITED' }, 'discountOn': 'BILL', 'discountType': 'ABS', 'discountValue': 10 })[0]['json']['entity']['voucherSeriesId'] SocialHelper.couponConfigChange( { 'client_handling_type': 'EXTERNAL_ISSUAL', 'any_user': True }, self.campaigns['ORG'], self.voucherSeriesId)
def setup_class(self): Logger.logSuiteName(str(self).split('.')[-1]) nsPort = constant.config['nsMasterPort'] self.nsHelper = NSAdminHelper(constant.config['orgId'], 'SMS') luciPort = constant.config['luciPort'].next() self.luciObj = LuciThrift(luciPort) self.constructObj = LuciObject() constant.config['requestId'] = 'requestId_IRIS_LUCI' createListresponse, createListPayload, campaignId = campaignList.createList({'customTagCount':0, 'name':'IRIS_LIST_' + str(int(time.time() * 100000))}, campaignType=['LIVE', 'ORG', 'List', 'TAGS', 0]) campaignList.assertCreateList(createListresponse, 200) groupVersionDetailResult, bucketId = campaignList.assertCreateListDbCalls(createListresponse['json']['entity']['listId'], createListPayload, 'ORG') Logger.log('GroupVersionId : {}, bucketId : {}'.format(groupVersionDetailResult, bucketId)) addRecipientResponse, addRecipientPayload = campaignList.addRecipient({}, campaignId, createListresponse['json']['entity']['listId'], 'mobile', 10, 0, newUser=False) campaignList.assertAddRecipient(addRecipientResponse, 200) campaignList.assertAddRecipientDbCalls(addRecipientResponse, addRecipientPayload, createListresponse, campaignId, bucketId, {'TEST':groupVersionDetailResult['TEST'], 'CONTROL':groupVersionDetailResult['CONTROL']}, 'mobile') self.bucketId = bucketId self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId(createListresponse['json']['entity']['listId']) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons(campaignId=campaignId) self.strategy = construct.constructStrategyIds() self.programeId = self.strategy['programeId'] self.allocationStrategyId = self.strategy['allocationStrategyId'] self.expiryStrategyId = self.strategy['expirationStrategyId'] if 'errors' not in responseCoupon['json']: self.voucherId = responseCoupon['json']['entity']['voucherSeriesId'] else: self.voucherId = dbCallsCoupons.getVoucherSeriesIdUsingCampaignId(campaignId) self.campaignId = campaignId self.listId = createListresponse['json']['entity']['listId'] Logger.log('Using CampaignId : {} , listId : {} for Execution of Create Message'.format(self.campaignId, self.listId))
def test_createCoupon_popMandatoryFields(self, description, fieldToPop, statusCode, errorCode, errorMessage): response, payload, campaignId = coupons.createCoupons(fieldToPop, process='pop') coupons.assertCreateCoupon(response, statusCode, errorCode, errorMessage)
def setup_class(self): self.numberOfUsers = 20 self.campaigns = SocialHelper.createCampaignsForSocialThrift(testControlType=['CUSTOM']) self.groupVersionid,self.groupName = SocialHelper.createListForSocial(self.campaigns,'CUSTOM',numberOfUsers=self.numberOfUsers,newUser=True) self.remoteCampaignId = SocialHelper.createRemoteCampaignsForSocialThrift(self.campaigns['CUSTOM']) SocialHelper.updateRemoteCampaignIdInCampaignsBase(self.campaigns['CUSTOM'],self.remoteCampaignId) self.voucherSeriesId = coupons.createCoupons(campaignId=self.campaigns['CUSTOM'],payloadData={'couponLimit':{'limit':0, 'type':'UNLIMITED'}, 'discountOn':'BILL', 'discountType':'ABS', 'discountValue':10})[0]['json']['entity']['voucherSeriesId']
def test_createCoupon_campaignConceptType_CouponOrgType( self, description, payloadData): parentChild = dbCallsCoupons.getParentChildRelationOnEntities() Logger.log('Parent and Child Map :', parentChild) try: if construct.updateAuthenticate('concept') == True: conceptId = str(auth.authLogin()['json']['user'] ['aryaUserRoles']['CONCEPT'][0]['entityId']) createCampaignresponse, createCampaignPayload = campaigns.createCampaign( { 'entityId': conceptId, 'name': 'IRIS_' + str(int(time.time())), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'] }) if construct.updateAuthenticate() == True: Logger.log('PayloadDate Including till list :', payloadData) response, payload, campaignId = coupons.createCoupons( payloadData=payloadData, campaignId=createCampaignresponse['json']['entity'] ['campaignId']) coupons.assertCreateCoupon( response, 400, 4004, 'Coupon Request Body Violation Exception : Creation of Coupon for this campaign is not allowed for this user' ) else: Assertion.constructAssertion( False, 'Marking as Failed as Authenticate was not Properly Updated' ) except AssertionError, exp: Assertion.constructAssertion(False, 'Case Failed Due to :{}'.format(exp))
def test_createCoupon_passingStoreIdInTill_userConceptLevel( self, description, payloadData): parentChild = dbCallsCoupons.getParentChildRelationOnEntities() Logger.log('Parent and Child Map :', parentChild) try: if construct.updateAuthenticate('concept') == True: conceptId = str(auth.authLogin()['json']['user'] ['aryaUserRoles']['CONCEPT'][0]['entityId']) storeId = parentChild[conceptId].split(',')[0] payloadData.update({ 'issuableTillIds': [storeId], 'redeemableTillIds': [storeId] }) Logger.log('PayloadDate Including till list :', payloadData) response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon( response, 400, 4004, 'Coupon Request Body Violation Exception : Invalid set of issuable till ids.' ) else: Assertion.constructAssertion( False, 'Marking as Failed as Authenticate was not Properly Updated' ) except AssertionError, exp: Assertion.constructAssertion(False, 'Case Failed Due to :{}'.format(exp))
def test_createCoupon_NegativeCases_Variation(self, description, payloadData, statusCode, errorCode, errorMessage): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData, campaignType=['LIVE', 'ORG']) coupons.assertCreateCoupon(response, statusCode, errorCode, errorMessage)
def test_createCoupon_tillsFromSameConcept_userConceptLevel( self, description, payloadData): parentChild = dbCallsCoupons.getParentChildRelationOnEntities() Logger.log('Parent and Child Map :', parentChild) try: if construct.updateAuthenticate('concept') == True: conceptId = str(auth.authLogin()['json']['user'] ['aryaUserRoles']['CONCEPT'][0]['entityId']) tillId = coupons.getTillFromParentEntity( parentChild, conceptId) payloadData.update({ 'issuableTillIds': [tillId], 'redeemableTillIds': [tillId] }) Logger.log('PayloadDate Including till list :', payloadData) response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon(response, 200) coupons.assertCreateCouponDbCalls(response, payload, campaignId) else: Assertion.constructAssertion( False, 'Marking as Failed as Authenticate was not Properly Updated' ) except AssertionError, exp: Assertion.constructAssertion(False, 'Case Failed Due to :{}'.format(exp))
def preRequisitesForVenenoLine(testControlType='org'): userData = [] for eachUser in constant.config['line']['user']: userData.append('Test,Automation,{}'.format(eachUser['userId'])) campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time() * 100000)), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'], 'testControl': { 'type': testControlType.upper(), 'test': 90 } }) listResponse, listPayload, campaignId = campaignList.createList( { 'customTagCount': 0, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=campaignResponse['json']['entity']['campaignId']) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( { 'data': userData, 'schema': 'firstName,lastName,userId' }, campaignId, listResponse['json']['entity']['listId'], newUser=False) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) return { 'campaignName': campaignPayload['name'], 'campaignId': campaignId, 'listId': listResponse['json']['entity']['listId'], 'voucherId': responseCoupon['json']['entity']['voucherSeriesId'], 'strategy': None, 'programeId': None, 'allocationStrategyId': None, 'expiryStrategyId': None, 'bucketId': dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['json']['entity']['listId'])['TEST']['bucket_id'], 'groupVersionResult': dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['json']['entity']['listId']), 'groupName': listPayload['name'] }
def test_createCoupon_Timeout(self, description, payloadData): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData, timeout=0.0001) time.sleep(5) campaignsInfo = dbCallsCampaign.getCampaignBaseFromCampaignId( campaignId) Assertion.constructAssertion( int(campaignsInfo['voucher_series_id']) != -1, 'Checking Even After Timeout Voucher Series is Created with VoucherSeriesId :{}' .format(campaignsInfo['voucher_series_id']))
def test_createCoupon_tillIds_differentIssuableAndReedemableTills( self, description, payloadData): tillIdList = map( int, dbCallsCoupons.getEntityIdWithType()['TILL'].split(',')) payloadData.update({ 'redeemableTillIds': [tillIdList[1]], 'issuableTillIds': [tillIdList[0]] }) Logger.log('PayloadDate Including till list :', payloadData) response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon(response, 200)
def preRequisitesForVeneno(testControlType='org'): if 'storeType' in constant.payload['createmessage']: constant.payload['createmessage'].pop('storeType') campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time() * 100000)), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'], 'testControl': { 'type': testControlType.upper(), 'test': 90 } }) listResponse, listPayload, campaignId = campaignList.createList( { 'customTagCount': 1, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=campaignResponse['json']['entity']['campaignId']) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( {}, campaignId, listResponse['json']['entity']['listId'], 'mobile,email', 10, 1, newUser=False) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) strategyDict = construct.constructStrategyIds() groupVersionDict = dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['json']['entity']['listId']) return { 'campaignId': campaignId, 'listId': listResponse['json']['entity']['listId'], 'voucherId': responseCoupon['json']['entity']['voucherSeriesId'], 'strategy': strategyDict, 'programeId': strategyDict['programeId'], 'allocationStrategyId': strategyDict['allocationStrategyId'], 'expiryStrategyId': strategyDict['expirationStrategyId'], 'bucketId': groupVersionDict['TEST']['bucket_id'], 'groupVersionResult': groupVersionDict, 'groupName': listPayload['name'] }
def setup_class(self): if 'storeType' in constant.payload['createmessage']: constant.payload['createmessage'].pop('storeType') campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time() * 100000)), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'], 'testControl': { 'type': 'ORG', 'test': 90 } }) listResponse, listPayload, campaignId = campaignList.createList( { 'customTagCount': 1, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=campaignResponse['json']['entity']['campaignId']) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( {}, campaignId, listResponse['json']['entity']['listId'], 'mobile', 10, 1, newUser=False) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) self.campaignId = campaignId self.listId = listResponse['json']['entity']['listId'] self.voucherId = responseCoupon['json']['entity']['voucherSeriesId'] self.strategy = construct.constructStrategyIds() self.programeId = self.strategy['programeId'] self.allocationStrategyId = self.strategy['allocationStrategyId'] self.expiryStrategyId = self.strategy['expirationStrategyId'] self.bucketId = dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['json']['entity']['listId'])['TEST']['bucket_id'] self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['json']['entity']['listId']) Logger.log( 'Veneno Setup Details --> campaignId:{} ,ListId:{} ,voucherId:{} ,strategy:{}, bucketId:{}, groupVersionDetail:{}' .format(self.campaignId, self.listId, self.voucherId, self.strategy, self.bucketId, self.groupVersionResult))
def test_createCoupon_campaignIdNotInPassedOrg(self): campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time())), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'] }) previousOrgId = construct.updateOrgId(0) try: response, payload, campaignId = coupons.createCoupons( campaignId=campaignResponse['json']['entity']['campaignId']) coupons.assertCreateCoupon( response, 400, 1007, 'Campaign Id Exception : Invalid Campaign Id Passed {}'.format( campaignId)) except AssertionError, exp: Assertion.constructAssertion(False, exp)
def setup_class(self): campaignMessage.getWeCRMTemplates() self.nonWechatOrgId = construct.updateOrgId( constant.config['wechat_org_id']) self.templateIdDict = campaignMessage.setupTemplateId() createListresponse, createListPayload, campaignId = campaignList.createList( { 'customTagCount': 0, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=Test_Wechat_CreateMessage.createCampaign()) campaignList.assertCreateList(createListresponse, 200) groupVersionDetailResult, bucketId = campaignList.assertCreateListDbCalls( createListresponse['json']['entity']['listId'], createListPayload, 'ORG') Logger.log('GroupVersionId : {}, bucketId : {}'.format( groupVersionDetailResult, bucketId)) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( Test_Wechat_CreateMessage.addRecipientPayload(), campaignId, createListresponse['json']['entity']['listId']) campaignList.assertAddRecipient(addRecipientResponse, 200) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) self.groupVersionResult = dbCallsList.getGroupVersionDetailsWithGroupId( createListresponse['json']['entity']['listId']) self.bucketId = bucketId self.strategy = construct.constructStrategyIds() self.programeId = self.strategy['programeId'] self.allocationStrategyId = self.strategy['allocationStrategyId'] self.expiryStrategyId = self.strategy['expirationStrategyId'] self.voucherId = responseCoupon['json']['entity']['voucherSeriesId'] self.campaignId = campaignId self.listId = createListresponse['json']['entity']['listId'] campaignMessage.updateDefaultMessageJson(self.campaignId, self.listId, self.voucherId, self.strategy, self.bucketId, self.groupVersionResult) constant.messagesDefault['updated'] = True Logger.log( 'Using CampaignId : {} , listId : {} for Execution of Create Message' .format(self.campaignId, self.listId))
def test_createCoupon_wrongCampaignId(self, description, payloadData): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData, campaignId=0) coupons.assertCreateCoupon( response, 400, 100, 'Invalid request : Campaign id should be a positive value.')
def preRequisitesForVenenoWechat(userData=[], testControlType='org'): if len(userData) == 0: for eachUser in constant.config['wechat']['user']: userData.append(eachUser['firstName'] + ',' + eachUser['lastName'] + ',' + eachUser['email']) if 'storeType' in constant.payload['createmessage']: constant.payload['createmessage'].pop('storeType') campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time() * 100000)), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'], 'testControl': { 'type': testControlType.upper(), 'test': 90 } }) listResponse, listPayload, campaignId = campaignList.createList( { 'customTagCount': 0, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=campaignResponse['json']['entity']['campaignId']) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( { 'data': userData, 'schema': 'firstName,lastName,email' }, campaignId, listResponse['json']['entity']['listId'], newUser=False) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) groupVersionDetails = dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['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']) }) return { 'campaignName': campaignPayload['name'], 'campaignId': campaignId, 'listId': listResponse['json']['entity']['listId'], 'voucherId': responseCoupon['json']['entity']['voucherSeriesId'], 'strategy': None, 'programeId': None, 'allocationStrategyId': None, 'expiryStrategyId': None, 'groupDetails': dbCallsList.getGroupDetailsWithListId( listResponse['json']['entity']['listId']), 'campaignGroupRecipient': camapignGroupRecipientsData, 'bucketId': groupVersionDetails['TEST']['bucket_id'], 'groupVersionResult': groupVersionDetails, 'groupName': listPayload['name'], 'addRecipientPayload': addRecipientPayload }
def test_createCoupon_TillIds(self, description, payloadData): response, payload, campaignId = coupons.createCoupons( payloadData=payloadData) coupons.assertCreateCoupon(response, 200) coupons.assertCreateCouponDbCalls(response, payload, campaignId)
def preRequisitesForVenenoMobilePush(commChannelType, testControlType='org'): singleUserProfile = dbCallsAuthorize.getUserForMobilePush( commChannelType)[0] secondUserProfile = dbCallsAuthorize.getUserForMobilePush( commChannelType)[1] userData = [ 'Test,Automation,' + str(singleUserProfile['userId']), 'Test,Automation,' + str(secondUserProfile['userId']) ] if 'storeType' in constant.payload['createmessage']: constant.payload['createmessage'].pop('storeType') campaignResponse, campaignPayload = campaigns.createCampaign({ 'name': 'IRIS_' + str(int(time.time() * 100000)), 'goalId': constant.irisGenericValues['goalId'], 'objectiveId': constant.irisGenericValues['objectiveId'], 'testControl': { 'type': testControlType.upper(), 'test': 90 } }) listResponse, listPayload, campaignId = campaignList.createList( { 'customTagCount': 0, 'name': 'IRIS_LIST_' + str(int(time.time() * 100000)) }, campaignId=campaignResponse['json']['entity']['campaignId']) addRecipientResponse, addRecipientPayload = campaignList.addRecipient( { 'data': userData, 'schema': 'firstName,lastName,userId' }, campaignId, listResponse['json']['entity']['listId'], newUser=False) responseCoupon, payloadCoupon, campaignId = coupons.createCoupons( campaignId=campaignId) groupVersionDetails = dbCallsList.getGroupVersionDetailsWithGroupId( listResponse['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']) }) return { 'campaignName': campaignPayload['name'], 'campaignId': campaignId, 'listId': listResponse['json']['entity']['listId'], 'voucherId': responseCoupon['json']['entity']['voucherSeriesId'], 'strategy': None, 'programeId': None, 'allocationStrategyId': None, 'expiryStrategyId': None, 'groupDetails': dbCallsList.getGroupDetailsWithListId( listResponse['json']['entity']['listId']), 'campaignGroupRecipient': camapignGroupRecipientsData, 'bucketId': groupVersionDetails['TEST']['bucket_id'], 'groupVersionResult': groupVersionDetails, 'groupName': listPayload['name'], 'addRecipientPayload': addRecipientPayload }