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
## 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',
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'
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='******')
## 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()
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/'
def test_elq_no_user(): """ username required """ Eloqua(company='test', password='******')
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/'
def test_elq_test(): """ test mode for authentication """ elq = Eloqua(test=True) assert elq.auth == ('test\\test', 'test')
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'
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')
## 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'])
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 = {}
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" ]
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,