Skip to content

Commit c71ba56

Browse files
committed
add tests
1 parent a334690 commit c71ba56

6 files changed

Lines changed: 153 additions & 60 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
ebay.yaml
12
timebay.yaml
23
build/
34
dist/

ebaysdk/config.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ class Config(object):
1717
"""Config Class for all APIs connections
1818
1919
>>> c = Config(domain='api.ebay.com')
20-
>>> print(c.file())
21-
ebay.yaml
2220
>>> c.set('fname', 'tim')
2321
>>> c.get('fname')
2422
'tim'

ebaysdk/shopping/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __init__(self, **kwargs):
4646
uri -- API endpoint uri (default: /shopping)
4747
appid -- eBay application id
4848
siteid -- eBay country site id (default: 0 (US))
49-
compatibility -- version number (default: 799)
49+
version -- version number (default: 799)
5050
https -- execute of https (default: True)
5151
proxy_host -- proxy hostname
5252
proxy_port -- proxy port number

tests/__init__.py

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1 @@
1-
# -*- coding: utf-8 -*-
21

3-
'''
4-
© 2012-2013 eBay Software Foundation
5-
Authored by: Tim Keefer
6-
Licensed under CDDL 1.0
7-
'''
8-
9-
import sys
10-
import unittest
11-
import doctest
12-
import ebaysdk.utils
13-
import ebaysdk.config
14-
import ebaysdk.response
15-
import ebaysdk.connection
16-
import ebaysdk.http
17-
import ebaysdk.shopping
18-
import ebaysdk.trading
19-
import ebaysdk.merchandising
20-
import ebaysdk.soa.finditem
21-
import ebaysdk.finding
22-
import ebaysdk.poller.orders
23-
import ebaysdk.inventorymanagement
24-
25-
# does not pass with python3.3
26-
try:
27-
import ebaysdk.parallel
28-
except ImportError:
29-
pass
30-
31-
32-
def getTestSuite():
33-
suite = unittest.TestSuite()
34-
35-
suite.addTest(doctest.DocTestSuite(ebaysdk.poller.orders))
36-
suite.addTest(doctest.DocTestSuite(ebaysdk.utils))
37-
suite.addTest(doctest.DocTestSuite(ebaysdk.config))
38-
suite.addTest(doctest.DocTestSuite(ebaysdk.response))
39-
suite.addTest(doctest.DocTestSuite(ebaysdk.connection))
40-
# suite.addTest(doctest.DocTestSuite(ebaysdk.http))
41-
suite.addTest(doctest.DocTestSuite(ebaysdk.shopping))
42-
suite.addTest(doctest.DocTestSuite(ebaysdk.trading))
43-
suite.addTest(doctest.DocTestSuite(ebaysdk.merchandising))
44-
suite.addTest(doctest.DocTestSuite(ebaysdk.finding))
45-
suite.addTest(doctest.DocTestSuite(ebaysdk.inventorymanagement))
46-
47-
if not sys.version_info[0] >= 3 \
48-
and sys.modules.has_key('grequests') is True:
49-
# suite.addTest(doctest.DocTestSuite(ebaysdk.parallel))
50-
pass
51-
52-
# inside only
53-
# suite.addTest(doctest.DocTestSuite(ebaysdk.soa.finditem))
54-
55-
return suite
56-
57-
runner = unittest.TextTestRunner()
58-
runner.run(getTestSuite())

tests/test_base.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# -*- coding: utf-8 -*-
2+
3+
'''
4+
© 2012-2013 eBay Software Foundation
5+
Authored by: Tim Keefer
6+
Licensed under CDDL 1.0
7+
'''
8+
9+
from __future__ import absolute_import
10+
import os
11+
import sys
12+
import unittest
13+
import doctest
14+
import ebaysdk.utils
15+
import ebaysdk.config
16+
import ebaysdk.response
17+
import ebaysdk.connection
18+
import ebaysdk.http
19+
import ebaysdk.shopping
20+
import ebaysdk.trading
21+
import ebaysdk.merchandising
22+
import ebaysdk.soa.finditem
23+
import ebaysdk.finding
24+
import ebaysdk.poller.orders
25+
import ebaysdk.inventorymanagement
26+
27+
# does not pass with python3.3
28+
try:
29+
import ebaysdk.parallel
30+
except ImportError:
31+
pass
32+
33+
os.environ.setdefault("EBAY_YAML", "ebay.yaml")
34+
35+
36+
class TestBase(unittest.TestCase):
37+
38+
def doctest(self, module):
39+
doctest.testmod(module, raise_on_error=True, verbose=False)
40+
41+
def test_run_doctest_poller(self):
42+
self.doctest(ebaysdk.poller.orders)
43+
44+
def test_run_doctest_utils(self):
45+
self.doctest(ebaysdk.utils)
46+
47+
def test_run_doctest_config(self):
48+
self.doctest(ebaysdk.config)
49+
50+
def test_run_doctest_response(self):
51+
self.doctest(ebaysdk.response)
52+
53+
def test_run_doctest_connection(self):
54+
self.doctest(ebaysdk.connection)
55+
56+
def test_run_doctest_shopping(self):
57+
self.doctest(ebaysdk.shopping)
58+
59+
def test_run_doctest_trading(self):
60+
self.doctest(ebaysdk.trading)
61+
62+
def test_run_doctest_merchandising(self):
63+
self.doctest(ebaysdk.merchandising)
64+
65+
def test_run_doctest_finding(self):
66+
self.doctest(ebaysdk.finding)
67+
68+
def test_run_doctest_inventorymanagement(self):
69+
self.doctest(ebaysdk.inventorymanagement)
70+
71+
def test_grequests(self):
72+
if not sys.version_info[0] >= 3 \
73+
and sys.modules.has_key('grequests') is True:
74+
75+
# self.doctest(ebaysdk.parallel)
76+
pass
77+
78+
if __name__ == '__main__':
79+
unittest.main()

tests/test_errors.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# -*- coding: utf-8 -*-
2+
3+
'''
4+
© 2012-2013 eBay Software Foundation
5+
Authored by: Tim Keefer
6+
Licensed under CDDL 1.0
7+
'''
8+
9+
from __future__ import absolute_import
10+
import os
11+
import unittest
12+
import ebaysdk.shopping
13+
import lxml
14+
15+
os.environ.setdefault("EBAY_YAML", "ebay.yaml")
16+
17+
class TestErrors(unittest.TestCase):
18+
19+
def test_single_item(self):
20+
connection = ebaysdk.shopping.Connection(debug=True, version='799')
21+
22+
for i in range(20):
23+
connection.execute('GetSingleItem', {
24+
'ItemID': '262809803926',
25+
'version': '981',
26+
'IncludeSelector': ['Variations']
27+
})
28+
self.assertEqual(connection.response.status_code, 200)
29+
self.assertEqual(type(connection.response.dom()), lxml.etree._Element)
30+
31+
if __name__ == '__main__':
32+
unittest.main()
33+
34+
"""
35+
<?xml version='1.0' encoding='utf-8'?><GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents"><IncludeSelector>Variations</I
36+
ncludeSelector><ItemID>262809803926</ItemID><version>981</version></GetSingleItemRequest>
37+
2017-02-28 06:18:42,156 ebaysdk [DEBUG]:total time=0.478377819061
38+
2017-02-28 06:18:42,156 ebaysdk [DEBUG]:execute: verb=GetSingleItem data={'ItemID': '262809803926', 'version': 981, 'IncludeSelector': 'Variations'}
39+
2017-02-28 06:18:42,157 ebaysdk [DEBUG]:REQUEST (3ff5f071-04c3-40c0-a4f0-57f04a9e9972): POST http://open.api.ebay.com/shopping
40+
2017-02-28 06:18:42,157 ebaysdk [DEBUG]:headers={'Content-Length': '219', 'X-EBAY-API-REQUEST-ENCODING': 'XML', 'X-EBAY-API-VERSION': '799', 'User-Agent': 'eBaySDK/2.1.4 Pytho
41+
n/2.7.6 Linux/3.13.0-91-generic', 'X-EBAY-SDK-REQUEST-ID': '3ff5f071-04c3-40c0-a4f0-57f04a9e9972', 'X-EBAY-API-SITE-ID': '0', 'X-EBAY-API-CALL-NAME': 'GetSingleItem', 'Content
42+
-Type': 'text/xml', 'X-EBAY-API-APP-ID': 'LogoGrab-logograb-PRD-42f530923-a70f22b2'}
43+
2017-02-28 06:18:42,157 ebaysdk [DEBUG]:body=<?xml version='1.0' encoding='utf-8'?><GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents"><IncludeSelector>Variations</I
44+
ncludeSelector><ItemID>262809803926</ItemID><version>981</version></GetSingleItemRequest>
45+
2017-02-28 06:18:42,511 ebaysdk [DEBUG]:RESPONSE (3ff5f071-04c3-40c0-a4f0-57f04a9e9972):
46+
2017-02-28 06:18:42,511 ebaysdk [DEBUG]:elapsed time=0:00:00.354254
47+
2017-02-28 06:18:42,511 ebaysdk [DEBUG]:status code=500
48+
2017-02-28 06:18:42,511 ebaysdk [DEBUG]:headers={'breadcrumbid': 'ID-slc4b03c-6483-stratus-slc-ebay-com-53764-1487075486325-0-1105919761', 'content-length': '25', 'accept-enco
49+
ding': 'identity', 'x-ebay-api-request-encoding': 'XML', 'x-ebay-api-version': '799', 'user-agent': 'eBaySDK/2.1.4 Python/2.7.6 Linux/3.13.0-91-generic', 'connection': 'keep-a
50+
live', 'x-ebay-sdk-request-id': '3ff5f071-04c3-40c0-a4f0-57f04a9e9972', 'x-ebay-api-site-id': '0', 'x-ebay-api-call-name': 'GetSingleItem', 'content-type': 'text/plain;charset
51+
=utf-8', 'x-forwarded-for': '52.19.146.95', 'x-ebay-api-app-id': 'LogoGrab-logograb-PRD-42f530923-a70f22b2'}
52+
2017-02-28 06:18:42,511 ebaysdk [DEBUG]:content=an internal error occured
53+
2017-02-28 06:18:42,512 ebaysdk [DEBUG]:response parse failed: Start tag expected, '<' not found, line 1, column 1
54+
ERROR - 2017-02-28 06:18:42,512 - utils.firehose_util - MainProcess - MainThread: Shopping Call error: {"ItemID": "262809803926", "version": 981, "IncludeSelector": "Variation
55+
s"}
56+
Traceback (most recent call last):
57+
File "/home/ubuntu/logograb2-detection-server/utils/firehose_util.py", line 235, in make_ebay_request
58+
r = Shopping(appid=app_id, config_file=None, debug=True).execute('GetSingleItem', api_pars)
59+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/connection.py", line 124, in execute
60+
self.error_check()
61+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/connection.py", line 209, in error_check
62+
estr = self.error()
63+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/connection.py", line 321, in error
64+
error_array.extend(self._get_resp_body_errors())
65+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/shopping/__init__.py", line 188, in _get_resp_body_errors
66+
dom = self.response.dom()
67+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/response.py", line 233, in dom
68+
return self._dom
69+
File "/usr/local/lib/python2.7/dist-packages/ebaysdk/response.py", line 220, in __getattr__
70+
return getattr(self._obj, name)
71+
AttributeError: 'Response' object has no attribute '_dom'
72+
"""

0 commit comments

Comments
 (0)