Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.51 KB | None | 0 0
  1. #!/usr/bin/python
  2. import unittest, json
  3. import tweepy
  4.  
  5. CONSUMER_KEY = "Wf5sFPeWIyOHzxMSBELXUcAtr"
  6. CONSUMER_SECRET = "QGQ86mj2JZWJZfHlgRXt9VspG1UkDIR8A5R66IUQvb8wXoJI6v"
  7.  
  8. access_token = {}
  9.  
  10. MAX_MESSAGE_LENGTH = 140
  11.  
  12. # Twitter Error Codes
  13. TWITTER_ERRORS = {
  14.     'status_too_long': 186,
  15.     'status_missing': 170
  16. }
  17.  
  18. def setUpModule():
  19.     global access_token
  20.     authfp = open('auth.json', 'w+')
  21.     try:
  22.         access_token = json.load(authfp)
  23.     except ValueError:
  24.         auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
  25.         auth.secure = True
  26.         print 'Please authorize: ' + auth.get_authorization_url()
  27.         auth.get_access_token(raw_input('PIN: ').strip())
  28.         access_token = {
  29.             'key': auth.access_token.key,
  30.             'secret': auth.access_token.secret
  31.         }
  32.         json.dump(access_token, authfp)
  33.  
  34. class TwitterTest(unittest.TestCase):
  35.     def setUp(self):
  36.         auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
  37.         auth.set_access_token(access_token['key'], access_token['secret'])
  38.         self.tweetapi = tweepy.API(auth)
  39.  
  40.     def push_status(self, status):
  41.         st = self.tweetapi.update_status(status)
  42.         self.tweetapi.destroy_status(st.id)
  43.  
  44.     def test_empty_message(self):
  45.         with self.assertRaises(tweepy.TweepError) as cm:
  46.             self.push_status('')
  47.         self.assertEqual(cm.exception.message[0]['code'],
  48.                          TWITTER_ERRORS['status_missing'])
  49.  
  50.     def test_long_message(self):
  51.         with self.assertRaises(tweepy.TweepError) as cm:
  52.             self.push_status('Z' * (MAX_MESSAGE_LENGTH + 1))
  53.         self.assertEqual(cm.exception.message[0]['code'],
  54.                          TWITTER_ERRORS['status_too_long'])
  55.  
  56.     def test_ascii_messsage(self):
  57.         self.push_status('Test ascii message')
  58.  
  59.     def test_utf_message(self):
  60.         self.push_status(u'Test utf8 message')
  61.  
  62.     def test_additional_messages(self):
  63.         try:
  64.             addfp = open('additional.json','r')
  65.             for msg in json.load(addfp):
  66.                 if isinstance(msg, list):
  67.                     msg, code = msg
  68.                     with self.assertRaises(tweepy.TweepError) as cm:
  69.                         self.push_status(msg)
  70.                     self.assertEqual(cm.exception.message[0]['code'], code)
  71.                 else:
  72.                     self.push_status(msg)
  73.             addfp.close()
  74.         except IOError:
  75.             pass
  76.  
  77. if __name__ == "__main__":
  78.         unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement