forked from bear/python-twitter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_media.py
119 lines (102 loc) · 5.85 KB
/
test_media.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# -*- coding: utf-8 -*-
import json
import unittest
import twitter
class MediaTest(unittest.TestCase):
SIZES = {'large': {'h': 175, 'resize': 'fit', 'w': 333},
'medium': {'h': 175, 'resize': 'fit', 'w': 333},
'small': {'h': 175, 'resize': 'fit', 'w': 333},
'thumb': {'h': 150, 'resize': 'crop', 'w': 150}}
RAW_JSON = '''{"display_url": "pic.twitter.com/lX5LVZO", "expanded_url": "http://twitter.com/fakekurrik/status/244204973972410368/photo/1", "id": 244204973989187584, "id_str": "244204973989187584", "indices": [44,63], "media_url": "http://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png", "media_url_https": "https://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png", "sizes": {"large": {"h": 175, "resize": "fit", "w": 333}, "medium": {"h": 175, "resize": "fit", "w": 333}, "small": {"h": 175, "resize": "fit", "w": 333}, "thumb": {"h": 150, "resize": "crop", "w": 150}}, "type": "photo", "url": "http://t.co/lX5LVZO"}'''
SAMPLE_JSON = '''{"display_url": "pic.twitter.com/lX5LVZO", "expanded_url": "http://twitter.com/fakekurrik/status/244204973972410368/photo/1", "id": 244204973989187584, "media_url": "http://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png", "media_url_https": "https://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png", "sizes": {"large": {"h": 175, "resize": "fit", "w": 333}, "medium": {"h": 175, "resize": "fit", "w": 333}, "small": {"h": 175, "resize": "fit", "w": 333}, "thumb": {"h": 150, "resize": "crop", "w": 150}}, "type": "photo", "url": "http://t.co/lX5LVZO"}'''
def _GetSampleMedia(self):
return twitter.Media(
id=244204973989187584,
expanded_url='http://twitter.com/fakekurrik/status/244204973972410368/photo/1',
display_url='pic.twitter.com/lX5LVZO',
url='http://t.co/lX5LVZO',
media_url_https='https://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png',
media_url='http://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png',
sizes=MediaTest.SIZES,
type='photo')
def testInit(self):
'''Test the twitter.Media constructor'''
media = twitter.Media(
id=244204973989187584,
display_url='pic.twitter.com/7a2z7S8tKL',
expanded_url='http://twitter.com/NASAJPL/status/672830989895254016/photo/1',
url='https://t.co/7a2z7S8tKL',
media_url_https='https://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg',
media_url='http://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg',
type='photo')
def testProperties(self):
'''Test all of the twitter.Media properties'''
media = twitter.Media()
media.id = 244204973989187584
media.display_url = 'pic.twitter.com/7a2z7S8tKL'
media.expanded_url = 'http://twitter.com/NASAJPL/status/672830989895254016/photo/1'
media.url = 'https://t.co/7a2z7S8tKL'
media.media_url_https = 'https://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg'
media.media_url = 'http://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg'
media.type = 'photo'
self.assertEqual('pic.twitter.com/7a2z7S8tKL', media.display_url)
self.assertEqual(
'http://twitter.com/NASAJPL/status/672830989895254016/photo/1',
media.expanded_url)
self.assertEqual('https://t.co/7a2z7S8tKL', media.url)
self.assertEqual(
'https://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg',
media.media_url_https)
self.assertEqual(
'http://pbs.twimg.com/media/CVZgOC3UEAELUcL.jpg',
media.media_url)
self.assertEqual('photo', media.type)
def testAsJsonString(self):
'''Test the twitter.User AsJsonString method'''
self.assertEqual(MediaTest.SAMPLE_JSON,
self._GetSampleMedia().AsJsonString())
def testAsDict(self):
'''Test the twitter.Media AsDict method'''
media = self._GetSampleMedia()
data = media.AsDict()
self.assertEqual(
'pic.twitter.com/lX5LVZO',
data['display_url'])
self.assertEqual(
'http://twitter.com/fakekurrik/status/244204973972410368/photo/1',
data['expanded_url'])
self.assertEqual('http://t.co/lX5LVZO', data['url'])
self.assertEqual(
'https://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png',
data['media_url_https'])
self.assertEqual(
'http://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png',
data['media_url'])
self.assertEqual('photo', data['type'])
def testEq(self):
'''Test the twitter.Media __eq__ method'''
media = twitter.Media()
media.id = 244204973989187584
media.display_url = 'pic.twitter.com/lX5LVZO'
media.expanded_url = 'http://twitter.com/fakekurrik/status/244204973972410368/photo/1'
media.url = 'http://t.co/lX5LVZO'
media.media_url_https = 'https://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png'
media.media_url = 'http://pbs.twimg.com/media/A2OXIUcCUAAXj9k.png'
media.type = 'photo'
media.sizes = MediaTest.SIZES
self.assertEqual(media, self._GetSampleMedia())
def testNewFromJsonDict(self):
'''Test the twitter.Media NewFromJsonDict method'''
data = json.loads(MediaTest.RAW_JSON)
media = twitter.Media.NewFromJsonDict(data)
self.assertEqual(self._GetSampleMedia(), media)
def test_media_info(self):
with open('testdata/get_status_promoted_video_tweet.json', 'r') as f:
tweet = twitter.Status.NewFromJsonDict(json.loads(f.read()))
media = tweet.media[0]
self.assertTrue(isinstance(tweet.media, list))
self.assertTrue(media.video_info)
self.assertTrue(media.video_info.get('variants', None))
self.assertTrue(
media.video_info.get('variants', None)[0]['url'],
'https://video.twimg.com/amplify_video/778025997606105089/vid/320x180/5Qr0z_HeycC2DvRj.mp4')