testtumblr.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import unittest
  2. from mock import Mock, patch, MagicMock
  3. from hackathon.scripts.tumblr import getBlogInfo
  4. import time
  5. class TumblrTests(unittest.TestCase):
  6. def setUp(self):
  7. self.blog_uri = 'http://api.tumblr.com/v2/blog/'
  8. self.consumer_key = 'KrSbAc9cYLmIgVAn1D21FjRR97QWsutNMxkPDFBxo8CMWtMk4M'
  9. self.consumer_secret = 'lKWMtL2Lj8zr5pY51PVqT8ugeoG0DjrdgoFewM0QTSyJ12jP8d'
  10. self.user = 'twitterthecomic'
  11. def testGetBlogInfo(self):
  12. '''Test for tumblr.py getBlogInfo method '''
  13. consumer_key = self.consumer_key
  14. consumer_secret = self.consumer_secret
  15. user = self.user
  16. # Construct url for blog info
  17. self.blog_info = self.blog_uri + user + ".tumblr.com/info?api_key="+ consumer_key
  18. with patch('hackathon.scripts.tumblr.getBlogInfo') as mock_getBlogInfo:
  19. # Mock the return value of this method
  20. mock_getBlogInfo.return_value = {'meta': {'status': 200, 'msg': 'OK'},
  21. 'response': {'blog': {'ask_anon': False, 'submission_page_title': 'Submit A Tweet',
  22. 'updated': 1413846741, 'description': 'Comics based on the greatest tweets of our generation. \nOrganized by <a href="https://twitter.com/VectorBelly">@VectorBelly</a>.',
  23. 'title': 'Twitter: The Comic', 'url': 'http://twitterthecomic.tumblr.com/', 'ask_page_title': 'Submit A Tweet',
  24. 'share_likes': False, 'posts': 146, 'is_nsfw': False, 'ask': False, 'name': 'twitterthecomic'}}}
  25. jsonlist = mock_getBlogInfo.return_value
  26. self.meta = jsonlist['meta']
  27. self.response = jsonlist['response']
  28. self.blog = self.response['blog']
  29. self.blog['blog'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(self.blog['updated']))
  30. self.assertEqual(getBlogInfo(user),self.blog)