[Checkins] SVN: PluggableAuthService/trunk/ #50: Don't barf on None as initial value for 'lines' properties.

Tres Seaver tseaver at palladion.com
Tue Apr 24 12:53:48 EDT 2007


Log message for revision 74710:
  #50:  Don't barf on None as initial value for 'lines' properties.

Changed:
  U   PluggableAuthService/trunk/UserPropertySheet.py
  U   PluggableAuthService/trunk/tests/test_UserPropertySheet.py

-=-
Modified: PluggableAuthService/trunk/UserPropertySheet.py
===================================================================
--- PluggableAuthService/trunk/UserPropertySheet.py	2007-04-24 16:53:31 UTC (rev 74709)
+++ PluggableAuthService/trunk/UserPropertySheet.py	2007-04-24 16:53:47 UTC (rev 74710)
@@ -111,7 +111,8 @@
             value = kw.get( id )
 
             if ptype == 'lines':
-                value = tuple( value )
+                if value is not None:
+                    value = tuple( value )
 
             self._properties[ id ] = value
 

Modified: PluggableAuthService/trunk/tests/test_UserPropertySheet.py
===================================================================
--- PluggableAuthService/trunk/tests/test_UserPropertySheet.py	2007-04-24 16:53:31 UTC (rev 74709)
+++ PluggableAuthService/trunk/tests/test_UserPropertySheet.py	2007-04-24 16:53:47 UTC (rev 74710)
@@ -70,7 +70,7 @@
         self.assertEqual( len( ups.propertyItems() ), 0 )
         self.assertEqual( len( ups.propertyIds() ), 0 )
 
-    def _checkStockSchema( self, ups ):
+    def _checkStockSchema( self, ups, values_are_none=False ):
 
         self.failIf( ups.hasProperty( 'x' ) )
         self.failUnless( ups.hasProperty( 's' ) )
@@ -84,47 +84,71 @@
 
         self.assertEqual( ups.getPropertyType( 's' ), 'string' )
         self.assertEqual( ups.propertyInfo( 's' )[ 'type' ], 'string' )
-        self.assertEqual( ups.getProperty( 's' ), self._STRING_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 's' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 's' ), self._STRING_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'i' ), 'int' )
         self.assertEqual( ups.propertyInfo( 'i' )[ 'type' ], 'int' )
-        self.assertEqual( ups.getProperty( 'i' ), self._INT_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'i' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 'i' ), self._INT_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'f' ), 'float' )
         self.assertEqual( ups.propertyInfo( 'f' )[ 'type' ], 'float' )
-        self.assertEqual( ups.getProperty( 'f' ), self._FLOAT_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'f' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 'f' ), self._FLOAT_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'n' ), 'long' )
         self.assertEqual( ups.propertyInfo( 'n' )[ 'type' ], 'long' )
-        self.assertEqual( ups.getProperty( 'n' ), self._LONG_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'n' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 'n' ), self._LONG_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'd' ), 'date' )
         self.assertEqual( ups.propertyInfo( 'd' )[ 'type' ], 'date' )
-        self.assertEqual( ups.getProperty( 'd' ), self._DATE_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'd' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 'd' ), self._DATE_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'b' ), 'boolean' )
         self.assertEqual( ups.propertyInfo( 'b' )[ 'type' ], 'boolean' )
-        self.assertEqual( ups.getProperty( 'b' ), self._BOOL_VALUE )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'b' ), None )
+        else:
+            self.assertEqual( ups.getProperty( 'b' ), self._BOOL_VALUE )
 
         self.assertEqual( ups.getPropertyType( 'l' ), 'lines' )
         self.assertEqual( ups.propertyInfo( 'l' )[ 'type' ], 'lines' )
 
-        got = ups.getProperty( 'l' )
-        self.assertEqual( type( got ), type( () ) )
-        self.assertEqual( len( got ), len( self._LIST_VALUE ) )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 'l' ), None )
+        else:
+            got = ups.getProperty( 'l' )
+            self.assertEqual( type( got ), type( () ) )
+            self.assertEqual( len( got ), len( self._LIST_VALUE ) )
 
-        for i in range( len( self._LIST_VALUE ) ):
-            self.assertEqual( got[i], self._LIST_VALUE[i] )
+            for i in range( len( self._LIST_VALUE ) ):
+                self.assertEqual( got[i], self._LIST_VALUE[i] )
 
         self.assertEqual( ups.getPropertyType( 't' ), 'lines' )
         self.assertEqual( ups.propertyInfo( 't' )[ 'type' ], 'lines' )
 
-        got = ups.getProperty( 't' )
-        self.assertEqual( type( got ), type( () ) )
-        self.assertEqual( len( got ), len( self._TUPLE_VALUE ) )
+        if values_are_none:
+            self.assertEqual( ups.getProperty( 't' ), None )
+        else:
+            got = ups.getProperty( 't' )
+            self.assertEqual( type( got ), type( () ) )
+            self.assertEqual( len( got ), len( self._TUPLE_VALUE ) )
 
-        for i in range( len( self._TUPLE_VALUE ) ):
-            self.assertEqual( got[i], self._TUPLE_VALUE[i] )
+            for i in range( len( self._TUPLE_VALUE ) ):
+                self.assertEqual( got[i], self._TUPLE_VALUE[i] )
 
         pmap = ups.propertyMap()
         self.assertEqual( len( pmap ), len( self._SCHEMA ) )
@@ -169,6 +193,15 @@
 
         self._checkStockSchema( ups )
 
+
+    def test_ctor_w_schema_no_values(self):
+
+        ups = self._makeOne( 'w_schema'
+                           , self._SCHEMA
+                           )
+
+        self._checkStockSchema( ups, values_are_none=True )
+
 if __name__ == "__main__":
     unittest.main()
 



More information about the Checkins mailing list