You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by ra...@apache.org on 2010/05/05 20:34:38 UTC

svn commit: r941418 - in /incubator/wookie/trunk/connector/python: TestWookieService.py wookie/WookieConnectorService.py wookie/WookieServerConnection.py wookie/widget/Instance.py

Author: raido
Date: Wed May  5 18:34:37 2010
New Revision: 941418

URL: http://svn.apache.org/viewvc?rev=941418&view=rev
Log:
Removed "maximize" attribute and methods
Add simple connection testing

Modified:
    incubator/wookie/trunk/connector/python/TestWookieService.py
    incubator/wookie/trunk/connector/python/wookie/WookieConnectorService.py
    incubator/wookie/trunk/connector/python/wookie/WookieServerConnection.py
    incubator/wookie/trunk/connector/python/wookie/widget/Instance.py

Modified: incubator/wookie/trunk/connector/python/TestWookieService.py
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/connector/python/TestWookieService.py?rev=941418&r1=941417&r2=941418&view=diff
==============================================================================
--- incubator/wookie/trunk/connector/python/TestWookieService.py (original)
+++ incubator/wookie/trunk/connector/python/TestWookieService.py Wed May  5 18:34:37 2010
@@ -16,7 +16,7 @@ from wookie.widget import Property
 from wookie.widget import User
 
 # @param host, path, api_key, shareddatakey
-WookieConn = WookieConnectorService.WookieConnectorService('localhost:8080', '/wookie', 'TEST','localhost_python')
+WookieConn = WookieConnectorService.WookieConnectorService('localhost:8081', '/wookie', 'TEST','localhost_python')
 # set Widget user
 WookieConn.setUser("demo_python", "demo_python_screenName")
 
@@ -27,49 +27,54 @@ print WookieConn.getCurrentUser().getScr
 prop1 = Property.Property("test", "proov")
 print prop1.getName()+":"+prop1.getValue()+":"+prop1.getIsPublic()
 
-# get available widgets
-widgetList = WookieConn.getAvailableWidgets()
+connectionAlive = WookieConn.getConnection().Test()
 
-a = widgetList[12]
-b = widgetList[11]
-#a = 'http://www.getwookie.org/widgets/weather'   
-
-# create or get instances
-
-retrievedInstance = WookieConn.getOrCreateInstance(a)
-if retrievedInstance:
-    print retrievedInstance.getTitle()+'\n'+retrievedInstance.getUrl()
-    print retrievedInstance.getWidth()+'\n'+retrievedInstance.getHeight()
-
-    # add participant, returns string "true" (if exists, or created) or "false"
-    print WookieConn.addParticipant(retrievedInstance, User.User("ants_python", "ants_screenName"))
-    
-    # get participants, return list of participants
-    users = WookieConn.getParticipants(retrievedInstance)
-    print users[0].getLoginName()+":"+users[0].getScreenName()+":"+users[0].getThumbnail()
-
-    # delete participant
-    WookieConn.deleteParticipant(retrievedInstance, User.User("ants_python"));
-
-    # add property
-    # params: name, value, is_public
-    prop2 = Property.Property("python_prop", "demo")
-    WookieConn.setProperty(retrievedInstance, prop2)
-
-    # get property, return property objec, if failed then "false"
-    retrievedProp = WookieConn.getProperty(retrievedInstance, prop2)
-    print retrievedProp.getValue()
-    
-    #delete property, returns "true" or "false"
-    WookieConn.deleteProperty(retrievedInstance, prop2)
-
-retrievedInstance2 = WookieConn.getOrCreateInstance(b)
-if retrievedInstance2:
-    print retrievedInstance2.getTitle()+'\n'+retrievedInstance2.getUrl()
-    print retrievedInstance2.getWidth()+'\n'+retrievedInstance2.getHeight()
-
-
-retrievedInstance3 = WookieConn.getOrCreateInstance('http://www.getwookie.org/widgets/weather')
-if retrievedInstance3:
-    print retrievedInstance3.getTitle()+'\n'+retrievedInstance3.getUrl()
-    print retrievedInstance3.getWidth()+'\n'+retrievedInstance3.getHeight()
+print connectionAlive
+
+if connectionAlive:
+    # get available widgets
+    widgetList = WookieConn.getAvailableWidgets()
+
+    a = widgetList[12]
+    b = widgetList[11]
+    #a = 'http://www.getwookie.org/widgets/weather'
+
+    # create or get instances
+
+    retrievedInstance = WookieConn.getOrCreateInstance(a)
+    if retrievedInstance:
+        print retrievedInstance.getTitle()+'\n'+retrievedInstance.getUrl()
+        print retrievedInstance.getWidth()+'\n'+retrievedInstance.getHeight()
+
+        # add participant, returns string "true" (if exists, or created) or "false"
+        print WookieConn.addParticipant(retrievedInstance, User.User("ants_python", "ants_screenName"))
+
+        # get participants, return list of participants
+        users = WookieConn.getParticipants(retrievedInstance)
+        print users[0].getLoginName()+":"+users[0].getScreenName()+":"+users[0].getThumbnail()
+
+        # delete participant
+        WookieConn.deleteParticipant(retrievedInstance, User.User("ants_python"));
+
+        # add property
+        # params: name, value, is_public
+        prop2 = Property.Property("python_prop", "demo")
+        WookieConn.setProperty(retrievedInstance, prop2)
+
+        # get property, return property objec, if failed then "false"
+        retrievedProp = WookieConn.getProperty(retrievedInstance, prop2)
+        print retrievedProp.getValue()
+
+        #delete property, returns "true" or "false"
+        WookieConn.deleteProperty(retrievedInstance, prop2)
+
+    retrievedInstance2 = WookieConn.getOrCreateInstance(b)
+    if retrievedInstance2:
+        print retrievedInstance2.getTitle()+'\n'+retrievedInstance2.getUrl()
+        print retrievedInstance2.getWidth()+'\n'+retrievedInstance2.getHeight()
+
+
+    retrievedInstance3 = WookieConn.getOrCreateInstance('http://www.getwookie.org/widgets/weather')
+    if retrievedInstance3:
+        print retrievedInstance3.getTitle()+'\n'+retrievedInstance3.getUrl()
+        print retrievedInstance3.getWidth()+'\n'+retrievedInstance3.getHeight()

Modified: incubator/wookie/trunk/connector/python/wookie/WookieConnectorService.py
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/connector/python/wookie/WookieConnectorService.py?rev=941418&r1=941417&r2=941418&view=diff
==============================================================================
--- incubator/wookie/trunk/connector/python/wookie/WookieConnectorService.py (original)
+++ incubator/wookie/trunk/connector/python/wookie/WookieConnectorService.py Wed May  5 18:34:37 2010
@@ -47,13 +47,13 @@ class WookieConnectorService:
 
     # get current connection object
     # @return WookieServerConnection
-    
+
     def getConnection(self):
         return self.__connection
-        
+
     # get all available widgets
     # @return list of widgets
-    
+
     def getAvailableWidgets(self):
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
         socket.request('GET', self.getConnection().getPath()+'/widgets?all=true')
@@ -64,26 +64,26 @@ class WookieConnectorService:
         except Exception:
             print 'Error getting widgets XML'
         socket.close()
-        
+
         ##define widgetList
         widgetList = []
         if xmldoc:
             widgetsAvailable = xmldoc.getElementsByTagName('widget')
             if widgetsAvailable:
                 for widget in widgetsAvailable:
-                    
+
                     ##get widget title
                     widgetTitle = self.getText(widget.getElementsByTagName('title'));
-                        
+
                      ##get widget url
                     widgetGuid = widget.getAttribute('identifier')
-                        
+
                     ##get widget description
                     widgetDesc = self.getText(widget.getElementsByTagName('description'));
-                        
+
                     ##get widget icon
                     widgetIcon = self.getText(widget.getElementsByTagName('icon'));
-                    
+
                     if widgetTitle and widgetGuid:
                       widgetList.append(Widget.Widget(widgetGuid, widgetTitle, widgetDesc, widgetIcon))
             else:
@@ -128,7 +128,7 @@ class WookieConnectorService:
                 response = socket.getresponse()
             except ResponseNotReady:
                 response = socket.getresponse()
-                
+
             if response.status == 201:
                 response = socket.getresponse()
             instanceXml = response.read()
@@ -144,7 +144,7 @@ class WookieConnectorService:
     # Parse widget instance XML
     # @param xml, guid
     # @return new widget instance
-        
+
     def parseInstance(self, xml, guid):
         newInstance = ''
         xmlDoc = ''
@@ -157,8 +157,7 @@ class WookieConnectorService:
             title = self.getText(xmlDoc.getElementsByTagName('title'))
             height = self.getText(xmlDoc.getElementsByTagName('height'))
             width = self.getText(xmlDoc.getElementsByTagName('width'))
-            isMaximizable = self.getText(xmlDoc.getElementsByTagName('maximize'))
-            newInstance = Instance.Instance(url, guid, title, height, width, isMaximizable)
+            newInstance = Instance.Instance(url, guid, title, height, width)
         return newInstance
 
     # Get list of participants
@@ -174,7 +173,7 @@ class WookieConnectorService:
         queryString += '&userid='+self.getCurrentUser().getLoginName()
         queryString += '&shareddatakey='+self.getConnection().getSharedDataKey()
         queryString += '&widgetid='+widgetInstance.getGuid()
-        
+
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
         socket.request('GET', self.getConnection().getPath()+'/participants'+queryString)
         try:
@@ -197,7 +196,7 @@ class WookieConnectorService:
                         participantsList.append(newUser)
             except Exception:
                 print "Could not parse participants XML"
-            
+
             return participantsList
         if response.status != 200:
             print "HTTP Status: "+response.status+"\nResponseText: "+response.read()
@@ -208,7 +207,7 @@ class WookieConnectorService:
     # Add participant to current widget instance
     # @param widgetInstance, userInstance
     # @return true if added, false otherwise
-    
+
     def addParticipant(self, widgetInstance, userInstance):
         params = urllib.urlencode({'api_key': self.getConnection().getApiKey(),
                                    'userid': self.getCurrentUser().getLoginName(),
@@ -217,7 +216,7 @@ class WookieConnectorService:
                                    'participant_id': userInstance.getLoginName(),
                                    'participant_display_name': userInstance.getScreenName(),
                                    'participant_thumbnail_url': userInstance.getThumbnail()})
-        
+
         headers = {"Content-type": "application/x-www-form-urlencoded",
                        "Accept": "text/xml"}
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
@@ -248,7 +247,7 @@ class WookieConnectorService:
         queryString += '&shareddatakey='+self.getConnection().getSharedDataKey()
         queryString += '&widgetid='+widgetInstance.getGuid()
         queryString += '&participant_id='+userInstance.getLoginName()
-        
+
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
         socket.request('DELETE', self.getConnection().getPath()+'/participants'+queryString)
         try:
@@ -282,7 +281,7 @@ class WookieConnectorService:
                                    'propertyname': propertyInstance.getName(),
                                    'propertyvalue': propertyInstance.getValue(),
                                    'is_public': propertyInstance.getIsPublic()})
-        
+
         headers = {"Content-type": "application/x-www-form-urlencoded",
                        "Accept": "text/plain"}
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
@@ -315,7 +314,7 @@ class WookieConnectorService:
         queryString += '&shareddatakey='+self.getConnection().getSharedDataKey()
         queryString += '&widgetid='+widgetInstance.getGuid()
         queryString += '&propertyname='+propertyInstance.getName()
-        
+
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
         socket.request('DELETE', self.getConnection().getPath()+'/properties'+queryString)
         try:
@@ -345,7 +344,7 @@ class WookieConnectorService:
         queryString += '&shareddatakey='+self.getConnection().getSharedDataKey()
         queryString += '&widgetid='+widgetInstance.getGuid()
         queryString += '&propertyname='+propertyInstance.getName()
-        
+
         socket = httplib.HTTPConnection(self.getConnection().getUrl())
         socket.request('GET', self.getConnection().getPath()+'/properties'+queryString)
         try:

Modified: incubator/wookie/trunk/connector/python/wookie/WookieServerConnection.py
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/connector/python/wookie/WookieServerConnection.py?rev=941418&r1=941417&r2=941418&view=diff
==============================================================================
--- incubator/wookie/trunk/connector/python/wookie/WookieServerConnection.py (original)
+++ incubator/wookie/trunk/connector/python/wookie/WookieServerConnection.py Wed May  5 18:34:37 2010
@@ -11,12 +11,16 @@
 #  See the License for the specific language governing permissions and
 # limitations under the License.
 #
+
+import httplib;
+from xml.dom import minidom
+
 class WookieServerConnection:
     __url = ''
     __api_key = ''
     __shareddatakey = ''
     __wookiePath = '/wookie'
-    
+
     def __init__(self, wookieUrl, api_key, shareddatakey, wookiePath = ''):
         self.__url = wookieUrl
         self.__api_key = api_key
@@ -29,9 +33,24 @@ class WookieServerConnection:
 
     def getPath(self):
         return self.__wookiePath
-    
+
     def getApiKey(self):
         return self.__api_key
-    
+
     def getSharedDataKey(self):
         return self.__shareddatakey
+
+    def Test(self):
+        socket = httplib.HTTPConnection(self.getUrl())
+        socket.request('GET', self.getPath()+'/widgets?all=true')
+        response = socket.getresponse()
+        try:
+            xmlDoc = minidom.parseString(response.read())
+            anyWidgetsFound = xmlDoc.getElementsByTagName('widget')
+            if anyWidgetsFound:
+                return "1"
+            else:
+                return
+        except Exception:
+            return
+        socket.close()

Modified: incubator/wookie/trunk/connector/python/wookie/widget/Instance.py
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/connector/python/wookie/widget/Instance.py?rev=941418&r1=941417&r2=941418&view=diff
==============================================================================
--- incubator/wookie/trunk/connector/python/wookie/widget/Instance.py (original)
+++ incubator/wookie/trunk/connector/python/wookie/widget/Instance.py Wed May  5 18:34:37 2010
@@ -17,48 +17,40 @@ class Instance:
     __title = ''
     __height = ''
     __width = ''
-    __maximize = ''
 
-    def __init__(self, newUrl, newGuid, newTitle, newHeight, newWidth, newMaximize):
+    def __init__(self, newUrl, newGuid, newTitle, newHeight, newWidth):
         self.setUrl(newUrl)
-	self.setGuid(newGuid)
+        self.setGuid(newGuid)
         self.setTitle(newTitle)
         self.setHeight(newHeight)
         self.setWidth(newWidth)
-        self.setMaximize(newMaximize)
 
     def setUrl(self, newUrl):
         self.__url = newUrl
-	
+
     def setGuid(self, newGuid):
-	    self.__guid = newGuid
-	    
+        self.__guid = newGuid
+
     def setTitle(self, newTitle):
-	    self.__title = newTitle
-	
+        self.__title = newTitle
+
     def setHeight(self, newHeight):
-	    self.__height = newHeight
-	
+        self.__height = newHeight
+
     def setWidth(self, newWidth):
-	    self.__width = newWidth
-	
-    def setMaximize(self, newMaximize):
-	    self.__maximize = newMaximize
-	
+        self.__width = newWidth
+
     def getUrl(self):
-	    return self.__url
-	
+        return self.__url
+
     def getGuid(self):
-	    return self.__guid
-		
+        return self.__guid
+
     def getTitle(self):
-	    return self.__title
-	
+        return self.__title
+
     def getHeight(self):
-	    return self.__height
-	
+        return self.__height
+
     def getWidth(self):
-	    return self.__width
-	
-    def isMaximize(self):
-	    return self.__maximize
+        return self.__width