def test_to_json(self): """ Based on https://dev.twitter.com/rest/reference/get/statuses/show/:id All .to_json does is calling .dumps on output from .to_dict thus the majority of test cases are actually in test_to_dict.py. """ doc = Elem() doc.coordinates = None doc.favorited = False doc.truncated = False doc.created_at = 'Wed Jun 06 20:07:10 +0000 2012' doc.id_str = '210462857140252672' doc.entities.urls[0].expanded_url = 'https://dev.twitter.com/terms/display-guidelines' doc.entities.urls[0].url = 'https://t.co/Ed4omjYs' doc.entities.urls[0].indices = [76, 97] doc.entities.urls[0].display_url = 'dev.twitter.com/terms/display-\u2026' doc.entities.hashtags[0].text = 'Twitterbird' doc.entities.hashtags[0].indices = [19, 31] doc.entities.user_mentions = [] doc.in_reply_to_user_id_str = 2 doc.contributors = [14927800] doc.text = "Along with our new #Twitterbird, we've also updated our Display Guidelines: https://t.co/Ed4omjYs ^JC" doc.retweet_count = 66 doc.in_reply_to_status_id_str = None doc.id = 210462857140252672 doc.geo = None doc.retweeted = True doc.possibly_sensitive = False doc.in_reply_to_user_id = None doc.place = None doc.user.profile_sidebar_fill_color = 'DDEEF6' doc.user.profile_sidebar_border_color = 'C0DEED' doc.user.profile_background_tile = False doc.user.name = 'Twitter API' doc.user.profile_image_url = 'http://a0.twimg.com/profile_images/2284174872/7df3h38zabcvjylnyfe3_normal.png' doc.user.created_at = 'Wed May 23 06:01:13 +0000 2007' doc.user.location = 'San Francisco, CA' doc.user.follow_request_sent = False doc.user.profile_link_color = '0084B4' doc.user.is_translator = False doc.user.id_str = '6253282' doc.user.entities.url.urls[0].expanded_url = None doc.user.entities.url.urls[0].url = 'http://dev.twitter.com' doc.user.entities.url.urls[0].indices = [0, 22] doc.user.entities.description.urls = [] doc.user.default_profile = True doc.user.contributors_enabled = True doc.user.favourites_count = 24 doc.user.url = 'http://dev.twitter.com' doc.user.profile_image_url_https = 'https://si0.twimg.com/profile_images/2284174872/7df3h38zabcvjylnyfe3_normal.png' doc.user.utc_offset = -28800 doc.user.id = 6253282 doc.user.profile_use_background_image = True doc.user.listed_count = 10774 doc.user.profile_text_color = '333333' doc.user.lang = 'en' doc.user.followers_count = 1212963 doc.user.protected = False doc.user.notifications = None doc.user.profile_background_image_url_https = 'https://si0.twimg.com/images/themes/theme1/bg.png' doc.user.profile_background_color = 'C0DEED' doc.user.verified = True doc.user.geo_enabled = True doc.user.time_zone = 'Pacific Time (US & Canada)' doc.user.description = 'The Real Twitter API.' doc.user.default_profile_image = False doc.user.profile_background_image_url = 'http://a0.twimg.com/images/themes/theme1/bg.png' doc.user.statuses_count = 3333 doc.user.friends_count = 31 doc.user.following = True doc.user.show_all_inline_media = False doc.user.screen_name = 'twitterapi' doc.in_reply_to_screen_name = None doc.source = 'web' doc.in_reply_to_status_id = None expected = { 'coordinates': None, 'favorited': False, 'truncated': False, 'created_at': 'Wed Jun 06 20:07:10 +0000 2012', 'id_str': '210462857140252672', 'entities': { 'urls': [ {'expanded_url': 'https://dev.twitter.com/terms/display-guidelines', 'url': 'https://t.co/Ed4omjYs', 'indices': [76, 97], 'display_url': 'dev.twitter.com/terms/display-\u2026'} ], 'hashtags': [ {'text': 'Twitterbird', 'indices': [19, 31]} ], 'user_mentions': [] }, 'in_reply_to_user_id_str': 2, 'contributors': [ 14927800 ], 'text': "Along with our new #Twitterbird, we've also updated our Display Guidelines: https://t.co/Ed4omjYs ^JC", 'retweet_count': 66, 'in_reply_to_status_id_str': None, 'id': 210462857140252672, 'geo': None, 'retweeted': True, 'possibly_sensitive': False, 'in_reply_to_user_id': None, 'place': None, 'user': { 'profile_sidebar_fill_color': 'DDEEF6', 'profile_sidebar_border_color': 'C0DEED', 'profile_background_tile': False, 'name': 'Twitter API', 'profile_image_url': 'http://a0.twimg.com/profile_images/2284174872/7df3h38zabcvjylnyfe3_normal.png', 'created_at': 'Wed May 23 06:01:13 +0000 2007', 'location': 'San Francisco, CA', 'follow_request_sent': False, 'profile_link_color': '0084B4', 'is_translator': False, 'id_str': '6253282', 'entities': { 'url': { 'urls': [ {'expanded_url': None, 'url': 'http://dev.twitter.com', 'indices': [0, 22] } ] }, 'description': {'urls': []} }, 'default_profile': True, 'contributors_enabled': True, 'favourites_count': 24, 'url': 'http://dev.twitter.com', 'profile_image_url_https': 'https://si0.twimg.com/profile_images/2284174872/7df3h38zabcvjylnyfe3_normal.png', 'utc_offset': -28800, 'id': 6253282, 'profile_use_background_image': True, 'listed_count': 10774, 'profile_text_color': '333333', 'lang': 'en', 'followers_count': 1212963, 'protected': False, 'notifications': None, 'profile_background_image_url_https': 'https://si0.twimg.com/images/themes/theme1/bg.png', 'profile_background_color': 'C0DEED', 'verified': True, 'geo_enabled': True, 'time_zone': 'Pacific Time (US & Canada)', 'description': 'The Real Twitter API.', 'default_profile_image': False, 'profile_background_image_url': 'http://a0.twimg.com/images/themes/theme1/bg.png', 'statuses_count': 3333, 'friends_count': 31, 'following': True, 'show_all_inline_media': False, 'screen_name': 'twitterapi' }, 'in_reply_to_screen_name': None, 'source': 'web', 'in_reply_to_status_id': None } out = loads(doc.to_json()) self.assertDictEqual(expected, out)