From 1c499adb1d8adc00dfd8d5ed65f6a60e7e08812b Mon Sep 17 00:00:00 2001 From: Anzar Afaq Date: Fri, 24 Jan 2014 21:41:20 -0800 Subject: [PATCH] Code reformat, removed unnecessary checks, tiny fixes --- ebay/__init__.py | 7 +- ebay/best_match.py | 287 +++++++++++++++-------------- ebay/client_alerts.py | 58 +++--- ebay/feedback.py | 52 ++++-- ebay/finding.py | 282 +++++++++++++--------------- ebay/merchandising.py | 71 ++++--- ebay/platform_notifications.py | 13 +- ebay/product.py | 260 +++++++++++++------------- ebay/research.py | 3 +- ebay/resolution_case_management.py | 69 ++++--- ebay/shopping.py | 201 +++++++++++--------- ebay/trading.py | 68 +++---- ebay/utils.py | 73 +++++--- tests/test_best_match.py | 76 ++++---- tests/test_client_alerts.py | 24 +-- tests/test_feedback.py | 28 +-- tests/test_finding.py | 86 +++++---- tests/test_merchandising.py | 29 ++- 18 files changed, 875 insertions(+), 812 deletions(-) diff --git a/ebay/__init__.py b/ebay/__init__.py index 49bb520..1d8fc12 100644 --- a/ebay/__init__.py +++ b/ebay/__init__.py @@ -1,4 +1,6 @@ -def configure(*args, **kwargs): pass +def configure(*args, **kwargs): + pass + class EBay(object): """An object that helps to wrap around raw api calls. @@ -15,7 +17,8 @@ class EBay(object): >>> ebay.finding.getVersion() # calls finding.py/getVersion with # appropriate parameters. """ + def __init__(self, dev=None, app=None, cert=None, config="config.ini"): ## read the config file and load the dev, app, cert variables. - ## override the variables from the paramters passed in. + ## override the variables from the parameters passed in. pass diff --git a/ebay/best_match.py b/ebay/best_match.py index 997158a..05c2cf6 100644 --- a/ebay/best_match.py +++ b/ebay/best_match.py @@ -4,142 +4,153 @@ from utils import get_config_store -def findBestMatchItemDetailsAcrossStores(keywords, \ - siteResultsPerPage, \ - categoryId=None, \ - entriesPerPage=None, \ - ignoreFeatured=None, \ - itemFilter=None, \ - outputSelector=None, \ - postSearchItemFilter=None, \ - postSearchSellerFilter=None, \ - encoding="JSON"): - root = etree.Element("findBestMatchItemDetailsAcrossStoresRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") - root = get_generic_tags(root=root, \ - keywords=keywords, \ - siteResultsPerPage=siteResultsPerPage, \ - categoryId=categoryId, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter) +def findBestMatchItemDetailsAcrossStores( + keywords, + siteResultsPerPage, + categoryId=None, + entriesPerPage=None, + ignoreFeatured=None, + itemFilter=None, + outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None, + encoding="JSON"): + root = etree.Element("findBestMatchItemDetailsAcrossStoresRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = get_generic_tags( + root=root, + keywords=keywords, + siteResultsPerPage=siteResultsPerPage, + categoryId=categoryId, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter) request = etree.tostring(root, pretty_print=True) return get_response(findBestMatchItemDetailsAcrossStores.__name__, request, encoding) - -def findBestMatchItemDetailsAdvanced(keywords, \ - siteResultsPerPage, \ - categoryId=None, \ - entriesPerPage=None, \ - ignoreFeatured=None, \ - itemFilter=None, \ - outputSelector=None, \ - postSearchItemFilter=None, \ - postSearchSellerFilter=None, \ - encoding="JSON"): - root = etree.Element("findBestMatchItemDetailsAdvancedRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") - root = get_generic_tags(root=root, \ - keywords=keywords, \ - siteResultsPerPage=siteResultsPerPage, \ - categoryId=categoryId, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter) +def findBestMatchItemDetailsAdvanced( + keywords, + siteResultsPerPage, + categoryId=None, + entriesPerPage=None, + ignoreFeatured=None, + itemFilter=None, + outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None, + encoding="JSON"): + root = etree.Element("findBestMatchItemDetailsAdvancedRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = get_generic_tags( + root=root, + keywords=keywords, + siteResultsPerPage=siteResultsPerPage, + categoryId=categoryId, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter) request = etree.tostring(root, pretty_print=True) return get_response(findBestMatchItemDetailsAdvanced.__name__, request, encoding) - -def findBestMatchItemDetailsByCategory(categoryId, \ - siteResultsPerPage, \ - entriesPerPage=None, \ - ignoreFeatured=None, \ - itemFilter=None, \ - outputSelector=None, \ - postSearchItemFilter=None, \ - postSearchSellerFilter=None, \ - encoding="JSON"): - root = etree.Element("findBestMatchItemDetailsByCategoryRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") - root = get_generic_tags(root=root, \ - categoryId=categoryId, \ - siteResultsPerPage=siteResultsPerPage, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter) +def findBestMatchItemDetailsByCategory( + categoryId, + siteResultsPerPage, + entriesPerPage=None, + ignoreFeatured=None, + itemFilter=None, + outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None, + encoding="JSON"): + root = etree.Element("findBestMatchItemDetailsByCategoryRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = get_generic_tags( + root=root, + categoryId=categoryId, + siteResultsPerPage=siteResultsPerPage, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter) request = etree.tostring(root, pretty_print=True) return get_response(findBestMatchItemDetailsByCategory.__name__, request, encoding) - -def findBestMatchItemDetailsByKeywords(keywords, \ - siteResultsPerPage, \ - entriesPerPage=None, \ - ignoreFeatured=None, \ - itemFilter=None, \ - outputSelector=None, \ - postSearchItemFilter=None, \ - postSearchSellerFilter=None, \ - encoding="JSON"): +def findBestMatchItemDetailsByKeywords( + keywords, + siteResultsPerPage, + entriesPerPage=None, + ignoreFeatured=None, + itemFilter=None, + outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None, + encoding="JSON"): root = etree.Element("root", xmlns="http://www.ebay.com/marketplace/search/v1/services") - root = get_generic_tags(root=root, \ - keywords=keywords, \ - siteResultsPerPage=siteResultsPerPage, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchItemFilter) + root = get_generic_tags( + root=root, + keywords=keywords, + siteResultsPerPage=siteResultsPerPage, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchItemFilter) request = etree.tostring(root, pretty_print=True) return get_response(findBestMatchItemDetailsByKeywords.__name__, request, encoding) - -def findBestMatchItemDetailsByProduct(productId, \ - siteResultsPerPage, \ - entriesPerPage=None, \ - ignoreFeatured=None, \ - itemFilter=None, \ - outputSelector=None, \ - postSearchItemFilter=None, \ - postSearchSellerFilter=None, \ - encoding="JSON"): - root = etree.Element("findBestMatchItemDetailsByProductRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") - root = get_generic_tags(root=root, \ - productId=productId, \ - siteResultsPerPage=siteResultsPerPage, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchItemFilter) +def findBestMatchItemDetailsByProduct( + productId, + siteResultsPerPage, + entriesPerPage=None, + ignoreFeatured=None, + itemFilter=None, + outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None, + encoding="JSON"): + root = etree.Element("findBestMatchItemDetailsByProductRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = get_generic_tags( + root=root, + productId=productId, + siteResultsPerPage=siteResultsPerPage, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchItemFilter) request = etree.tostring(root, pretty_print=True) return get_response(findBestMatchItemDetailsByProduct.__name__, request, encoding) - -def findBestMatchItemDetailsBySeller(categoryId, \ - sellerUserName, \ - ignoreFeatured=None, \ - itemFilter=None, \ - paginationInput=None, \ - encoding="JSON"): - root = etree.Element("findBestMatchItemDetailsBySellerRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findBestMatchItemDetailsBySeller( + categoryId, + sellerUserName, + ignoreFeatured=None, + itemFilter=None, + paginationInput=None, + encoding="JSON"): + root = etree.Element("findBestMatchItemDetailsBySellerRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") categoryId_elem = etree.SubElement(root, "categoryId") categoryId_elem.text = categoryId @@ -151,18 +162,22 @@ def findBestMatchItemDetailsBySeller(categoryId, \ ignoreFeatured_elem = etree.SubElement(root, "ignoreFeatured") ignoreFeatured_elem.text = ignoreFeatured - #itemFilter is a List of dicts: [{"paramName" : "PriceMin", "paramValue" : "50", "name" : "Currency", "value" : "USD"}] + # itemFilter is a List of dicts: [{ + # "paramName" : "PriceMin", + # "paramValue" : "50", + # "name" : "Currency", + # "value" : "USD"}] - if itemFilter: - for item_filter in itemFilter: - if len(item_filter)>0: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item_filter.keys(): - item_elem = etree.SubElement(itemFilter_elem, key) - item_elem.text = item_filter[key] + + for item_filter in itemFilter: + if len(item_filter) > 0: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item_filter.keys(): + item_elem = etree.SubElement(itemFilter_elem, key) + item_elem.text = item_filter[key] # paginationInput is a dict: {entriesPerPage:5, pageNumber:10} - if paginationInput and len(paginationInput)>0: + if paginationInput and len(paginationInput) > 0: paginationInput_elem = etree.SubElement(root, "paginationInput") for key in paginationInput.keys(): input_values_elem = etree.SubElement(paginationInput_elem, key) @@ -180,16 +195,21 @@ def findBestMatchItemDetails(encoding="JSON"): 23484479761 """ - return get_response(findBestMatchItemDetails.__name__,request, encoding) + return get_response(findBestMatchItemDetails.__name__, request, encoding) + def getVersion(): root = etree.Element("getVersionRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") - request=etree.tostring(root, pretty_print=True) + request = etree.tostring(root, pretty_print=True) return get_response(getVersion.__name__, request, encoding="JSON") -def get_generic_tags(root, siteResultsPerPage, productId=None, keywords=None, categoryId=None, entriesPerPage=None, ignoreFeatured=None, itemFilter=None, outputSelector=None, postSearchItemFilter=None, postSearchSellerFilter=None): +def get_generic_tags(root, siteResultsPerPage, productId=None, + keywords=None, categoryId=None, entriesPerPage=None, + ignoreFeatured=None, itemFilter=None, outputSelector=None, + postSearchItemFilter=None, + postSearchSellerFilter=None): siteResultsPerPage_elem = etree.SubElement(root, "siteResultsPerPage") siteResultsPerPage_elem.text = siteResultsPerPage @@ -214,30 +234,28 @@ def get_generic_tags(root, siteResultsPerPage, productId=None, keywords=None, ca productId_elem.text = productId #itemFilter is a List of dicts: [{paramName=PriceMin, paramValue=50, name=Currency, value=USD}] - if itemFilter: - for item_filter in itemFilter: - if len(item_filter)>0: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item_filter.keys(): - item_elem = etree.SubElement(itemFilter_elem, key) - item_elem.text = item_filter[key] + for item_filter in itemFilter: + if len(item_filter) > 0: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item_filter.keys(): + item_elem = etree.SubElement(itemFilter_elem, key) + item_elem.text = item_filter[key] #outputSelector is a List - if outputSelector and len(outputSelector)>0: + if outputSelector and len(outputSelector) > 0: for output_selector in outputSelector: outputSelector_elem = etree.SubElement(root, "outputSelector") outputSelector_elem.text = output_selector - # postSearchItemFilter is a List - if postSearchItemFilter and len(postSearchItemFilter)>0: + if postSearchItemFilter and len(postSearchItemFilter) > 0: postSearchItemFilter_elem = etree.SubElement(root, "postSearchItemFilter") for item_filter in postSearchItemFilter: itemId_elem = etree.SubElement(postSearchItemFilter_elem, "itemId") itemId_elem.text = item_filter # postSearchSellerFilter is a List - if postSearchSellerFilter and len(postSearchSellerFilter)>0: + if postSearchSellerFilter and len(postSearchSellerFilter) > 0: postSearchSellerFilter_elem = etree.SubElement(root, "postSearchSellerFilter") for seller in postSearchSellerFilter: seller_elem = etree.SubElement(postSearchSellerFilter_elem, "sellerUserName") @@ -259,5 +277,4 @@ def get_response(operation_name, data, encoding, **headers): req = urllib2.Request(endpoint, data, http_headers) res = urllib2.urlopen(req) - data = res.read() - return data + return res.read() diff --git a/ebay/client_alerts.py b/ebay/client_alerts.py index 655a140..46f05a5 100644 --- a/ebay/client_alerts.py +++ b/ebay/client_alerts.py @@ -2,57 +2,67 @@ from utils import get_config_store -def GetPublicAlerts(ChannelID, ChannelType, EventType, MessageID=None, LastRequestTime=None, encoding="JSON"): - user_param={'callname' : GetPublicAlerts.__name__, - 'ChannelDescriptor(0).ChannelID' : ChannelID, - 'ChannelDescriptor(0).ChannelType' : ChannelType, - 'ChannelDescriptor(0).EventType' : EventType, - 'responseencoding' : encoding} +def GetPublicAlerts(ChannelID, ChannelType, EventType, + MessageID=None, LastRequestTime=None, + encoding="JSON"): + user_param = { + 'callname': GetPublicAlerts.__name__, + 'ChannelDescriptor(0).ChannelID': ChannelID, + 'ChannelDescriptor(0).ChannelType': ChannelType, + 'ChannelDescriptor(0).EventType': EventType, + 'responseencoding': encoding} if MessageID: - user_param.update({"MessageID" : MessageID}) + user_param.update({"MessageID": MessageID}) + if LastRequestTime: - user_param.update({"LastRequestTime" : LastRequestTime}) + user_param.update({"LastRequestTime": LastRequestTime}) response = get_response(user_param) return response.content + def GetUserAlerts(SessionID, SessionData, MessageID=None, encoding="JSON"): - user_param={'callname' : GetUserAlerts.__name__, - 'SessionData' : SessionData, - 'SessionID' : SessionID, - 'responseencoding' : encoding} + user_param = { + 'callname': GetUserAlerts.__name__, + 'SessionData': SessionData, + 'SessionID': SessionID, + 'responseencoding': encoding} if MessageID: - user_param.update({"MessageID" : MessageID}) + user_param.update({"MessageID": MessageID}) response = get_response(user_param) return response.content + def Login(ClientAlertsAuthToken, MessageID=None, encoding="JSON"): - user_param={'callname' : Login.__name__, - 'ClientAlertsAuthToken' : ClientAlertsAuthToken, - 'responseencoding' : encoding} + user_param = { + 'callname': Login.__name__, + 'ClientAlertsAuthToken': ClientAlertsAuthToken, + 'responseencoding': encoding} if MessageID: - user_param.update({"MessageID" : MessageID}) + user_param.update({"MessageID": MessageID}) response = get_response(user_param) return response.content def Logout(SessionID, SessionData, MessageID=None, encoding="JSON"): - user_param={'callname' : Logout.__name__, - 'SessionData' : SessionData, - 'SessionID' : SessionID, - 'responseencoding' : encoding} + user_param = { + 'callname': Logout.__name__, + 'SessionData': SessionData, + 'SessionID': SessionID, + 'responseencoding': encoding} if MessageID: - user_param.update({"MessageID" : MessageID}) + user_param.update({"MessageID": MessageID}) response = get_response(user_param) return response.content + def get_response(user_params): config = get_config_store() app_id = config.get("keys", "app_name") @@ -60,7 +70,7 @@ def get_response(user_params): version = config.get("call", "compatibility_level") endpoint = config.get("endpoints", "client_alerts") - d=dict(appid = app_id, siteid = site_id, version = version) + d = dict(appid=app_id, siteid=site_id, version=version) d.update(user_params) - return requests.get(endpoint, params=d) + return requests.get(endpoint, params=d) \ No newline at end of file diff --git a/ebay/feedback.py b/ebay/feedback.py index cfd9f01..be4794a 100644 --- a/ebay/feedback.py +++ b/ebay/feedback.py @@ -4,8 +4,12 @@ from utils import get_config_store -def createDSRSummaryByCategory(categoryId , dateRangeFrom, dateRangeTo, dateRangeEventType=None, encoding="JSON"): - root = etree.Element("createDSRSummaryByCategoryRequest", xmlns="http://www.ebay.com/marketplace/services") +def createDSRSummaryByCategory( + categoryId, dateRangeFrom, + dateRangeTo, dateRangeEventType=None, + encoding="JSON"): + root = etree.Element("createDSRSummaryByCategoryRequest", + xmlns="http://www.ebay.com/marketplace/services") #categoryId is a List for cat_id in categoryId: @@ -27,8 +31,11 @@ def createDSRSummaryByCategory(categoryId , dateRangeFrom, dateRangeTo, dateRang return get_response(createDSRSummaryByCategory.__name__, request, encoding) -def createDSRSummaryByPeriod(dateRangeFrom, dateRangeTo, dateRangeEventType=None, encoding="JSON"): - root = etree.Element("createDSRSummaryByPeriodRequest", xmlns="http://www.ebay.com/marketplace/services") +def createDSRSummaryByPeriod( + dateRangeFrom, dateRangeTo, + dateRangeEventType=None, encoding="JSON"): + root = etree.Element("createDSRSummaryByPeriodRequest", + xmlns="http://www.ebay.com/marketplace/services") dateRange_elem = etree.SubElement(root, "dateRange") dateRangeFrom_elem = etree.SubElement(dateRange_elem, "dateFrom") @@ -44,8 +51,14 @@ def createDSRSummaryByPeriod(dateRangeFrom, dateRangeTo, dateRangeEventType=None request = etree.tostring(root, pretty_print=True) return get_response(createDSRSummaryByPeriod.__name__, request, encoding) -def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventType=None, shippingCostType=None, shippingDestinationType=None, shippingService=None, shipToCountry=None, encoding="JSON"): - root = etree.Element("createDSRSummaryByShippingDetailRequest", xmlns="http://www.ebay.com/marketplace/services") + +def createDSRSummaryByShippingDetail( + dateRangeFrom, dateRangeTo, + dateRangeEventType=None, shippingCostType=None, + shippingDestinationType=None, shippingService=None, + shipToCountry=None, encoding="JSON"): + root = etree.Element("createDSRSummaryByShippingDetailRequest", + xmlns="http://www.ebay.com/marketplace/services") dateRange_elem = etree.SubElement(root, "dateRange") dateRangeFrom_elem = etree.SubElement(dateRange_elem, "dateFrom") @@ -67,16 +80,15 @@ def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventT shippingDestinationType_elem.text = shippingDestinationType #shippingService is a List - if shippingService and len(shippingService)>0: + if shippingService and len(shippingService) > 0: for service in shippingService: shippingService_elem = etree.SubElement(root, "shippingService") shippingService_elem.text = shippingService #shipToCountry is a List - if shipToCountry: - for country in shipToCountry: - shipToCountry_elem = etree.SubElement(root, "shipToCountry") - shipToCountry_elem.text = shipToCountry + for country in shipToCountry: + shipToCountry_elem = etree.SubElement(root, "shipToCountry") + shipToCountry_elem.text = shipToCountry request = etree.tostring(root, pretty_print=True) return get_response(createDSRSummaryByShippingDetail.__name__, request, encoding) @@ -85,21 +97,23 @@ def createDSRSummaryByShippingDetail(dateRangeFrom, dateRangeTo, dateRangeEventT #making transactionId required here, but it's not in the eBay API. Will fix it later #transactionId is a list of dicts: [{itemId:123, transactionId:72}, {itemId:33, transactionId:21}] def createDSRSummaryByTransaction(transactionKey, encoding="JSON"): - root = etree.Element("createDSRSummaryByTransactionRequest", xmlns="http://www.ebay.com/marketplace/services") + root = etree.Element("createDSRSummaryByTransactionRequest", + xmlns="http://www.ebay.com/marketplace/services") for t in transactionKey: transactionKey_elem = etree.SubElement(root, "transactionKey") for key in t.keys(): itemId_elem = etree.SubElement(transactionKey_elem, key) - itemId_elem.text = t[key] + itemId_elem.text = t[key] request = etree.tostring(root, pretty_print=True) return get_response(createDSRSummaryByTransaction.__name__, request, encoding) def getDSRSummary(jobId, encoding="JSON"): - root = etree.Element("getDSRSummaryRequest", xmlns="http://www.ebay.com/marketplace/services") + root = etree.Element("getDSRSummaryRequest", + xmlns="http://www.ebay.com/marketplace/services") jobId_elem = etree.SubElement(root, "jobId") jobId_elem.text = jobId @@ -113,13 +127,13 @@ def get_response(operation_name, data, encoding, **headers): access_token = config.get("auth", "token") endpoint = config.get("endpoints", "feedback") - http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name, - "X-EBAY-SOA-SECURITY-TOKEN": access_token, - "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} + http_headers = { + "X-EBAY-SOA-OPERATION-NAME": operation_name, + "X-EBAY-SOA-SECURITY-TOKEN": access_token, + "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} http_headers.update(headers) req = urllib2.Request(endpoint, data, http_headers) res = urllib2.urlopen(req) - data = res.read() - return data + return res.read() diff --git a/ebay/finding.py b/ebay/finding.py index 5be4b9b..c2269d2 100644 --- a/ebay/finding.py +++ b/ebay/finding.py @@ -5,7 +5,8 @@ def getSearchKeywordsRecommendation(keywords, encoding="JSON"): - root = etree.Element("getSearchKeywordsRecommendation", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("getSearchKeywordsRecommendation", + xmlns="http://www.ebay.com/marketplace/search/v1/services") keywords_elem = etree.SubElement(root, "keywords") keywords_elem.text = keywords @@ -13,17 +14,14 @@ def getSearchKeywordsRecommendation(keywords, encoding="JSON"): return get_response(getSearchKeywordsRecommendation.__name__, request, encoding) -def findItemsByKeywords(keywords, \ - affiliate=None, \ - buyerPostalCode=None, \ - paginationInput=None, \ - sortOrder=None, \ - aspectFilter=None, \ - domainFilter=None, \ - itemFilter=None, \ - outputSelector=None, \ - encoding="JSON"): - root = etree.Element("findItemsByKeywords", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findItemsByKeywords( + keywords, affiliate=None, + buyerPostalCode=None, paginationInput=None, + sortOrder=None, aspectFilter=None, + domainFilter=None, itemFilter=None, + outputSelector=None, encoding="JSON"): + root = etree.Element("findItemsByKeywords", + xmlns="http://www.ebay.com/marketplace/search/v1/services") keywords_elem = etree.SubElement(root, "keywords") keywords_elem.text = keywords @@ -60,42 +58,36 @@ def findItemsByKeywords(keywords, \ sortOrder_elem.text = sortOrder #aspectFilter is a list of dicts - if aspectFilter: - for item in aspectFilter: - aspectFilter_elem = etree.SubElement(root, "aspectFilter") - for key in item: - key_elem = etree.SubElement(aspectFilter_elem, key) - key_elem.text = item[key] + for item in aspectFilter: + aspectFilter_elem = etree.SubElement(root, "aspectFilter") + for key in item: + key_elem = etree.SubElement(aspectFilter_elem, key) + key_elem.text = item[key] #domainFilter is a list of dicts - if domainFilter: - for item in domainFilter: - domainFilter_elem = etree.SubElement(root, "domainFilter") - for key in item: - key_elem = etree.SubElement(domainFilter_elem, key) - key_elem.text = item[key] + for item in domainFilter: + domainFilter_elem = etree.SubElement(root, "domainFilter") + for key in item: + key_elem = etree.SubElement(domainFilter_elem, key) + key_elem.text = item[key] #outputSelector is a list - if outputSelector: - for item in outputSelector: - outputSelector_elem = etree.SubElement(root, "outputSelector") - outputSelector_elem.text = item + for item in outputSelector: + outputSelector_elem = etree.SubElement(root, "outputSelector") + outputSelector_elem.text = item request = etree.tostring(root, pretty_print=True) return get_response(findItemsByKeywords.__name__, request, encoding) -def findItemsByCategory(categoryId, \ - affiliate=None, \ - buyerPostalCode=None, \ - sortOrder=None, \ - paginationInput = None, \ - aspectFilter=None, \ - domainFilter=None, \ - itemFilter=None, \ - outputSelector=None, \ - encoding="JSON"): - root = etree.Element("findItemsByCategory", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findItemsByCategory( + categoryId, affiliate=None, + buyerPostalCode=None, sortOrder=None, + paginationInput=None, aspectFilter=None, + domainFilter=None, itemFilter=None, + outputSelector=None, encoding="JSON"): + root = etree.Element("findItemsByCategory", + xmlns="http://www.ebay.com/marketplace/search/v1/services") categoryId_elem = etree.SubElement(root, "categoryId") categoryId_elem.text = categoryId @@ -119,12 +111,11 @@ def findItemsByCategory(categoryId, \ key_elem.text = paginationInput[key] #itenFilter is a list of dicts - if itemFilter: - for item in itemFilter: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item: - key_elem = etree.SubElement(itemFilter_elem, key) - key_elem.text = item[key] + for item in itemFilter: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item: + key_elem = etree.SubElement(itemFilter_elem, key) + key_elem.text = item[key] #sortOrder if sortOrder: @@ -132,43 +123,37 @@ def findItemsByCategory(categoryId, \ sortOrder_elem.text = sortOrder #aspectFilter is a list of dicts - if aspectFilter: - for item in aspectFilter: - aspectFilter_elem = etree.SubElement(root, "aspectFilter") - for key in item: - key_elem = etree.SubElement(aspectFilter_elem, key) - key_elem.text = item[key] + for item in aspectFilter: + aspectFilter_elem = etree.SubElement(root, "aspectFilter") + for key in item: + key_elem = etree.SubElement(aspectFilter_elem, key) + key_elem.text = item[key] #domainFilter is a list of dicts - if domainFilter: - for item in domainFilter: - domainFilter_elem = etree.SubElement(root, "domainFilter") - for key in item: - key_elem = etree.SubElement(domainFilter_elem, key) - key_elem.text = item[key] + for item in domainFilter: + domainFilter_elem = etree.SubElement(root, "domainFilter") + for key in item: + key_elem = etree.SubElement(domainFilter_elem, key) + key_elem.text = item[key] #outputSelector is a list - if outputSelector: - for item in outputSelector: - outputSelector_elem = etree.SubElement(root, "outputSelector") - outputSelector_elem.text = item + for item in outputSelector: + outputSelector_elem = etree.SubElement(root, "outputSelector") + outputSelector_elem.text = item request = etree.tostring(root, pretty_print=True) return get_response(findItemsByCategory.__name__, request, encoding) -def findItemsAdvanced(keywords=None, \ - categoryId=None, \ - affiliate=None, \ - buyerPostalCode=None, \ - paginationInput = None, \ - sortOrder=None, \ - aspectFilter=None, \ - domainFilter=None, \ - itemFilter=None, \ - outputSelector=None, \ - encoding="JSON"): - root = etree.Element("findItemsAdvanced", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findItemsAdvanced( + keywords=None, categoryId=None, + affiliate=None, buyerPostalCode=None, + paginationInput=None, sortOrder=None, + aspectFilter=None, domainFilter=None, + itemFilter=None, outputSelector=None, + encoding="JSON"): + root = etree.Element("findItemsAdvanced", + xmlns="http://www.ebay.com/marketplace/search/v1/services") if keywords: keywords_elem = etree.SubElement(root, "keywords") @@ -197,12 +182,12 @@ def findItemsAdvanced(keywords=None, \ key_elem.text = paginationInput[key] #itenFilter is a list of dicts - if itemFilter: - for item in itemFilter: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item: - key_elem = etree.SubElement(itemFilter_elem, key) - key_elem.text = item[key] + + for item in itemFilter: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item: + key_elem = etree.SubElement(itemFilter_elem, key) + key_elem.text = item[key] #sortOrder if sortOrder: @@ -210,41 +195,36 @@ def findItemsAdvanced(keywords=None, \ sortOrder_elem.text = sortOrder #aspectFilter is a list of dicts - if aspectFilter: - for item in aspectFilter: - aspectFilter_elem = etree.SubElement(root, "aspectFilter") - for key in item: - key_elem = etree.SubElement(aspectFilter_elem, key) - key_elem.text = item[key] + for item in aspectFilter: + aspectFilter_elem = etree.SubElement(root, "aspectFilter") + for key in item: + key_elem = etree.SubElement(aspectFilter_elem, key) + key_elem.text = item[key] #domainFilter is a list of dicts - if domainFilter: - for item in domainFilter: - domainFilter_elem = etree.SubElement(root, "domainFilter") - for key in item: - key_elem = etree.SubElement(domainFilter_elem, key) - key_elem.text = item[key] + for item in domainFilter: + domainFilter_elem = etree.SubElement(root, "domainFilter") + for key in item: + key_elem = etree.SubElement(domainFilter_elem, key) + key_elem.text = item[key] #outputSelector is a list - if outputSelector: - for item in outputSelector: - outputSelector_elem = etree.SubElement(root, "outputSelector") - outputSelector_elem.text = item + for item in outputSelector: + outputSelector_elem = etree.SubElement(root, "outputSelector") + outputSelector_elem.text = item request = etree.tostring(root, pretty_print=True) return get_response(findItemsAdvanced.__name__, request, encoding) -def findItemsByProduct(keywords=None, \ - productId=None, \ - affiliate=None, \ - buyerPostalCode=None, \ - paginationInput=None, \ - sortOrder=None, \ - itemFilter=None, \ - outputSelector=None, \ - encoding="JSON"): - root = etree.Element("findItemsByProduct", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findItemsByProduct( + keywords=None, productId=None, + affiliate=None, buyerPostalCode=None, + paginationInput=None, sortOrder=None, + itemFilter=None, outputSelector=None, + encoding="JSON"): + root = etree.Element("findItemsByProduct", + xmlns="http://www.ebay.com/marketplace/search/v1/services") if keywords: keywords_elem = etree.SubElement(root, "keywords") @@ -273,12 +253,11 @@ def findItemsByProduct(keywords=None, \ key_elem.text = paginationInput[key] #itenFilter is a list of dicts - if itemFilter: - for item in itemFilter: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item: - key_elem = etree.SubElement(itemFilter_elem, key) - key_elem.text = item[key] + for item in itemFilter: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item: + key_elem = etree.SubElement(itemFilter_elem, key) + key_elem.text = item[key] #sortOrder if sortOrder: @@ -286,27 +265,24 @@ def findItemsByProduct(keywords=None, \ sortOrder_elem.text = sortOrder #outputSelector is a list - if outputSelector: - for item in outputSelector: - outputSelector_elem = etree.SubElement(root, "outputSelector") - outputSelector_elem.text = item + for item in outputSelector: + outputSelector_elem = etree.SubElement(root, "outputSelector") + outputSelector_elem.text = item request = etree.tostring(root, pretty_print=True) return get_response(findItemsByProduct.__name__, request, encoding) -def findItemsIneBayStores(keywords=None, \ - storeName=None, \ - affiliate=None, \ - buyerPostalCode=None, \ - paginationInput=None, \ - sortOrder=None, \ - aspectFilter=None, \ - domainFilter=None, \ - itemFilter=None, \ - outputSelector=None, \ - encoding="JSON"): - root = etree.Element("findItemsIneBayStores", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def findItemsIneBayStores( + keywords=None, + storeName=None, affiliate=None, + buyerPostalCode=None, paginationInput=None, + sortOrder=None, aspectFilter=None, + domainFilter=None, itemFilter=None, + outputSelector=None, + encoding="JSON"): + root = etree.Element("findItemsIneBayStores", + xmlns="http://www.ebay.com/marketplace/search/v1/services") if keywords: keywords_elem = etree.SubElement(root, "keywords") @@ -335,12 +311,11 @@ def findItemsIneBayStores(keywords=None, \ key_elem.text = paginationInput[key] #itenFilter is a list of dicts - if itemFilter: - for item in itemFilter: - itemFilter_elem = etree.SubElement(root, "itemFilter") - for key in item: - key_elem = etree.SubElement(itemFilter_elem, key) - key_elem.text = item[key] + for item in itemFilter: + itemFilter_elem = etree.SubElement(root, "itemFilter") + for key in item: + key_elem = etree.SubElement(itemFilter_elem, key) + key_elem.text = item[key] #sortOrder if sortOrder: @@ -348,33 +323,31 @@ def findItemsIneBayStores(keywords=None, \ sortOrder_elem.text = sortOrder #aspectFilter is a list of dicts - if aspectFilter: - for item in aspectFilter: - aspectFilter_elem = etree.SubElement(root, "aspectFilter") - for key in item: - key_elem = etree.SubElement(aspectFilter_elem, key) - key_elem.text = item[key] + for item in aspectFilter: + aspectFilter_elem = etree.SubElement(root, "aspectFilter") + for key in item: + key_elem = etree.SubElement(aspectFilter_elem, key) + key_elem.text = item[key] #domainFilter is a list of dicts - if domainFilter: - for item in domainFilter: - domainFilter_elem = etree.SubElement(root, "domainFilter") - for key in item: - key_elem = etree.SubElement(domainFilter_elem, key) - key_elem.text = item[key] + for item in domainFilter: + domainFilter_elem = etree.SubElement(root, "domainFilter") + for key in item: + key_elem = etree.SubElement(domainFilter_elem, key) + key_elem.text = item[key] #outputSelector is a list - if outputSelector: - for item in outputSelector: - outputSelector_elem = etree.SubElement(root, "outputSelector") - outputSelector_elem.text = item + for item in outputSelector: + outputSelector_elem = etree.SubElement(root, "outputSelector") + outputSelector_elem.text = item request = etree.tostring(root, pretty_print=True) return get_response(findItemsIneBayStores.__name__, request, encoding) def getHistograms(categoryId, encoding="JSON"): - root = etree.Element("getHistograms", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("getHistograms", + xmlns="http://www.ebay.com/marketplace/search/v1/services") categoryId_elem = etree.SubElement(root, "categoryId") categoryId_elem.text = categoryId @@ -389,10 +362,11 @@ def get_response(operation_name, data, encoding, **headers): app_name = config.get("keys", "app_name") endpoint = config.get("endpoints", "finding") - http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name, - "X-EBAY-SOA-SECURITY-APPNAME": app_name, - "X-EBAY-SOA-GLOBAL-ID" : globalId, - "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} + http_headers = { + "X-EBAY-SOA-OPERATION-NAME": operation_name, + "X-EBAY-SOA-SECURITY-APPNAME": app_name, + "X-EBAY-SOA-GLOBAL-ID": globalId, + "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} http_headers.update(headers) diff --git a/ebay/merchandising.py b/ebay/merchandising.py index 2d48e34..02da804 100644 --- a/ebay/merchandising.py +++ b/ebay/merchandising.py @@ -6,7 +6,8 @@ def getDeals(keywords, encoding="JSON"): #not documented in ebay docs. Need to raise a ticket - root = etree.Element("getDealsRequest", xmlns="http://www.ebay.com/marketplace/services") + root = etree.Element("getDealsRequest", + xmlns="http://www.ebay.com/marketplace/services") keywords_elem = etree.SubElement(root, "keywords") keywords_elem.text = keywords @@ -15,8 +16,10 @@ def getDeals(keywords, encoding="JSON"): return get_response(getDeals.__name__, request, encoding) -def getMostWatchedItems(affiliate=None, maxResults=None,categoryId=None, encoding="JSON"): - root = etree.Element("getMostWatchedItemsRequest", xmlns="http://www.ebay.com/marketplace/services") +def getMostWatchedItems(affiliate=None, maxResults=None, + categoryId=None, encoding="JSON"): + root = etree.Element("getMostWatchedItemsRequest", + xmlns="http://www.ebay.com/marketplace/services") #affiliate is dict if affiliate: @@ -33,19 +36,17 @@ def getMostWatchedItems(affiliate=None, maxResults=None,categoryId=None, encodin categoryId_elem = etree.SubElement(root, "categoryId") categoryId_elem.text = categoryId - request = etree.tostring(root, pretty_print=True) return get_response(getMostWatchedItems.__name__, request, encoding) #Takes categoryId or itemId -def getRelatedCategoryItems(affiliate=None, \ - maxResults=None, \ - categoryId=None, \ - itemFilter=None, \ - itemId=None, \ - encoding="JSON"): - root = etree.Element("getRelatedCategoryItemsRequest", xmlns="http://www.ebay.com/marketplace/services") +def getRelatedCategoryItems( + affiliate=None, maxResults=None, + categoryId=None, itemFilter=None, + itemId=None, encoding="JSON"): + root = etree.Element("getRelatedCategoryItemsRequest", + xmlns="http://www.ebay.com/marketplace/services") #affiliate is dict if affiliate: @@ -63,12 +64,12 @@ def getRelatedCategoryItems(affiliate=None, \ categoryId_elem.text = categoryId #itemFilter is list of dicts - if itemFilter and len(itemFilter)>0: + if itemFilter and len(itemFilter) > 0: for item in itemFilter: itemFilter_elem = etree.SubElement(root, "itemFilter") for key in itemFilter.keys(): itemId_elem = etree.SubElement(itemFilter_elem, key) - itemId_elem.text = itemFilter[key] + itemId_elem.text = itemFilter[key] if itemId: itemId_elem = etree.SubElement(root, "itemId") @@ -78,18 +79,15 @@ def getRelatedCategoryItems(affiliate=None, \ return get_response(getRelatedCategoryItems.__name__, request, encoding) -def getSimilarItems(affiliate=None, \ - maxResults=None, \ - categoryId=None, \ - categoryIdExclude=None, \ - endTimeFrom=None, \ - endTimeTo=None, \ - itemFilter=None, \ - itemId=None, \ - listingType=None, \ - maxPrice=None, \ - encoding="JSON"): - root = etree.Element("getSimilarItemsRequest", xmlns="http://www.ebay.com/marketplace/services") +def getSimilarItems( + affiliate=None, maxResults=None, + categoryId=None, categoryIdExclude=None, + endTimeFrom=None, endTimeTo=None, + itemFilter=None, itemId=None, + listingType=None, maxPrice=None, + encoding="JSON"): + root = etree.Element("getSimilarItemsRequest", + xmlns="http://www.ebay.com/marketplace/services") #affiliate is dict if affiliate: @@ -108,10 +106,9 @@ def getSimilarItems(affiliate=None, \ categoryId_elem.text = categoryId #categoryIdExclude is list - if categoryIdExclude: - for cat_id in categoryIdExclude: - categoryIdExclude_elem = etree.SubElement(root, "categoryIdExclude") - categoryIdExclude_elem.text = cat_id + for cat_id in categoryIdExclude: + categoryIdExclude_elem = etree.SubElement(root, "categoryIdExclude") + categoryIdExclude_elem.text = cat_id if endTimeFrom and endTimeTo: endTimeFrom_elem = etree.SubElement(root, "endTimeFrom") @@ -120,12 +117,12 @@ def getSimilarItems(affiliate=None, \ endTimeTo_elem = endTimeTo #itemFilter is list of dicts - if itemFilter and len(itemFilter)>0: + if itemFilter and len(itemFilter) > 0: for item in itemFilter: itemFilter_elem = etree.SubElement(root, "itemFilter") for key in itemFilter.keys(): itemId_elem = etree.SubElement(itemFilter_elem, key) - itemId_elem.text = itemFilter[key] + itemId_elem.text = itemFilter[key] if itemId: itemId_elem = etree.SubElement(root, "itemId") @@ -139,7 +136,6 @@ def getSimilarItems(affiliate=None, \ maxPrice_elem = etree.SubElement(root, "maxPrice") maxPrice_elem.text = maxPrice - request = etree.tostring(root, pretty_print=True) return get_response(getSimilarItems.__name__, request, encoding) @@ -158,7 +154,6 @@ def getTopSellingProducts(affiliate=None, maxResults=None, encoding="JSON"): maxResults_elem = etree.SubElement(root, "maxResults") maxResults_elem.text = maxResults - request = etree.tostring(root, pretty_print=True) return get_response(getTopSellingProducts.__name__, request, encoding) @@ -168,14 +163,14 @@ def get_response(operation_name, data, encoding, **headers): app_name = config.get("keys", "app_name") endpoint = config.get("endpoints", "merchandising") - http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name, - "EBAY-SOA-CONSUMER-ID": app_name, - "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} + http_headers = { + "X-EBAY-SOA-OPERATION-NAME": operation_name, + "EBAY-SOA-CONSUMER-ID": app_name, + "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} http_headers.update(headers) req = urllib2.Request(endpoint, data, http_headers) res = urllib2.urlopen(req) - data = res.read() - return data + return res.read() diff --git a/ebay/platform_notifications.py b/ebay/platform_notifications.py index 4fb4e85..7563adb 100644 --- a/ebay/platform_notifications.py +++ b/ebay/platform_notifications.py @@ -1,3 +1,10 @@ -def SetNotificationPreferences(): pass -def GetNotificationPreferences(): pass -def GetNotificationsUsage(): pass \ No newline at end of file +def SetNotificationPreferences(): + pass + + +def GetNotificationPreferences(): + pass + + +def GetNotificationsUsage(): + pass \ No newline at end of file diff --git a/ebay/product.py b/ebay/product.py index fb76433..80f6088 100644 --- a/ebay/product.py +++ b/ebay/product.py @@ -1,25 +1,22 @@ import urllib2 from lxml import etree -from utils import (get_config_store, Specification, CompatibilityPropertyFilter, - Value, SortOrder) +from utils import (get_config_store ) -def findCompatibilitiesBySpecification(specification, \ - categoryId, \ - compatibilityPropertyFilter=None, \ - dataSet=None, \ - datasetPropertyName=None, \ - exactMatch=None, \ - paginationInput=None, \ - sortOrder=None, \ - encoding="JSON"): - root = etree.Element("findCompatibilitiesBySpecificationRequest", xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") +def findCompatibilitiesBySpecification( + specification, categoryId, + compatibilityPropertyFilter=None, dataSet=None, + datasetPropertyName=None, exactMatch=None, + paginationInput=None, sortOrder=None, + encoding="JSON"): + root = etree.Element("findCompatibilitiesBySpecificationRequest", + xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") #specification is an array of objects in Utils.py for spec in specification: specification_elem = etree.SubElement(root, "specification") - propertyName_elem = etree.SubElement(specification_elem,"propertyName") + propertyName_elem = etree.SubElement(specification_elem, "propertyName") propertyName_elem.text = spec.propertyName for v in spec.values: @@ -40,116 +37,105 @@ def findCompatibilitiesBySpecification(specification, \ subValue_elem.text = v.url #compatibilityPropertyFilter is an array of objects in Utils.py - if compatibilityPropertyFilter: - for cp_filter in compatibilityPropertyFilter: - compatibilityPropertyFilter_elem = etree.SubElement(root, "compatibilityPropertyFilter") - propertyName_elem = etree.SubElement(compatibilityPropertyFilter_elem,"propertyName") - propertyName_elem.text = cp_filter.propertyName - - for v in cp_filter.values: - value_elem = etree.SubElement(compatibilityPropertyFilter_elem, "value") - if v.number: - number_elem = etree.SubElement(value_elem, "number") - subValue_elem = etree.SubElement(number_elem, "value") - subValue_elem.text = v.number - - if v.text: - text_elem = etree.SubElement(value_elem, "text") - subValue_elem = etree.SubElement(text_elem, "value") - subValue_elem.text = v.text - - if v.url: - url_elem = etree.SubElement(value_elem, "URL") - subValue_elem = etree.SubElement(url_elem, "value") - subValue_elem.text = v.url + for cp_filter in compatibilityPropertyFilter: + compatibilityPropertyFilter_elem = etree.SubElement(root, "compatibilityPropertyFilter") + propertyName_elem = etree.SubElement(compatibilityPropertyFilter_elem, "propertyName") + propertyName_elem.text = cp_filter.propertyName + for v in cp_filter.values: + value_elem = etree.SubElement(compatibilityPropertyFilter_elem, "value") + if v.number: + number_elem = etree.SubElement(value_elem, "number") + subValue_elem = etree.SubElement(number_elem, "value") + subValue_elem.text = v.number + + if v.text: + text_elem = etree.SubElement(value_elem, "text") + subValue_elem = etree.SubElement(text_elem, "value") + subValue_elem.text = v.text + + if v.url: + url_elem = etree.SubElement(value_elem, "URL") + subValue_elem = etree.SubElement(url_elem, "value") + subValue_elem.text = v.url categoryId_elem = etree.SubElement(root, "categoryId") categoryId_elem.text = categoryId #dataSet is a List - if dataSet: - for ds in dataSet: - ds_elem = etree.SubElement(root, "dataSet") - ds_elem.text = ds + for ds in dataSet: + ds_elem = etree.SubElement(root, "dataSet") + ds_elem.text = ds #datasetPropertyName is a List - if datasetPropertyName: - for dpn in datasetPropertyName: - dpn_elem = etree.SubElement(root, "datasetPropertyName") - dpn_elem.text = dpn + for dpn in datasetPropertyName: + dpn_elem = etree.SubElement(root, "datasetPropertyName") + dpn_elem.text = dpn if exactMatch: exactMatch_elem = etree.SubElement(root, "exactMatch") exactMatch_elem.text = exactMatch #paginationInput is Dict - if paginationInput: - for key in paginationInput.keys(): - key_elem = etree.SubElement(root, key) - key_elem.text = paginationInput[key] + for key in paginationInput: + key_elem = etree.SubElement(root, key) + key_elem.text = paginationInput[key] #Really weirdly written API by eBay, sortOrder is used two times, confusing naming - if sortOrder: - for so in sortOrder: - sortOrder_elem = etree.SubElement(root, "sortOrder") - sortPriority_elem = etree.SubElement(sortOrder_elem,"sortPriority") - sortPriority_elem.text = so.sortPriority - - subSortOrder_elem = etree.SubElement(sortOrder_elem, "sortOrder") - order_elem = etree.SubElement(subSortOrder_elem, "order") - order_elem.text = so.order - propertyName_elem = etree.SubElement(subSortOrder_elem, "propertyName") - propertyName_elem.text = so.propertyName - - - request=etree.tostring(root, pretty_print=True) + for so in sortOrder: + sortOrder_elem = etree.SubElement(root, "sortOrder") + sortPriority_elem = etree.SubElement(sortOrder_elem, "sortPriority") + sortPriority_elem.text = so.sortPriority + + subSortOrder_elem = etree.SubElement(sortOrder_elem, "sortOrder") + order_elem = etree.SubElement(subSortOrder_elem, "order") + order_elem.text = so.order + propertyName_elem = etree.SubElement(subSortOrder_elem, "propertyName") + propertyName_elem.text = so.propertyName + + request = etree.tostring(root, pretty_print=True) print request return get_response(findCompatibilitiesBySpecification.__name__, request, encoding) -def getProductCompatibilities(datasetPropertyName, \ - productIdentifier, \ - applicationPropertyFilter=None, \ - dataset=None, \ - disabledProductFilter=None, \ - paginationInput=None, \ - sortOrder=None, \ - encoding="JSON"): - root = etree.Element("findProductsByCompatibilityRequest", xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") +def getProductCompatibilities( + datasetPropertyName, productIdentifier, + applicationPropertyFilter=None, dataset=None, + disabledProductFilter=None, paginationInput=None, + sortOrder=None, encoding="JSON"): + root = etree.Element("findProductsByCompatibilityRequest", + xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") #datasetPropertyName is a List - if datasetPropertyName: - for dpn in datasetPropertyName: - dpn_elem = etree.SubElement(root, "datasetPropertyName") - dpn_elem.text = dpn + for dpn in datasetPropertyName: + dpn_elem = etree.SubElement(root, "datasetPropertyName") + dpn_elem.text = dpn #compatibilityPropertyFilter is an object in Utils.py - if compatibilityPropertyFilter: - for cp_filter in compatibilityPropertyFilter: - compatibilityPropertyFilter_elem = etree.SubElement(root, "compatibilityPropertyFilter") - propertyName_elem = etree.SubElement(compatibilityPropertyFilter_elem,"propertyName") - propertyName_elem.text = cp_filter.propertyName - - for v in cp_filter.values: - value_elem = etree.SubElement(compatibilityPropertyFilter_elem, "value") - if v.number: - number_elem = etree.SubElement(value_elem, "number") - number_elem.text = v.number - - if v.text: - text_elem = etree.SubElement(value_elem, "text") - text_elem.text = v.text - - if v.url: - url_elem = etree.SubElement(value_elem, "URL") - url_elem.text = v.url + #TODO: compatibilityPropertyFilter is MISSING ??? + for cp_filter in compatibilityPropertyFilter: + compatibilityPropertyFilter_elem = etree.SubElement(root, "compatibilityPropertyFilter") + propertyName_elem = etree.SubElement(compatibilityPropertyFilter_elem, "propertyName") + propertyName_elem.text = cp_filter.propertyName + + for v in cp_filter.values: + value_elem = etree.SubElement(compatibilityPropertyFilter_elem, "value") + if v.number: + number_elem = etree.SubElement(value_elem, "number") + number_elem.text = v.number + + if v.text: + text_elem = etree.SubElement(value_elem, "text") + text_elem.text = v.text + + if v.url: + url_elem = etree.SubElement(value_elem, "URL") + url_elem.text = v.url #dataSet is a List - if dataSet: - for ds in dataSet: - ds_elem = etree.SubElement(root, "dataSet") - ds_elem.text = ds + for ds in dataSet: + ds_elem = etree.SubElement(root, "dataSet") + ds_elem.text = ds #disabledProductFilter is dict if disabledProductFilter: @@ -159,10 +145,9 @@ def getProductCompatibilities(datasetPropertyName, \ key_elem.text = disabledProductFilter[key] #paginationInput is Dict - if paginationInput: - for key in paginationInput.keys(): - key_elem = etree.SubElement(root, key) - key_elem.text = paginationInput[key] + for key in paginationInput: + key_elem = etree.SubElement(root, key) + key_elem.text = paginationInput[key] #productIdentifier is dict productIdentifier_elem = etree.SubElement(root, "productIdentifier") @@ -171,52 +156,55 @@ def getProductCompatibilities(datasetPropertyName, \ key_elem.text = productIdentifier[key] #Really weirdly written API by eBay, sortOrder is used two times, confusing naming - if sortOrder: - for so in sortOrder: - sortOrder_elem = etree.SubElement(root, "sortOrder") - sortPriority_elem = etree.SubElement(sortOrder_elem,"sortPriority") - sortPriority_elem.text = so.sortPriority - - subSortOrder_elem = etree.SubElement(sortOrder_elem, "sortOrder") - order_elem = etree.SubElement(subSortOrder_elem, "order") - order_elem.text = so.order - propertyName_elem = etree.SubElement(subSortOrder_elem, "propertyName") - propertyName_elem.text = so.propertyName - - request=etree.tostring(root, pretty_print=True) + for so in sortOrder: + sortOrder_elem = etree.SubElement(root, "sortOrder") + sortPriority_elem = etree.SubElement(sortOrder_elem, "sortPriority") + sortPriority_elem.text = so.sortPriority + + subSortOrder_elem = etree.SubElement(sortOrder_elem, "sortOrder") + order_elem = etree.SubElement(subSortOrder_elem, "order") + order_elem.text = so.order + propertyName_elem = etree.SubElement(subSortOrder_elem, "propertyName") + propertyName_elem.text = so.propertyName + + request = etree.tostring(root, pretty_print=True) return get_response(getProductCompatibilities.__name__, request, encoding) -def findProducts(invocationId, \ - dataset=None, \ - datasetPropertyName=None, \ - keywords=None, \ - paginationInput=None, \ - productStatusFilter=None, \ - propertyFilter=None, \ - sortOrder=None, \ - encoding="JSON"): - root = etree.Element("findProductsRequest", xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") +def findProducts( + invocationId, dataset=None, + datasetPropertyName=None, keywords=None, + paginationInput=None, productStatusFilter=None, + propertyFilter=None, sortOrder=None, + encoding="JSON"): + root = etree.Element("findProductsRequest", + xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") #Really messed up! : http://developer.ebay.com/DevZone/product/CallRef/findProducts.html#Samples - request=etree.tostring(root, pretty_print=True) + request = etree.tostring(root, pretty_print=True) return get_response(findProducts.__name__, request, encoding) + def findProductsByCompatibility(encoding="JSON"): - root = etree.Element("findProductsByCompatibilityRequest", xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") + root = etree.Element("findProductsByCompatibilityRequest", + xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") - #Problem with getProductDetails, findProductsByCompatibility and findProducts method: http://developer.ebay.com/DevZone/product/CallRef/index.html + #Problem with getProductDetails, findProductsByCompatibility and findProducts + # method: http://developer.ebay.com/DevZone/product/CallRef/index.html - request=etree.tostring(root, pretty_print=True) + request = etree.tostring(root, pretty_print=True) return get_response(findProductsByCompatibility.__name__, request, encoding) + def getProductDetails(encoding="JSON"): - root = etree.Element("getProductDetailsRequest", xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") + root = etree.Element("getProductDetailsRequest", + xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services") - #Problem with getProductDetails, findProductsByCompatibility and findProducts method: http://developer.ebay.com/DevZone/product/CallRef/index.html + #Problem with getProductDetails, findProductsByCompatibility and findProducts + # method: http://developer.ebay.com/DevZone/product/CallRef/index.html - request=etree.tostring(root, pretty_print=True) + request = etree.tostring(root, pretty_print=True) return get_response(getProductDetails.__name__, request, encoding) @@ -225,13 +213,13 @@ def get_response(operation_name, data, encoding, **headers): app_name = config.get("keys", "app_name") endpoint = config.get("endpoints", "product") - http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name, - "X-EBAY-SOA-SECURITY-APPNAME": app_name, - "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} + http_headers = { + "X-EBAY-SOA-OPERATION-NAME": operation_name, + "X-EBAY-SOA-SECURITY-APPNAME": app_name, + "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} http_headers.update(headers) req = urllib2.Request(endpoint, data, http_headers) res = urllib2.urlopen(req) - data = res.read() - return data + return res.read() diff --git a/ebay/research.py b/ebay/research.py index d7e0cd6..5c2db03 100644 --- a/ebay/research.py +++ b/ebay/research.py @@ -1,3 +1,4 @@ #This sucks: http://developer.researchadvanced.com/contact.php -def GetPriceResearch(): pass \ No newline at end of file +def GetPriceResearch(): + pass \ No newline at end of file diff --git a/ebay/resolution_case_management.py b/ebay/resolution_case_management.py index 4a86157..7946a36 100644 --- a/ebay/resolution_case_management.py +++ b/ebay/resolution_case_management.py @@ -4,15 +4,16 @@ from utils import get_config_store # case retrieval calls -def getUserCases(caseStatusFilter = None, - caseTypeFilter = None, - creationDateRangeFilterFrom = None, - creationDateRangeFilterTo = None, - itemFilter = None, - paginationInput = None, - sortOrder = None, - encoding = "JSON"): - root = etree.Element("getUserCasesRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def getUserCases(caseStatusFilter=None, + caseTypeFilter=None, + creationDateRangeFilterFrom=None, + creationDateRangeFilterTo=None, + itemFilter=None, + paginationInput=None, + sortOrder=None, + encoding="JSON"): + root = etree.Element("getUserCasesRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") #caseStatusFilter is a List if caseStatusFilter: @@ -38,15 +39,15 @@ def getUserCases(caseStatusFilter = None, #itemFilter is a dict: {itemId:123, transactionId:72} - if itemFilter and len(itemFilter)>0: + if itemFilter and len(itemFilter) > 0: itemFilter_elem = etree.SubElement(root, "itemFilter") for key in itemFilter.keys(): itemId_elem = etree.SubElement(itemFilter_elem, key) - itemId_elem.text = itemFilter[key] + itemId_elem.text = itemFilter[key] # paginationInput is a dict: {entriesPerPage:5, pageNumber:10} - if paginationInput and len(paginationInput)>0: + if paginationInput and len(paginationInput) > 0: paginationInput_elem = etree.SubElement(root, "paginationInput") for key in paginationInput.keys(): input_values_elem = etree.SubElement(paginationInput_elem, key) @@ -56,12 +57,13 @@ def getUserCases(caseStatusFilter = None, sortOrder_elem = etree.SubElement(root, "sortOrder") sortOrder_elem.text = sortOrder - request = etree.tostring(root, pretty_print=True) return get_response(getUserCases.__name__, request, encoding) + def getEBPCaseDetail(caseId, caseType, encoding="JSON"): - root = etree.Element("getEBPCaseDetailRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("getEBPCaseDetailRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -75,7 +77,8 @@ def getEBPCaseDetail(caseId, caseType, encoding="JSON"): # Seller Option Calls def provideTrackingInfo(caseId, caseType, carrierUsed, trackingNumber, comments=None, encoding="JSON"): - root = etree.Element("provideTrackingInfoRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("provideTrackingInfoRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -93,12 +96,13 @@ def provideTrackingInfo(caseId, caseType, carrierUsed, trackingNumber, comments= comments_elem = etree.SubElement(root, "comments") comments_elem.text = comments - request = etree.tostring(root, pretty_print=True) return get_response(provideTrackingInfo.__name__, request, encoding) + def issueFullRefund(caseId, caseType, comments=None, encoding="JSON"): - root = etree.Element("issueFullRefundRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("issueFullRefundRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -113,8 +117,10 @@ def issueFullRefund(caseId, caseType, comments=None, encoding="JSON"): request = etree.tostring(root, pretty_print=True) return get_response(issueFullRefund.__name__, request, encoding) + def offerOtherSolution(caseId, caseType, messageToBuyer, encoding="JSON"): - root = etree.Element("offerOtherSolutionRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("offerOtherSolutionRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -129,8 +135,10 @@ def offerOtherSolution(caseId, caseType, messageToBuyer, encoding="JSON"): return get_response(offerOtherSolution.__name__, request, encoding) #NOT WORKING on SANDBOX, need to investigate -def escalateToCustomerSuppport(caseId, caseType, escalationReason, comments=None, encoding="JSON"): - root = etree.Element("escalateToCustomerSuppportRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") +def escalateToCustomerSuppport(caseId, caseType, escalationReason, + comments=None, encoding="JSON"): + root = etree.Element("escalateToCustomerSuppportRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -151,8 +159,11 @@ def escalateToCustomerSuppport(caseId, caseType, escalationReason, comments=None request = etree.tostring(root, pretty_print=True) return get_response(escalateToCustomerSuppport.__name__, request, encoding) -def appealToCustomerSupport(caseId, caseType, appealReason, comments=None, encoding="JSON"): - root = etree.Element("appealToCustomerSupportRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + +def appealToCustomerSupport(caseId, caseType, appealReason, + comments=None, encoding="JSON"): + root = etree.Element("appealToCustomerSupportRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -173,7 +184,8 @@ def appealToCustomerSupport(caseId, caseType, appealReason, comments=None, encod # Metadata calls def getActivityOptions(caseId, caseType, encoding="JSON"): - root = etree.Element("getActivityOptionsRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("getActivityOptionsRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") caseId_elem = etree.SubElement(root, "caseId") id_elem = etree.SubElement(caseId_elem, "id") @@ -184,8 +196,10 @@ def getActivityOptions(caseId, caseType, encoding="JSON"): request = etree.tostring(root, pretty_print=True) return get_response(getActivityOptions.__name__, request, encoding) + def getVersion(encoding="JSON"): - root = etree.Element("getVersionRequest", xmlns="http://www.ebay.com/marketplace/search/v1/services") + root = etree.Element("getVersionRequest", + xmlns="http://www.ebay.com/marketplace/search/v1/services") request = etree.tostring(root, pretty_print=True) return get_response(getVersion.__name__, request, encoding) @@ -196,9 +210,10 @@ def get_response(operation_name, data, encoding, **headers): access_token = config.get("auth", "token") endpoint = config.get("endpoints", "resolution_case_management") - http_headers = {"X-EBAY-SOA-OPERATION-NAME": operation_name, - "X-EBAY-SOA-SECURITY-TOKEN": access_token, - "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} + http_headers = { + "X-EBAY-SOA-OPERATION-NAME": operation_name, + "X-EBAY-SOA-SECURITY-TOKEN": access_token, + "X-EBAY-SOA-RESPONSE-DATA-FORMAT": encoding} http_headers.update(headers) diff --git a/ebay/shopping.py b/ebay/shopping.py index d1fd7f0..aa9ed18 100644 --- a/ebay/shopping.py +++ b/ebay/shopping.py @@ -4,126 +4,146 @@ # Item Search def FindProducts(query, available_items, max_entries, encoding="JSON"): - - user_param={'callname' : FindProducts.__name__, - 'responseencoding' : encoding, - 'QueryKeywords' : query, - 'AvailableItemsOnly' : available_items, - 'MaxEntries' : max_entries} - + user_param = { + 'callname': FindProducts.__name__, + 'responseencoding': encoding, + 'QueryKeywords': query, + 'AvailableItemsOnly': available_items, + 'MaxEntries': max_entries} + response = get_response(user_param) return response.content - -def FindHalfProducts(query=None, max_entries=None, product_type=None, product_value=None, include_selector=None, encoding="JSON"): + + +def FindHalfProducts(query=None, max_entries=None, + product_type=None, product_value=None, + include_selector=None, + encoding="JSON"): if product_type and product_value and include_selector: - user_param = {'callname' : FindHalfProducts.__name__, - 'responseencoding' : encoding, - 'ProductId.type' : product_type, - 'ProductId.Value' : product_value, - 'IncludeSelector' : include_selector} - + user_param = { + 'callname': FindHalfProducts.__name__, + 'responseencoding': encoding, + 'ProductId.type': product_type, + 'ProductId.Value': product_value, + 'IncludeSelector': include_selector} + if query and max_entries: - user_param = {'callname' : FindHalfProducts.__name__, - 'responseencoding' : encoding, - 'QueryKeywords' : query, - 'MaxEntries' : max_entries} + user_param = { + 'callname': FindHalfProducts.__name__, + 'responseencoding': encoding, + 'QueryKeywords': query, + 'MaxEntries': max_entries} response = get_response(user_param) return response.content # Item Data def GetSingleItem(item_id, include_selector=None, encoding="JSON"): - user_param={'callname' : GetSingleItem.__name__, - 'responseencoding' : encoding, - 'ItemId' : item_id} + user_param = { + 'callname': GetSingleItem.__name__, + 'responseencoding': encoding, + 'ItemId': item_id} if include_selector: user_param['IncludeSelector'] = include_selector - + response = get_response(user_param) return response.content - + + def GetItemStatus(item_id, encoding="JSON"): - user_param={'callname' : GetItemStatus.__name__, - 'responseencoding' : encoding, - 'ItemId' : item_id} + user_param = { + 'callname': GetItemStatus.__name__, + 'responseencoding': encoding, + 'ItemId': item_id} response = get_response(user_param) return response.content - -def GetShippingCosts(item_id, destination_country_code, destination_postal_code, details, quantity_sold, encoding="JSON"): - user_param={'callname' : GetShippingCosts.__name__, - 'responseencoding' : encoding, - 'ItemId' : item_id, - 'DestinationCountryCode' : destination_country_code, - 'DestinationPostalCode' : destination_postal_code, - 'IncludeDetails' : details, - 'QuantitySold' : quantity_sold} - + + +def GetShippingCosts(item_id, destination_country_code, destination_postal_code, details, quantity_sold, + encoding="JSON"): + user_param = { + 'callname': GetShippingCosts.__name__, + 'responseencoding': encoding, + 'ItemId': item_id, + 'DestinationCountryCode': destination_country_code, + 'DestinationPostalCode': destination_postal_code, + 'IncludeDetails': details, + 'QuantitySold': quantity_sold} + response = get_response(user_param) - return response.content - + return response.content + + def GetMultipleItems(item_id, include_selector=None, encoding="JSON"): - user_param={'callname' : GetMultipleItems.__name__, - 'responseencoding' : encoding, - 'ItemId' : item_id} - + user_param = { + 'callname': GetMultipleItems.__name__, + 'responseencoding': encoding, + 'ItemId': item_id} + if include_selector: user_param['IncludeSelector'] = include_selector - + response = get_response(user_param) return response.content # User Reputation def GetUserProfile(user_id, include_selector=None, encoding="JSON"): - user_param={'callname' : GetUserProfile.__name__, - 'responseencoding' : encoding, - 'UserID' : user_id} - + user_param = { + 'callname': GetUserProfile.__name__, + 'responseencoding': encoding, + 'UserID': user_id} + if include_selector: - user_param['IncludeSelector'] = include_selector - + user_param['IncludeSelector'] = include_selector + response = get_response(user_param) return response.content - + # eBay pop! def FindPopularSearches(query, category_id=None, encoding="JSON"): - user_param={'callname' : FindPopularSearches.__name__, - 'responseencoding' : encoding, - 'QueryKeywords' : query} - + user_param = { + 'callname': FindPopularSearches.__name__, + 'responseencoding': encoding, + 'QueryKeywords': query} + if category_id: - user_param['CategoryID'] = category_id - + user_param['CategoryID'] = category_id + response = get_response(user_param) return response.content - + def FindPopularItems(query, category_id_exclude=None, encoding="JSON"): - user_param={'callname' : FindPopularItems.__name__, - 'responseencoding' : encoding, - 'QueryKeywords' : query} - + user_param = { + 'callname': FindPopularItems.__name__, + 'responseencoding': encoding, + 'QueryKeywords': query} + if category_id_exclude: - user_param['CategoryIDExclude'] = category_id_exclude - + user_param['CategoryIDExclude'] = category_id_exclude + response = get_response(user_param) return response.content - -# Search: Bug in eBay documentation of Product Id: http://developer.ebay.com/devzone/shopping/docs/callref/FindReviewsAndGuides.html#Samples + +# Search: Bug in eBay documentation of Product Id: +# http://developer.ebay.com/devzone/shopping/docs/callref/FindReviewsAndGuides.html#Samples def FindReviewsandGuides(category_id=None, product_id=None, encoding="JSON"): if category_id: - user_param={'callname' : FindReviewsandGuides.__name__, - 'responseencoding' : encoding, - 'CategoryID' : category_id} - + user_param = { + 'callname': FindReviewsandGuides.__name__, + 'responseencoding': encoding, + 'CategoryID': category_id} + if product_id: - user_param={'callname' : FindReviewsandGuides.__name__, - 'responseencoding' : encoding, - 'ProductID' : product_id} - + user_param = { + 'callname': FindReviewsandGuides.__name__, + 'responseencoding': encoding, + 'ProductID': product_id} + response = get_response(user_param) return response.content @@ -131,23 +151,26 @@ def FindReviewsandGuides(category_id=None, product_id=None, encoding="JSON"): # Utilities def GetCategoryInfo(category_id, include_selector=None, encoding="JSON"): if category_id: - user_param={'callname' : GetCategoryInfo.__name__, - 'responseencoding' : encoding, - 'CategoryID' : category_id} - + user_param = { + 'callname': GetCategoryInfo.__name__, + 'responseencoding': encoding, + 'CategoryID': category_id} + if include_selector: - user_param['IncludeSelector'] = include_selector - + user_param['IncludeSelector'] = include_selector + response = get_response(user_param) return response.content - + + def GeteBayTime(encoding="JSON"): - user_param={'callname' : GeteBayTime.__name__, - 'responseencoding' : encoding} - + user_param = { + 'callname': GeteBayTime.__name__, + 'responseencoding': encoding} + response = get_response(user_param) - return response.content - + return response.content + #requests method def get_response(user_params): @@ -157,8 +180,8 @@ def get_response(user_params): version = config.get("call", "compatibility_level") endpoint = config.get("endpoints", "shopping") - d=dict(appid = app_id, siteid = site_id, version = version) - + d = dict(appid=app_id, siteid=site_id, version=version) + d.update(user_params) - + return requests.get(endpoint, params=d) diff --git a/ebay/trading.py b/ebay/trading.py index af87517..ba45ed1 100644 --- a/ebay/trading.py +++ b/ebay/trading.py @@ -1,30 +1,33 @@ #!/usr/bin/env python #-*- coding: utf-8 -*- import sys +from xml.dom.minidom import parseString + from utils import (get_endpoint_response, get_config_store, - get_endpoint_response_with_file, add_e, imgur_post) + get_endpoint_response_with_file, add_e, imgur_post) from lxml import etree, objectify -from xml.dom.minidom import parseString - + CID = { 'new': '1000', 'used': '3000', } + def addItemWithPic(image, **kwargs): url = uploadSiteHostedPicture(image) kwargs['pictureDetails'] = [url] return addItem(**kwargs) -def addItem(title, description, primaryCategoryId, - startPrice='0.99', buyItNowPrice=None, country='US', - currency='USD', dispatchTimeMax='3', listingDuration='Days_7', - listingType='Chinese', paymentMethods=['PayPal'], - payPalEmailAddress='', pictureDetails=[], postalCode='', - photoDisplay='PicturePack', condition='new', - quantity=1, freeShipping=True, site='US', test=False): +def addItem( + title, description, primaryCategoryId, + startPrice='0.99', buyItNowPrice=None, country='US', + currency='USD', dispatchTimeMax='3', listingDuration='Days_7', + listingType='Chinese', paymentMethods=['PayPal'], + payPalEmailAddress='', pictureDetails=[], postalCode='', + photoDisplay='PicturePack', condition='new', + quantity=1, freeShipping=True, site='US', test=False): #get the user auth token token = get_config_store().get("auth", "token") oname = "AddItem" if not test else 'VerifyAddItem' @@ -36,7 +39,6 @@ def addItem(title, description, primaryCategoryId, token_elem = etree.SubElement(credentials_elem, "eBayAuthToken") token_elem.text = token - item_e = etree.SubElement(root, "Item") t_e = add_e(item_e, "Title", str(title)) d_e = add_e(item_e, "Description", str(description)) @@ -69,7 +71,7 @@ def addItem(title, description, primaryCategoryId, add_e(returnPol_e, "Description", "If you are not satisfied, ship the item back for a full refund.") add_e(returnPol_e, "ShippingCostPaidByOption", "Buyer") # end default ret pol - + shipde_e = add_e(item_e, "ShippingDetails", None) if freeShipping: sst = add_e(shipde_e, "ShippingType", "Flat") @@ -83,23 +85,24 @@ def addItem(title, description, primaryCategoryId, #need to specify xml declaration and encoding or else will get error request = etree.tostring(root, pretty_print=True, - xml_declaration=True, encoding="utf-8") + xml_declaration=True, encoding="utf-8") response = get_response(oname, request, "utf-8") return response -def getCategories(parentId=None, \ - detailLevel='ReturnAll', \ - errorLanguage=None, \ - messageId=None, \ - outputSelector=None, \ - version=None, \ - warningLevel="High", \ - levelLimit=1, \ - viewAllNodes=True, \ - categorySiteId=0, \ - encoding="JSON"): +def getCategories( + parentId=None, + detailLevel='ReturnAll', + errorLanguage=None, + messageId=None, + outputSelector=None, + version=None, + warningLevel="High", + levelLimit=1, + viewAllNodes=True, + categorySiteId=0, + encoding="JSON"): """ Using a query string and parentId this function returns all the categories containing that string within the category name, @@ -158,7 +161,7 @@ def getCategories(parentId=None, \ #need to specify xml declaration and encoding or else will get error request = etree.tostring(root, pretty_print=False, - xml_declaration=True, encoding="utf-8") + xml_declaration=True, encoding="utf-8") response = get_response("GetCategories", request, encoding) return response @@ -217,7 +220,7 @@ def uploadSiteHostedPicture(filepath): epu = add_e(root, "ExternalPictureURL", urlpath) request = etree.tostring(root, pretty_print=True, - xml_declaration=True, encoding="UTF-8") + xml_declaration=True, encoding="UTF-8") response = get_response(oname, request, "UTF-8") @@ -228,12 +231,15 @@ def url_result(result): root = objectify.fromstring(result) url = root.FullURL.text return url - + def get_response(operation_name, data, encoding, **headers): - return get_endpoint_response("trading", operation_name, - data, encoding, **headers) + return get_endpoint_response( + "trading", operation_name, + data, encoding, **headers) + def get_response_with_file(operation_name, fobj, data, encoding, **headers): - return get_endpoint_response_with_file("trading", operation_name, - fobj, data, encoding, **headers) + return get_endpoint_response_with_file( + "trading", operation_name, + fobj, data, encoding, **headers) diff --git a/ebay/utils.py b/ebay/utils.py index fa77225..73c4d82 100644 --- a/ebay/utils.py +++ b/ebay/utils.py @@ -1,19 +1,25 @@ #!/usr/bin/env pythin #-*- coding: utf-8 -*- import sys -from os.path import join, dirname, abspath -import urllib2 -from ConfigParser import ConfigParser -import requests -from lxml import etree import base64 -#import codecs import json import shutil import os +import urllib2 +from ConfigParser import ConfigParser +from os.path import join, dirname, abspath + +import requests +from lxml import etree -def get_endpoint_response(endpoint_name, operation_name, data, encoding, - **headers): + +CONFIG_STORE = None + + +def get_endpoint_response( + endpoint_name, operation_name, + data, encoding, + **headers): config = get_config_store() endpoint = config.get("endpoints", endpoint_name) app_name = config.get("keys", "app_name") @@ -22,23 +28,26 @@ def get_endpoint_response(endpoint_name, operation_name, data, encoding, compatibility_level = config.get("call", "compatibility_level") siteId = config.get("call", "siteid") - http_headers = { "X-EBAY-API-COMPATIBILITY-LEVEL" : compatibility_level, - "X-EBAY-API-DEV-NAME" : dev_name, - "X-EBAY-API-APP-NAME" : app_name, - "X-EBAY-API-CERT-NAME": cert_name, - "X-EBAY-API-CALL-NAME": operation_name, - "X-EBAY-API-SITEID" : siteId, - "Content-Type" : "text/xml" } + http_headers = { + "X-EBAY-API-COMPATIBILITY-LEVEL": compatibility_level, + "X-EBAY-API-DEV-NAME": dev_name, + "X-EBAY-API-APP-NAME": app_name, + "X-EBAY-API-CERT-NAME": cert_name, + "X-EBAY-API-CALL-NAME": operation_name, + "X-EBAY-API-SITEID": siteId, + "Content-Type": "text/xml"} http_headers.update(headers) req = urllib2.Request(endpoint, data, http_headers) res = urllib2.urlopen(req) - data = res.read() - return data + return res.read() + -def get_endpoint_response_with_file(endpoint_name, operation_name, fobj, data, - encoding, **headers): +def get_endpoint_response_with_file( + endpoint_name, operation_name, + fobj, data, + encoding, **headers): config = get_config_store() endpoint = config.get("endpoints", endpoint_name) app_name = config.get("keys", "app_name") @@ -47,27 +56,28 @@ def get_endpoint_response_with_file(endpoint_name, operation_name, fobj, data, compatibility_level = config.get("call", "compatibility_level") siteId = config.get("call", "siteid") - http_headers = { "X-EBAY-API-COMPATIBILITY-LEVEL" : compatibility_level, - "X-EBAY-API-DEV-NAME" : dev_name, - "X-EBAY-API-APP-NAME" : app_name, - "X-EBAY-API-CERT-NAME": cert_name, - "X-EBAY-API-CALL-NAME": operation_name, - "X-EBAY-API-SITEID" : siteId, - "X-EBAY-API-DETAIL-LEVEL": "0", - "Content-Type" : "multipart/form-data" } + http_headers = { + "X-EBAY-API-COMPATIBILITY-LEVEL": compatibility_level, + "X-EBAY-API-DEV-NAME": dev_name, + "X-EBAY-API-APP-NAME": app_name, + "X-EBAY-API-CERT-NAME": cert_name, + "X-EBAY-API-CALL-NAME": operation_name, + "X-EBAY-API-SITEID": siteId, + "X-EBAY-API-DETAIL-LEVEL": "0", + "Content-Type": "multipart/form-data"} http_headers.update(headers) files = {'file': ('image', fobj)} - dataload = { 'body': data } + dataload = {'body': data} res = requests.post(endpoint, files=files, data=dataload, headers=http_headers) return res.text + def relative(*paths): return join(dirname(abspath(__file__)), *paths) -CONFIG_STORE = None def set_config_file(filename): """ @@ -78,6 +88,7 @@ def set_config_file(filename): CONFIG_STORE = ConfigParser() CONFIG_STORE.read(filename) + def get_config_store(): """ Return storage object with configuration values. @@ -89,9 +100,10 @@ def get_config_store(): if CONFIG_STORE is None: CONFIG_STORE = ConfigParser() CONFIG_STORE.read(relative("config.ini")) - + return CONFIG_STORE + def write_config_example(dst=None): """ Write an example configuration file for python-ebay. @@ -143,6 +155,7 @@ def __init__(self, sortPriority, order, propertyName): self.order = order self.propertyName = propertyName + def add_e(parent, key, val=None): child = etree.SubElement(parent, key) if val: diff --git a/tests/test_best_match.py b/tests/test_best_match.py index 5648971..9826c42 100644 --- a/tests/test_best_match.py +++ b/tests/test_best_match.py @@ -31,7 +31,7 @@ def test_keywords_findBestMatchItemDetailsAcrossStores(self): itemFilter=itemFilter,\ outputSelector=outputSelector,\ postSearchItemFilter=postSearchItemFilter,\ - postSearchSellerFilter=postSearchSellerFilter, \ + postSearchSellerFilter=postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -46,7 +46,7 @@ def test_categoryId_findBestMatchItemDetailsAcrossStores(self): itemFilter=itemFilter,\ outputSelector=outputSelector,\ postSearchItemFilter=postSearchItemFilter,\ - postSearchSellerFilter=postSearchSellerFilter, \ + postSearchSellerFilter=postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -56,13 +56,13 @@ def test_categoryId_findBestMatchItemDetailsAcrossStores(self): def test_findBestMatchItemDetailsAdvanced(self): result = findBestMatchItemDetailsAdvanced(keywords=keywords,\ siteResultsPerPage=siteResultsPerPage,\ - categoryId=None, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter, \ + categoryId=None, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -70,14 +70,14 @@ def test_findBestMatchItemDetailsAdvanced(self): def test_findBestMatchItemDetailsByCategory(self): - result = findBestMatchItemDetailsByCategory(categoryId = categoryId, \ - siteResultsPerPage = siteResultsPerPage, \ - entriesPerPage = entriesPerPage, \ - ignoreFeatured = ignoreFeatured, \ - itemFilter = itemFilter, \ - outputSelector = outputSelector, \ - postSearchItemFilter = postSearchItemFilter, \ - postSearchSellerFilter = postSearchSellerFilter, \ + result = findBestMatchItemDetailsByCategory(categoryId = categoryId, + siteResultsPerPage = siteResultsPerPage, + entriesPerPage = entriesPerPage, + ignoreFeatured = ignoreFeatured, + itemFilter = itemFilter, + outputSelector = outputSelector, + postSearchItemFilter = postSearchItemFilter, + postSearchSellerFilter = postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -85,14 +85,14 @@ def test_findBestMatchItemDetailsByCategory(self): def test_findBestMatchItemDetailsByKeywords(self): - result = findBestMatchItemDetailsByKeywords(keywords=keywords, \ - siteResultsPerPage = siteResultsPerPage, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter, \ + result = findBestMatchItemDetailsByKeywords(keywords=keywords, + siteResultsPerPage = siteResultsPerPage, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) @@ -101,14 +101,14 @@ def test_findBestMatchItemDetailsByKeywords(self): def test_findBestMatchItemDetailsByProduct(self): - result = findBestMatchItemDetailsByProduct(productId=productId, \ - siteResultsPerPage=siteResultsPerPage, \ - entriesPerPage=entriesPerPage, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - postSearchItemFilter=postSearchItemFilter, \ - postSearchSellerFilter=postSearchSellerFilter, \ + result = findBestMatchItemDetailsByProduct(productId=productId, + siteResultsPerPage=siteResultsPerPage, + entriesPerPage=entriesPerPage, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + outputSelector=outputSelector, + postSearchItemFilter=postSearchItemFilter, + postSearchSellerFilter=postSearchSellerFilter, encoding="XML") root = etree.fromstring(result) @@ -117,11 +117,11 @@ def test_findBestMatchItemDetailsByProduct(self): def test_findBestMatchItemDetailsBySeller(self): - result = findBestMatchItemDetailsBySeller(categoryId=categoryId, \ - sellerUserName=sellerUserName, \ - ignoreFeatured=ignoreFeatured, \ - itemFilter=itemFilter, \ - paginationInput=paginationInput, \ + result = findBestMatchItemDetailsBySeller(categoryId=categoryId, + sellerUserName=sellerUserName, + ignoreFeatured=ignoreFeatured, + itemFilter=itemFilter, + paginationInput=paginationInput, encoding="XML") root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text diff --git a/tests/test_client_alerts.py b/tests/test_client_alerts.py index 908fc9d..1aaeec5 100644 --- a/tests/test_client_alerts.py +++ b/tests/test_client_alerts.py @@ -16,10 +16,10 @@ class TestClientAlertsApi(unittest.TestCase): def test_GetPublicAlerts(self): - result = GetPublicAlerts(ChannelID=ChannelID, \ - ChannelType=ChannelType, \ - EventType=EventType, MessageID=MessageID, \ - LastRequestTime=LastRequestTime, \ + result = GetPublicAlerts(ChannelID=ChannelID, + ChannelType=ChannelType, + EventType=EventType, MessageID=MessageID, + LastRequestTime=LastRequestTime, encoding=encoding) root = etree.fromstring(result) print root[0] @@ -28,9 +28,9 @@ def test_GetPublicAlerts(self): def test_GetUserAlerts(self): - result = GetUserAlerts(SessionID=SessionID, \ - SessionData=SessionData, \ - MessageID=MessageID, \ + result = GetUserAlerts(SessionID=SessionID, + SessionData=SessionData, + MessageID=MessageID, encoding=encoding) root = etree.fromstring(result) ack = root.find("{urn:ebay:apis:eBLBaseComponents}Ack").text @@ -38,8 +38,8 @@ def test_GetUserAlerts(self): #Not sure how to fix it, the return value when request failing is: issue#5 def test_Login(self): - result = Login(ClientAlertsAuthToken=ClientAlertsAuthToken, \ - MessageID=MessageID, \ + result = Login(ClientAlertsAuthToken=ClientAlertsAuthToken, + MessageID=MessageID, encoding=encoding) root = etree.fromstring(result) ack = root.find("{urn:ebay:apis:eBLBaseComponents}Ack").text @@ -47,9 +47,9 @@ def test_Login(self): def test_Logout(self): - result = Logout(SessionID=SessionID, \ - SessionData=SessionData, \ - MessageID=MessageID, \ + result = Logout(SessionID=SessionID, + SessionData=SessionData, + MessageID=MessageID, encoding=encoding) root = etree.fromstring(result) ack = root.find("{urn:ebay:apis:eBLBaseComponents}Ack").text diff --git a/tests/test_feedback.py b/tests/test_feedback.py index 4286c09..b393d69 100644 --- a/tests/test_feedback.py +++ b/tests/test_feedback.py @@ -19,10 +19,10 @@ class TestFeedbackhApi(unittest.TestCase): def test_createDSRSummaryByCategory(self): - result = createDSRSummaryByCategory(categoryId=categoryId, \ - dateRangeFrom=dateRangeFrom, \ - dateRangeTo=dateRangeTo, \ - dateRangeEventType=dateRangeEventType, \ + result = createDSRSummaryByCategory(categoryId=categoryId, + dateRangeFrom=dateRangeFrom, + dateRangeTo=dateRangeTo, + dateRangeEventType=dateRangeEventType, encoding=encoding) root = etree.fromstring(result) ack = root.find("ack").text @@ -30,9 +30,9 @@ def test_createDSRSummaryByCategory(self): def test_createDSRSummaryByPeriod(self): - result = createDSRSummaryByPeriod(dateRangeFrom=dateRangeFrom, \ - dateRangeTo=dateRangeTo, \ - dateRangeEventType=dateRangeEventType, \ + result = createDSRSummaryByPeriod(dateRangeFrom=dateRangeFrom, + dateRangeTo=dateRangeTo, + dateRangeEventType=dateRangeEventType, encoding=encoding) root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/services}ack").text @@ -40,13 +40,13 @@ def test_createDSRSummaryByPeriod(self): def test_createDSRSummaryByShippingDetail(self): - result = createDSRSummaryByShippingDetail(dateRangeFrom=dateRangeFrom, \ - dateRangeTo=dateRangeTo, \ - dateRangeEventType=dateRangeEventType, \ - shippingCostType=shippingCostType, \ - shippingDestinationType=shippingDestinationType, \ - shippingService=shippingService, \ - shipToCountry=shipToCountry, \ + result = createDSRSummaryByShippingDetail(dateRangeFrom=dateRangeFrom, + dateRangeTo=dateRangeTo, + dateRangeEventType=dateRangeEventType, + shippingCostType=shippingCostType, + shippingDestinationType=shippingDestinationType, + shippingService=shippingService, + shipToCountry=shipToCountry, encoding=encoding) root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/services}ack").text diff --git a/tests/test_finding.py b/tests/test_finding.py index 17e8760..5afc555 100644 --- a/tests/test_finding.py +++ b/tests/test_finding.py @@ -51,16 +51,15 @@ def test_getSearchKeywordsRecommendation(self): def test_findItemsByKeywords(self): result = findItemsByKeywords( - keywords=keywords, \ - affiliate=affiliate, \ - buyerPostalCode=buyerPostalCode, \ - paginationInput=paginationInput, \ - sortOrder=sortOrder, \ - aspectFilter=aspectFilter, \ - domainFilter=domainFilter, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - encoding=encoding) + keywords=keywords, + affiliate=affiliate, \ buyerPostalCode=buyerPostalCode, \ + paginationInput=paginationInput, \ + sortOrder=sortOrder, \ + aspectFilter=aspectFilter, \ + domainFilter=domainFilter, \ + itemFilter=itemFilter, \ + outputSelector=outputSelector, \ + encoding=encoding) # print result root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -73,15 +72,15 @@ def test_findItemsByKeywords(self): def test_findItemsByCategory(self): result = findItemsByCategory( categoryId=categoryId, \ - affiliate=affiliate, \ - buyerPostalCode=buyerPostalCode, \ - sortOrder=sortOrder, \ - paginationInput = paginationInput, \ - aspectFilter=aspectFilter, \ - domainFilter=domainFilter, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - encoding=encoding) + affiliate=affiliate, \ + buyerPostalCode=buyerPostalCode, \ + sortOrder=sortOrder, \ + paginationInput = paginationInput, \ + spectFilter=aspectFilter, \ + dainFilter=domainFilter, \ + iteilter=itemFilter, \ + outpuelector=outputSelector, \ + encodinencoding) # print result root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text @@ -94,17 +93,17 @@ def test_findItemsByCategory(self): def test_findItemsAdvanced(self): result = findItemsAdvanced( keywords=keywords, \ - categoryId=categoryId, \ - affiliate=affiliate, \ - buyerPostalCode=buyerPostalCode, \ - paginationInput= paginationInput, \ - sortOrder=sortOrder, \ - aspectFilter=aspectFilter, \ - domainFilter=domainFilter, \ + categoryId=tegoryId, \ + affiliate=affiate, \ + buyerPostalCodeuyerPostalCode, \ + paginationInput= ginationInput, \ + sortOrder=sortOrder\ + aspectFilter=aspectFier, \ + domainFilter=domainFilt, \ itemFilter=itemFilter, \ - outputSelector=outputSelector, \ + outputSelector=outputSelect, \ encoding=encoding) -# print result +# pnt result root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text self.assertEqual(ack, "Success") @@ -117,15 +116,14 @@ def test_findItemsByProduct(self): result = findItemsByProduct( keywords=keywords, \ productId=productId, \ - affiliate=affiliate, \ - buyerPostalCode=buyerPostalCode, \ - paginationInput= paginationInput, \ - sortOrder=sortOrder, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ - encoding=encoding) + affiliate=affiliate, \ + buyerPostalCode=buyerPostalCode, \ paginationInput= paginationInput, \ + sortOrder=sortOrder, \ + itemFilter=itemFilter, \ + outputSelector=outputSelector, \ + encoding=encoding) # print result - root = etree.fromstring(result) + root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text self.assertEqual(ack, "Failure") @@ -134,14 +132,14 @@ def test_findItemsIneBayStores(self): result = findItemsIneBayStores( keywords=keywords, \ storeName=storeName, \ - affiliate=affiliate, \ - buyerPostalCode=buyerPostalCode, \ - paginationInput=paginationInput, \ - sortOrder=sortOrder, \ - aspectFilter=aspectFilter, \ - domainFilter=domainFilter, \ - itemFilter=itemFilter, \ - outputSelector=outputSelector, \ + affiliate=affiliate, \ + buyerPostalCode=buyerPostalCode, \ + paginationInput=paginationInput, \ + sortOrder=sortOrder, \ + asctFilter=aspectFilter, \ + domainFilter=domainFilter, \ + emFilter=itemFilter, \ + outputlector=outputSelector, \ encoding=encoding) root = etree.fromstring(result) ack = root.find("{http://www.ebay.com/marketplace/search/v1/services}ack").text diff --git a/tests/test_merchandising.py b/tests/test_merchandising.py index 6b077e8..6da027e 100644 --- a/tests/test_merchandising.py +++ b/tests/test_merchandising.py @@ -22,12 +22,11 @@ def test_getMostWatchedItems(self): def test_getRelatedCategoryItems(self): - result = getRelatedCategoryItems(affiliate=None, \ - maxResults=None, \ - categoryId=None, \ - itemFilter=None, \ - itemId=None, \ - encoding="XML") + result = getRelatedCategoryItems(affiliate=None, + maxResults=None, \ categoryId=None, \ + itemFilter=None, \ + itemId=None, \ + encoding="XML") root = objectify.fromstring(result) ack = root.ack.text self.assertEqual(ack, "Success") @@ -35,15 +34,15 @@ def test_getRelatedCategoryItems(self): def test_getSimilarItems(self): result = getSimilarItems(affiliate=None, \ - maxResults=None, \ - categoryId=None, \ - categoryIdExclude=None, \ - endTimeFrom=None, \ - endTimeTo=None, \ - itemFilter=None, \ - itemId=None, \ - listingType=None, \ - maxPrice=None, \ + maxResults=None, \ + categoryId=None, \ + categoryIdExclude=None, \ + endTimeFrom=None, \ + endTimeTo=None, \ + itemFilter=None, \ + itemId=None, \ + listingType=None, \ + axPrice=None, \ encoding="XML") root = objectify.fromstring(result) ack = root.ack.text