update-status-with-media add update with media feature
authorVivien Meyet <vmeyet@work4labs.com>
Thu, 21 Nov 2013 11:00:52 +0000 (11:00 +0000)
committerAaron Hill <aa1ronham@gmail.com>
Sun, 22 Dec 2013 03:46:26 +0000 (22:46 -0500)
tests/test_api.py
tweepy/api.py

index c21a11edd5b24b21aba3000f774166ad0390ba0a..9a4c0d917e0c4b3a365ff646a1e959ad76f099ce 100644 (file)
@@ -70,6 +70,10 @@ class TweepyAPITests(TweepyTestCase):
         deleted = self.api.destroy_status(id=update.id)
         self.assertEqual(deleted.id, update.id)
 
+    def testupdatestatuswithmedia(self):
+        update = self.api.update_with_media('examples/banner.png', status=tweet_text)
+        self.assertEqual(update.text, tweet_text)
+
     def testgetuser(self):
         u = self.api.get_user('twitter')
         self.assertEqual(u.screen_name, 'twitter')
index 5555bef8de8b13e9df11ecf96725cbd9a778ba0b..7ea5aa6224023a580c85410ec6825f61ec8533ac 100644 (file)
@@ -89,6 +89,22 @@ class API(object):
         require_auth = True
     )
 
+    """ statuses/update_with_media """
+    def update_with_media(self, filename, *args, **kwargs):
+        headers, post_data = API._pack_image(filename, 3072, form_field='media[]')
+        kwargs.update({'headers': headers, 'post_data': post_data})
+
+        return bind_api(
+            path='/statuses/update_with_media.json',
+            method = 'POST',
+            payload_type='status',
+            allowed_param = [
+                'status', 'possibly_sensitive', 'in_reply_to_status_id', 'lat', 'long',
+                'place_id', 'display_coordinates'
+            ],
+            require_auth=True
+        )(self, *args, **kwargs)
+
     """ statuses/destroy """
     destroy_status = bind_api(
         path = '/statuses/destroy/{id}.json',