Beispiel #1
0
 def revokes3FileAndRequestObject(self, couponSeriesId, couponData,
                                  revokeTypeIndex):
     invalidateDict = {
         'uploadedFileName':
         constant.config['uploadedFileName'] + '_revokeFile'
     }
     filehandle = FileHelper(constant.luciS3FilePath)
     filehandle.eraseContentFromFile()
     revokeType = [
         'COUPON_SERIES', 'ONLY_UNISSUED', 'userId', 'couponCode',
         'couponId', 'CUSTOMER_AND_COUPON'
     ]
     if revokeType[revokeTypeIndex] == 'userId':
         filehandle.appendToFile(revokeType[revokeTypeIndex])
         invalidateDict.update({'revokeHeaders': {'userId': 0}})
     elif revokeType[revokeTypeIndex] == 'couponCode':
         filehandle.appendToFile(revokeType[revokeTypeIndex])
         invalidateDict.update({'revokeHeaders': {'couponCode': 0}})
     elif revokeType[revokeTypeIndex] == 'couponId':
         filehandle.appendToFile(revokeType[revokeTypeIndex])
         invalidateDict.update({'revokeHeaders': {'couponId': 0}})
     elif revokeType[revokeTypeIndex] == 'CUSTOMER_AND_COUPON':
         filehandle.appendToFile('userId,couponCode')
         invalidateDict.update(
             {'revokeHeaders': {
                 'userId': 1,
                 'couponCode': 0
             }})
     for eachData in couponData:
         filehandle.appendToFile(eachData)
     invalidateDict.update(
         {'S3FilePath': DracarysHelper.s3FileUpload(self, couponSeriesId)})
     return invalidateDict
Beispiel #2
0
 def createFileForSkippedUsers(users):
     filePath = constant.autoTempFilePath + 'AutoList_{}_{}'.format(randValues.randomString(8),
                                                                    int(time.time() * 1000))
     file = FileHelper(filePath)
     for eachUser in users:
         file.appendToFile('{},{}'.format(eachUser,'Skip_{}'.format(eachUser)))
     Logger.log('FilePath Create for Skipped User :{}'.format(filePath))
     return filePath
Beispiel #3
0
    def generateCouponUploadFile(self,
                                 identifier='userId',
                                 isUserTagged=False,
                                 isOnlyUser=False,
                                 noOfRecords=1,
                                 is_Invalid=[False, False],
                                 couponCodeCAPS=True):
        couponUploadFile = constant.luciS3FilePath
        filehandle = FileHelper(couponUploadFile)
        First = True
        data = []
        filehandle.eraseContentFromFile()
        if isUserTagged and not isOnlyUser:
            filehandle.appendToFile('Coupon Code, issuedTo')
            for i in range(noOfRecords):
                if not couponCodeCAPS:
                    couponCode = DracarysHelper.generateCouponCode().lower()
                else:
                    couponCode = DracarysHelper.generateCouponCode()
                    if First:
                        duplicateCoupon = couponCode + ', ' + str(
                            constant.config['usersInfo'][i][identifier])
                        First = False
                filehandle.appendToFile(
                    couponCode + ', ' +
                    str(constant.config['usersInfo'][i][identifier]))
                data.append(couponCode)
            if is_Invalid[0]:
                filehandle.appendToFile(duplicateCoupon)
            elif is_Invalid[1]:
                couponCode = DracarysHelper.generateCouponCode()
                if identifier == 'mobile':
                    filehandle.appendToFile(
                        couponCode + ', ' +
                        str(randValues.getRandomMobileNumber()))
                elif identifier == 'email':
                    filehandle.appendToFile(couponCode + ', ' +
                                            str(randValues.randomEmailId()))
                elif identifier in ['userId', 'externalId']:
                    filehandle.appendToFile(
                        couponCode + ', ' +
                        str(randValues.randomInteger(digits=8)))
        elif isOnlyUser:
            filehandle.appendToFile('issuedTo')
            for i in range(noOfRecords):
                filehandle.appendToFile(
                    str(constant.config['usersInfo'][i][identifier]))
            if is_Invalid[0]:
                filehandle.appendToFile(
                    str(constant.config['usersInfo'][0][identifier]))
            elif is_Invalid[1]:
                if identifier == 'mobile':
                    filehandle.appendToFile(
                        str(randValues.getRandomMobileNumber()))
                elif identifier == 'email':
                    filehandle.appendToFile(str(randValues.randomEmailId()))
                elif identifier in ['userId', 'externalId']:
                    filehandle.appendToFile(
                        str(randValues.randomInteger(digits=8)))
        else:
            filehandle.appendToFile('Coupon Code')
            for _ in range(noOfRecords):
                if not couponCodeCAPS:
                    couponCode = DracarysHelper.generateCouponCode().lower()
                else:
                    couponCode = DracarysHelper.generateCouponCode()
                if First:
                    duplicateCoupon = couponCode
                    filehandle.appendToFile(duplicateCoupon)
                    data.append(duplicateCoupon)
                    First = False
                else:
                    filehandle.appendToFile(couponCode)
                    data.append(couponCode)
            if is_Invalid[0]:
                filehandle.appendToFile(duplicateCoupon)
            elif is_Invalid[1]:
                filehandle.appendToFile(
                    DracarysHelper.generateCouponCode(size=21))

        return data
Beispiel #4
0
class BaseState():
    @staticmethod
    def initializeConstants(args):
        module = constant.config['module'] = args.module.lower()
        runId = args.runId
        collectOnly = constant.config['collectOnly'] = args.collectOnly
        tcFilter = args.tcFilter
        cluster = constant.config['cluster'] = args.cluster.lower()
        if collectOnly:
            if 'cluster' in args.cluster.lower():
                cluster = constant.config['cluster'] = 'nightly'
            constant.config['campaignId'] = 1

        if module.lower() == 'nsadmin':
            if tcFilter != '':
                tcFilter += ' and'
            if cluster.lower() in ['nightly', 'staging']:
                tcFilter += ' not Prod'
            else:
                tcFilter += ' Prod and ' + str(cluster.title())
            if args.prodEmail1 != '':
                constant.prodNumbers['prodEmail1'] = args.prodEmail1
        constant.config['tcFilter'] = tcFilter

        if not module in runId.lower():
            runId = module.title() + '_' + runId
        msg = 'Initializing Suite for Cluster: ' + cluster + ' Module: ' + module
        if tcFilter != '':
            msg += ' Filter: ' + tcFilter
        print msg

        constant.config['runId'] = runId
        constant.config['logDir'] = constant.logDirectory + runId
        constant.config['currentTimestamp'] = datetime.today().strftime('%Y-%m-%d %H:%M:%S')
        constant.config.update(constant.portsUsed[cluster])
        constant.config.update(constant.clusterUrl[cluster])
        constant.config.update(constant.auth[cluster])
        constant.config.update(constant.intouchEndpoints)
        constant.config.update(constant.endpoints)
        BaseState.updateOrgDetails(module)
        if module in ['iris','irisv2', 'veneno', 'darknight', 'campaign_shard', 'campaignsui', 'social']:
            constant.config.update(constant.wechatMobilepush[cluster])
            if constant.config['cluster'] in ['nightly', 'staging', 'china']: constant.config['wecrm_details'] = \
                constant.config['wechat']['wecrm_details']
            constant.config.update(constant.aryaEndpoints)
            constant.config.update({'campaignDefaultObjectCopy': copy.deepcopy(constant.campaignDefaultValues)})
            try:
                authResponse = auth.authLogin()
                if authResponse['cookies'].get_dict() != {}:
                    constant.config['aryaCookiesDict'] = authResponse['cookies'].get_dict()
                    constant.config['token'] = authResponse['json']['token']
                else:
                    raise Exception('')
            except:
                print '------------------------------Arya Cookies Not Set------------------------------'

        if module in ['emf', 'peb']:
            orgId = constant.config['orgId']
            constant.config.update(constant.emfConstants[cluster][orgId])
        if module in ['luci', 'veneno', 'social']:
            constant.config['requestId'] = 'requestId_' + str(randValues.randomInteger(5))
            constant.config['dateTime'] = DracarysHelper.getValueOfDay()
        if not collectOnly:
            Utils.createFolder(constant.config['logDir'])
            Logger.configureLogging(constant.config['logDir'])
        if constant.config['os'] != 'windows':
            dbHelper.getIntouchShardNameForOrg(module)
            dbHelper.buildDBToTunnelPortMapping()
        if module == 'veneno' and not collectOnly:
            if constant.config['cluster'] == 'nightly': VenenoHelper.updateStartegyForRateLimit()
        if module == 'irisv2':
            constant.irisGenericValues = {'goalId': '1', 'objectiveId': '1', 'existingUserId': '1',
                                          'existingUserExternalId': '1'}
        if module in ['iris', 'veneno', 'campaign_shard', 'campaignsui', 'darknight', 'social']:
            constant.config['skipped_errors'] = dbCallsList.getSkippedErrorTypes()
            constant.config.update(constant.irisDetails[cluster])
            if collectOnly:
                constant.irisGenericValues = {'goalId': '1', 'objectiveId': '1', 'existingUserId': '1',
                                              'existingUserExternalId': '1'}
            else:
                try:
                    goalId = str(dbCallsCampaign.getValidGoalId())
                    objectiveId = str(dbCallsCampaign.getValidObjectiveId())
                    existingUserDetail = dbCallsMessage.getUsersInformation(1)[0]
                    constant.irisGenericValues = {'goalId': goalId, 'objectiveId': objectiveId,
                                                  'existingUserId': existingUserDetail[0],
                                                  'existingUserExternalId': existingUserDetail[5]}
                except Exception, exp:
                    constant.irisGenericValues = {'goalId': '1', 'objectiveId': '1', 'existingUserId': '1',
                                                  'existingUserExternalId': '1'}
                    Logger.log(
                        'Exception :{} occured while setting irisGeneric Values , so setting the values by Default as :{}'.format(
                            exp, constant.irisGenericValues))
        if module == 'campaignsui':
            constant.config.update(constant.irisDetails[cluster])
            constant.config.update(constant.wechatMobilepush[cluster])
            if constant.config['cluster'] in ['nightly', 'staging', 'china']: constant.config['wecrm_details'] = \
                constant.config['wechat']['wecrm_details']
            constant.config.update({'headlessMode': args.headlessMode})
            constant.config.update(constant.campaignuiDetails)
            constant.config.update({'apiTesterDB': constant.dbNames[cluster]})
            constant.config.update({'shard': DBCallsCampaigns.getShardGettingUsed()})

            if collectOnly:
                constant.campaignuiUserInfo.update({'loyalty': {'name': 'name', 'email': 'email', 'mobile': 'mobile'}})
            else:
                fileHandle = FileHelper(constant.userFileMobile)
                existingUserDetail = DBCallsCampaigns.getLoyaltyUserInfo(1)[0]
                constant.campaignuiUserInfo.update({'loyalty': {'name': existingUserDetail[1],
                                                                'email': existingUserDetail[4],
                                                                'mobile': existingUserDetail[3]}})
                fileHandle.eraseContentFromFile()
                fileHandle.appendToFile('mobile,name')
                fileHandle.appendToFile(str(existingUserDetail[3]) + ',' + str(existingUserDetail[1]))
        if module == 'nsadmin':
            constant.config.update(constant.prodNumbers)
            constant.config.update({"clusterFileHandle": constant.clusterFileHandle[cluster]})
            constant.config.update({"dlrUrl": constant.dlrUrl[cluster]})

        if module == 'irisv2':
            constant.config.update({'node': copy.deepcopy(constant.node)})

        if not collectOnly:
            sortesListOfLogFiles = Utils.sorted_ls(constant.logDirectory)
            if len(sortesListOfLogFiles) > constant.maxNumberOfLogFiles:
                try:
                    Utils.deleteFolder(constant.logDirectory + '/' + sortesListOfLogFiles[0])
                except Exception as e:
                    Logger.log(str(e))
            BaseState.setBaseState()