conduit r1508 - in trunk: . conduit/modules/FacebookModule test/python-tests



Author: jstowers
Date: Sat Jun  7 04:16:47 2008
New Revision: 1508
URL: http://svn.gnome.org/viewvc/conduit?rev=1508&view=rev

Log:
2008-06-07  John Stowers  <john stowers gmail com>

	* conduit/modules/FacebookModule/FacebookModule.py: add _get_albums and
	_get_photos. Now someone just needs to implement get() around these
	
	* test/python-tests/TestDataProviderFacebook.py: Test new functions, and
	fix long standing bug where using image dataprovider tests would
	not work with facebook.



Modified:
   trunk/ChangeLog
   trunk/conduit/modules/FacebookModule/FacebookModule.py
   trunk/test/python-tests/TestDataProviderFacebook.py

Modified: trunk/conduit/modules/FacebookModule/FacebookModule.py
==============================================================================
--- trunk/conduit/modules/FacebookModule/FacebookModule.py	(original)
+++ trunk/conduit/modules/FacebookModule/FacebookModule.py	Sat Jun  7 04:16:47 2008
@@ -56,6 +56,26 @@
             return Rid(uid=rsp["pid"])
         except pyfacebook.FacebookError, f:
             raise Exceptions.SyncronizeError("Facebook Upload Error %s" % f)
+            
+    def _get_albums(self):
+        albums = []
+        try:
+            for a in self.fapi.photos.getAlbums(self.fapi.uid):
+                albums.append((a['name'], a['aid']))
+        except pyfacebook.FacebookError, f:
+            log.warn("Error getting album list: %s" % f)
+        return albums
+        
+    def _get_photos(self, albumID):
+        photos = {}
+        try:
+            for p in self.fapi.photos.get(aid=albumID):
+                #only return big photos
+                if p.get("src_big", ""):
+                    photos[p['pid']] = p
+        except pyfacebook.FacebookError, f:
+            log.warn("Error getting photos from album %s list: %s" % (albumID,f))
+        return photos
 
     def _login(self):
         """
@@ -78,13 +98,14 @@
         log.info("Trying Login")
         rsp = self.fapi.auth.getSession()
         return rsp.has_key("secret") and rsp.has_key("session_key")
-
+        
     def refresh(self):
         Image.ImageSink.refresh(self)
         if self.fapi.uid == None:
             self._login()
 
     def get_UID(self):
-        return ""
+        if self.fapi.uid == None:
+            return ""
         return self.fapi.uid
             

Modified: trunk/test/python-tests/TestDataProviderFacebook.py
==============================================================================
--- trunk/test/python-tests/TestDataProviderFacebook.py	(original)
+++ trunk/test/python-tests/TestDataProviderFacebook.py	Sat Jun  7 04:16:47 2008
@@ -7,7 +7,7 @@
 #setup the test
 test = SimpleTest(sinkName="FacebookSink")
 #Hack Facebook to use the system browser (it really needs to use the gtkmozembed one)
-facebook = test.get_dataprovider("FacebookSink").module
+facebook = test.get_sink().module
 facebook.browser = "system"
 
 #Log in
@@ -15,22 +15,21 @@
     facebook.refresh()
     ok("Logged in", True)
 except Exception, err:
-    ok("Logged in (%s)" % err, False)  
+    ok("Logged in (%s)" % err, False)
+    
+albums = facebook._get_albums()
+ok("Got %d albums" % len(albums), len(albums) > 0)
 
-#Perform image tests
-#test.do_image_dataprovider_tests(
-#        supportsGet=False,
-#        supportsDelete=False,
-#        safePhotoLUID=None
-#        )
+name, aid = albums[0]
+photos = facebook._get_photos(int(aid))
+ok("Got %d photos" % len(photos), len(photos) > 0)
 
-#Send a remote file
-f = Photo.Photo(URI="http://files.conduit-project.org/screenshot.png";)
-try:
-    rid = facebook.put(f, True)
-    ok("Upload a photo (%s) " % rid, True)
-except Exception, err:
-    ok("Upload a photo (%s)" % err, False)
+#Perform image tests
+test.do_image_dataprovider_tests(
+        supportsGet=False,
+        supportsDelete=False,
+        safePhotoLUID=None
+        )
 
 finished()
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]