from random import choice
import time
+import pickle
+import json
from twitter import Twitter, NoAuth, OAuth, read_token_file, TwitterHTTPError
+from twitter.api import TwitterDictResponse, TwitterListResponse
from twitter.cmdline import CONSUMER_KEY, CONSUMER_SECRET
noauth = NoAuth()
oauth = OAuth(*read_token_file('tests/oauth_creds')
+ (CONSUMER_KEY, CONSUMER_SECRET))
-twitter = Twitter(domain='api.twitter.com',
- auth=oauth,
- api_version='1')
twitter11 = Twitter(domain='api.twitter.com',
auth=oauth,
api_version='1.1')
-twitter_na = Twitter(domain='api.twitter.com', auth=noauth, api_version='1')
twitter11_na = Twitter(domain='api.twitter.com', auth=noauth, api_version='1.1')
def test_API_set_tweet():
random_tweet = "A random tweet " + get_random_str()
- twitter.statuses.update(status=random_tweet)
+ twitter11.statuses.update(status=random_tweet)
time.sleep(2)
- recent = twitter.statuses.user_timeline()
+ recent = twitter11.statuses.home_timeline()
assert recent
assert isinstance(recent.rate_limit_remaining, int)
assert isinstance(recent.rate_limit_reset, int)
def test_API_set_unicode_tweet():
random_tweet = u"A random tweet with unicode üøπ" + get_random_str()
- twitter.statuses.update(status=random_tweet)
+ twitter11.statuses.update(status=random_tweet)
- recent = twitter.statuses.user_timeline()
+ recent = twitter11.statuses.home_timeline()
assert recent
assert random_tweet == recent[0]['text']
def test_search():
- t_search = Twitter(domain='search.twitter.com')
- results = t_search.search(q='foo')
+ results = twitter11.search.tweets(q='foo')
assert results
-def test_get_trends():
- # This is one method of inserting parameters, using named
- # underscore params.
- world_trends = twitter.trends._woeid(_woeid=1)
- assert world_trends
-
-
-def test_get_trends_2():
- # This is a nicer variation of the same call as above.
- world_trends = twitter.trends._(1)
- assert world_trends
-
-
def test_get_trends_3():
# Of course they broke it all again in 1.1...
assert twitter11.trends.place(_id=1)
+
def test_TwitterHTTPError_raised_for_invalid_oauth():
test_passed = False
try:
test_passed = True
assert test_passed
+
+def test_picklability():
+ res = TwitterDictResponse({'a': 'b'})
+ p = pickle.dumps(res)
+ res2 = pickle.loads(p)
+ assert res == res2
+ assert res2['a'] == 'b'
+
+ res = TwitterListResponse([1, 2, 3])
+ p = pickle.dumps(res)
+ res2 = pickle.loads(p)
+ assert res == res2
+ assert res2[2] == 3
+
+
+def test_jsonifability():
+ res = TwitterDictResponse({'a': 'b'})
+ p = json.dumps(res)
+ res2 = json.loads(p)
+ assert res == res2
+ assert res2['a'] == 'b'
+
+ res = TwitterListResponse([1, 2, 3])
+ p = json.dumps(res)
+ res2 = json.loads(p)
+ assert res == res2
+ assert res2[2] == 3