Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Zahra Rajabi
tweepy
Commits
d141c4f0
Commit
d141c4f0
authored
May 03, 2014
by
Jordi Riera
Browse files
Attempt to improve the error message if parser argument is not well set.
parent
517a0f25
Changes
2
Hide whitespace changes
Inline
Side-by-side
tests/test_api.py
View file @
d141c4f0
...
...
@@ -5,7 +5,8 @@ import os
from
nose
import
SkipTest
from
tweepy
import
Friendship
,
MemoryCache
,
FileCache
from
tweepy
import
Friendship
,
MemoryCache
,
FileCache
,
API
from
tweepy.parsers
import
Parser
from
config
import
TweepyTestCase
,
username
,
use_replay
test_tweet_id
=
'266367358078169089'
...
...
@@ -13,8 +14,8 @@ tweet_text = 'testing 1000'
"""Unit tests"""
class
TweepyErrorTests
(
unittest
.
TestCase
):
class
TweepyErrorTests
(
unittest
.
TestCase
):
def
testpickle
(
self
):
"""Verify exceptions can be pickled and unpickled."""
import
pickle
...
...
@@ -26,13 +27,16 @@ class TweepyErrorTests(unittest.TestCase):
self
.
assertEqual
(
e
.
reason
,
e2
.
reason
)
self
.
assertEqual
(
e
.
response
,
e2
.
response
)
class
TweepyAPITests
(
TweepyTestCase
):
class
TweepyAPITests
(
TweepyTestCase
):
# TODO: Actually have some sort of better assertion
def
testgetoembed
(
self
):
data
=
self
.
api
.
get_oembed
(
test_tweet_id
)
self
.
assertEqual
(
data
[
'author_name'
],
"Twitter"
)
def
testparserargumenthastobeaparserinstance
(
self
):
""" Testing the issue https://github.com/tweepy/tweepy/issues/421"""
self
.
assertRaises
(
TypeError
,
API
,
self
.
auth
,
parser
=
Parser
)
def
testhometimeline
(
self
):
self
.
api
.
home_timeline
()
...
...
@@ -80,6 +84,7 @@ class TweepyAPITests(TweepyTestCase):
def
testlookupusers
(
self
):
def
check
(
users
):
self
.
assertEqual
(
len
(
users
),
2
)
check
(
self
.
api
.
lookup_users
(
user_ids
=
[
6844292
,
6253282
]))
check
(
self
.
api
.
lookup_users
(
screen_names
=
[
'twitterapi'
,
'twitter'
]))
...
...
@@ -210,11 +215,11 @@ class TweepyAPITests(TweepyTestCase):
}
updated
=
self
.
api
.
update_profile
(
**
profile
)
self
.
api
.
update_profile
(
name
=
original
.
name
,
url
=
original
.
url
,
location
=
original
.
location
,
description
=
original
.
description
name
=
original
.
name
,
url
=
original
.
url
,
location
=
original
.
location
,
description
=
original
.
description
)
for
k
,
v
in
profile
.
items
():
for
k
,
v
in
profile
.
items
():
if
k
==
'email'
:
continue
self
.
assertEqual
(
getattr
(
updated
,
k
),
v
)
...
...
@@ -228,7 +233,7 @@ class TweepyAPITests(TweepyTestCase):
def
testcreatedestroyblock
(
self
):
self
.
api
.
create_block
(
'twitter'
)
self
.
api
.
destroy_block
(
'twitter'
)
self
.
api
.
create_friendship
(
'twitter'
)
# restore
self
.
api
.
create_friendship
(
'twitter'
)
# restore
def
testblocks
(
self
):
self
.
api
.
blocks
()
...
...
@@ -279,7 +284,8 @@ class TweepyAPITests(TweepyTestCase):
self
.
api
.
list_members
(
'applepie'
,
'stars'
)
def
testshowlistmember
(
self
):
self
.
assertTrue
(
self
.
api
.
show_list_member
(
owner_screen_name
=
'applepie'
,
slug
=
'stars'
,
screen_name
=
'NathanFillion'
))
self
.
assertTrue
(
self
.
api
.
show_list_member
(
owner_screen_name
=
'applepie'
,
slug
=
'stars'
,
screen_name
=
'NathanFillion'
))
def
testsubscribeunsubscribelist
(
self
):
params
=
{
...
...
@@ -309,16 +315,17 @@ class TweepyAPITests(TweepyTestCase):
"""Return True if a given place_name is in place_list."""
return
any
([
x
.
full_name
.
lower
()
==
place_name
.
lower
()
for
x
in
place_list
])
twitter_hq
=
self
.
api
.
geo_similar_places
(
lat
=
37
,
long
=
-
122
,
name
=
'Twitter HQ'
)
twitter_hq
=
self
.
api
.
geo_similar_places
(
lat
=
37
,
long
=-
122
,
name
=
'Twitter HQ'
)
# Assumes that twitter_hq is first Place returned...
self
.
assertEqual
(
twitter_hq
[
0
].
id
,
'3bdf30ed8b201f31'
)
# Test various API functions using Austin, TX, USA
self
.
assertEqual
(
self
.
api
.
geo_id
(
id
=
'c3f37afa9efcf94b'
).
full_name
,
'Austin, TX'
)
self
.
assertTrue
(
place_name_in_list
(
'Austin, TX'
,
self
.
api
.
reverse_geocode
(
lat
=
30.267370168467806
,
long
=
-
97.74261474609375
)))
# Austin, TX, USA
self
.
api
.
reverse_geocode
(
lat
=
30.267370168467806
,
long
=-
97.74261474609375
)))
# Austin, TX, USA
class
TweepyCacheTests
(
unittest
.
TestCase
):
class
TweepyCacheTests
(
unittest
.
TestCase
):
timeout
=
2.0
memcache_servers
=
[
'127.0.0.1:11211'
]
# must be running for test to pass
...
...
@@ -326,12 +333,12 @@ class TweepyCacheTests(unittest.TestCase):
# test store and get
self
.
cache
.
store
(
'testkey'
,
'testvalue'
)
self
.
assertEqual
(
self
.
cache
.
get
(
'testkey'
),
'testvalue'
,
'Stored value does not match retrieved value'
)
'Stored value does not match retrieved value'
)
# test timeout
sleep
(
self
.
timeout
)
self
.
assertEqual
(
self
.
cache
.
get
(
'testkey'
),
None
,
'Cache entry should have expired'
)
'Cache entry should have expired'
)
# test cleanup
if
do_cleanup
:
...
...
@@ -360,5 +367,6 @@ class TweepyCacheTests(unittest.TestCase):
self
.
cache
.
flush
()
os
.
rmdir
(
'cache_test_dir'
)
if
__name__
==
'__main__'
:
unittest
.
main
()
tweepy/api.py
View file @
d141c4f0
...
...
@@ -7,7 +7,7 @@ import mimetypes
from
tweepy.binder
import
bind_api
from
tweepy.error
import
TweepError
from
tweepy.parsers
import
ModelParser
from
tweepy.parsers
import
ModelParser
,
Parser
from
tweepy.utils
import
list_to_csv
...
...
@@ -32,6 +32,16 @@ class API(object):
self
.
retry_errors
=
retry_errors
self
.
timeout
=
timeout
self
.
parser
=
parser
or
ModelParser
()
# Attempt to explain more clearly the parser argument requirements
# https://github.com/tweepy/tweepy/issues/421
#
parser_type
=
Parser
if
not
isinstance
(
self
.
parser
,
parser_type
):
raise
TypeError
(
'"parser" argument has to be an instance of "{}". It is currently a {}.'
.
format
(
parser_type
.
__name__
,
type
(
self
.
parser
)
)
)
""" statuses/home_timeline """
home_timeline
=
bind_api
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment