Пример #1
0
def test_elq_unknown_error(mock_get):
    """ exception raised on non-200 status code """
    mock_response = Mock()
    http_error = HTTPError()
    mock_response.raise_for_status.side_effect = http_error
    mock_get.return_value = mock_response
    Eloqua(company='test', username='******', password='******')
from pyeloqua import Eloqua
from datetime import datetime
import requests
import sys, os, logging

## Setup logging

# logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] + '/Bulk_CleanupDefinitions.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

## setup session

elq = Eloqua(username=os.environ['ELOQUA_USER'], password=os.environ['ELOQUA_PASSWORD'], company=os.environ['ELOQUA_COMPANY'])
print("Eloqua session established")

## Get all definitions
print("Getting exports/imports")

defs = []

exports = elq.GetDef(defType='exports')

defs.extend(exports)

imports = elq.GetDef(defType='imports')

defs.extend(imports)

print("Got all exports/imports: " + str(len(defs)))

## Create a set of defs to delete
Пример #3
0
## Setup logging
logname = '/' + jobName + '_' + format(datetime.now(), '%Y-%m-%d') + '.log'
logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] + logname,
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')
jobStart = datetime.now()

env = os.environ['OPENSHIFT_NAMESPACE']

###############################################################################
## Setup Eloqua session
###############################################################################

elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])
logging.info("Eloqua session established")

###############################################################################
## Export contacts from Eloqua
###############################################################################

fieldset = {}
fieldset['emailAddress'] = '{{CustomObject[990].Field[18495]}}'
fieldset['dataStatus'] = '{{CustomObject[990].Field[18496]}}'

## Set filter
time = datetime.strftime((datetime.now() - timedelta(days=180)),
                         '%Y-%m-%d %H:%M:%S')
myFilter = elq.FilterDateRange(entity='customObjects',
Пример #4
0
def test_elq_set_user(mock_get):
    """ set username """
    mock_get.return_value = Mock(ok=True, status_code=200)
    mock_get.return_value.json.return_value = ELQ_LOGIN
    elq = Eloqua(company='test', username='******', password='******')
    assert elq.username == 'test'
Пример #5
0
def test_elq_invalid_auth(mock_get):
    """ exception raised on bad credentials """
    mock_get.return_value = Mock(ok=True, status_code=200)
    mock_get.return_value.json.return_value = "Not authenticated."
    Eloqua(company='test', username='******', password='******')
Пример #6
0
## Setup logging
logname = '/' + jobName + '_' + format(datetime.now(), '%Y-%m-%d') + '.log'
logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] + logname,
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')
jobStart = datetime.now()

env = os.environ['OPENSHIFT_NAMESPACE']

###############################################################################
## Setup Eloqua session
###############################################################################

elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])
logging.info("Eloqua session established")

###############################################################################
## Check list size before attempting export sync
## Do this to save syncs
###############################################################################

listSize = elq.GetAssetSize(assetType='sharedList', name='DWM - Export Queue')

total = listSize

if listSize > 0:

    ###############################################################################
## Setup logging
logname = '/' + jobName + '_' + format(datetime.now(), '%Y-%m-%d') + '.log'
logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] + logname,
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')
jobStart = datetime.now()

env = os.environ['OPENSHIFT_NAMESPACE']

###############################################################################
## Setup Eloqua session
###############################################################################

elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])
logging.info("Eloqua session established")

###############################################################################
## Check queue size of waiting imports
###############################################################################

clientQueue = MongoClient(os.environ['MONGODB_URL'])

dbQueue = clientQueue['dwmqueue']

indicatorQueue = Queue(db=dbQueue, queueName='indicatorQueue')

size = indicatorQueue.getQueueSize()
Пример #8
0
def test_elq_set_bulk_version():
    """ Change Bulk API version """
    elq = Eloqua(test=True)
    elq.set_bulk_version('1.2')
    assert elq.bulk_base == 'https://secure.p01.eloqua.com/API/BULK/1.2/'
Пример #9
0
def test_elq_no_user():
    """ username required """
    Eloqua(company='test', password='******')
Пример #10
0
def test_elq_set_bulk_base(mock_get):
    """ set Bulk API base """
    mock_get.return_value = Mock(ok=True, status_code=200)
    mock_get.return_value.json.return_value = ELQ_LOGIN
    elq = Eloqua(company='test', username='******', password='******')
    assert elq.bulk_base == 'https://secure.p01.eloqua.com/API/Bulk/2.0/'
Пример #11
0
def test_elq_test():
    """ test mode for authentication """
    elq = Eloqua(test=True)
    assert elq.auth == ('test\\test', 'test')
Пример #12
0
def test_elq_set_urlbase(mock_get):
    """ set URL base """
    mock_get.return_value = Mock(ok=True, status_code=200)
    mock_get.return_value.json.return_value = ELQ_LOGIN
    elq = Eloqua(company='test', username='******', password='******')
    assert elq.urlBase == 'https://secure.p01.eloqua.com'
Пример #13
0
def test_elq_set_auth(mock_get):
    """ set auth tuple """
    mock_get.return_value = Mock(ok=True, status_code=200)
    mock_get.return_value.json.return_value = ELQ_LOGIN
    elq = Eloqua(company='test', username='******', password='******')
    assert elq.auth == ('test\\test', 'test')
Пример #14
0
## Setup logging
logname = '/' + jobName + '_' + format(datetime.now(), '%Y-%m-%d') + '.log'
logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] + logname,
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')
jobStart = datetime.now()

env = os.environ['OPENSHIFT_NAMESPACE']

###############################################################################
## Setup Eloqua session
###############################################################################

elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])
logging.info("Eloqua session established")

###############################################################################
## Import contacts to Eloqua
###############################################################################

## import field set; store this in a separate file so we can edit them without touching this script
from Eloqua_Contacts_ExportFields import fieldset

###############################################################################
## Check queue size of waiting imports
###############################################################################

clientQueue = MongoClient(os.environ['MONGODB_URL'])
Пример #15
0
def test_elq_set_bulk_version():
    """ Change Bulk API version """
    elq = Eloqua(test=True)
    elq.set_bulk_version('1.2')
    assert elq.bulk_base == 'https://secure.p01.eloqua.com/API/BULK/1.2/'
Пример #16
0
def test_elq_no_company():
    """ company required """
    Eloqua(username='******', password='******')
import json
from pyeloqua import Eloqua
from copy import deepcopy
from csv import DictWriter

## Get asset IDs

ids = []

with open('test.csv') as f:
    for row in f:
        ids.append(str(row).replace('\n', ''))

## setup new Eloqua session
elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])

results = []

success = 0
failure = 0
current = 0

for row in ids:

    assetId = row
    current += 1
    print(current)

    resultRow = {}
Пример #18
0
def test_elq_no_pwd():
    """ password required """
    Eloqua(company='test', username='******')
logging.basicConfig(filename=os.environ['OPENSHIFT_LOG_DIR'] +
                    '/Contacts.LeadType_getOfferDetails.log',
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

#### setup Salesforce session

sf = Salesforce(username=os.environ['SALESFORCE_USER'],
                password=os.environ['SALESFORCE_PASSWORD'],
                security_token=os.environ['SALESFORCE_TOKEN'])
logging.info("Salesforce session established")

#### Setup Eloqua session

elq = Eloqua(username=os.environ['ELOQUA_USER'],
             password=os.environ['ELOQUA_PASSWORD'],
             company=os.environ['ELOQUA_COMPANY'])
logging.info("Eloqua session established")

#### Setup vars for creating import/export defs

cdoID = elq.GetCdoId(cdoName='Contacts.LeadType')

myFilter = "'{{CustomObject[1269].Field[23345]}}' = 'GET CAMPAIGN DETAILS'"

findFields = [
    "Contacts.LeadType.MostRecent_Offer_PrimarySolution",
    "Contacts.LeadType.MostRecent_Offer_ProductService",
    "Contacts.LeadType.MostRecent_OfferID", "Contacts.LeadType.S_Data_Status",
    "Contacts.LeadType.S_Last_Error", "Email_Address1"
]
Пример #20
0
import re  ## comes standard with python and includes tools for working with strings
import zipcode  ## Includes functions for validating and working with zipcodes. Handy, right?
from pyeloqua import Eloqua  ## for working with Eloqua's Bulk API

print("try to connect...")
elq = Eloqua(company='mycompany',
             username='******',
             password='******')

print("Eloqua Site ID: " + elq.siteId)  ## outputs your Eloqua instance Site ID
print("Eloqua User: "******"Connected!")

print("Create a field statement for the API")
findTheseFields = ['Email Address', 'Zip or Postal Code'
                   ]  ## a list of fields we want from Eloqua
myFields = elq.CreateFieldStatement(entity='contacts',
                                    fields=findTheseFields,
                                    useInternalName=False)
print(myFields)

print("Create a filter for the API")
myFilter = elq.FilterExists(name='My Zipcodes to clean',
                            existsType='ContactSegment')
print(myFilter)

print("Tell the API what we want to export")
myExport = elq.CreateDef(entity='contacts',
                         defType='exports',
                         fields=myFields,
                         filters=myFilter,