Changeset 236

Show
Ignore:
Timestamp:
07/04/06 15:53:55 (3 years ago)
Author:
matt
Message:

Return the final composite value as a dict using the names provided as the
composition as the dict's keys.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/composite/formal/examples/composite.py

    r235 r236  
    3535            value = None 
    3636        else: 
    37             value = [component[1].validate(value) for component, value in zip(self.composition, value)] 
     37            value = dict([ 
     38                    (name, type.validate(value)) 
     39                    for (name, type), value in zip(self.composition, value)]) 
    3840 
    3941        # Allow normal validation to run on the new value 
  • branches/composite/formal/test/test_types.py

    r235 r236  
    134134        self.assertEquals(Composite([ 
    135135            ('foo', formal.String()) 
    136             ]).validate([u'bar']), [u'bar']) 
    137         self.assertEquals(Composite([('foo', 
    138             formal.Integer())]).validate([123]), [123]) 
     136            ]).validate([u'bar']), {'foo': u'bar'}) 
     137        self.assertEquals(Composite([ 
     138            ('foo', formal.Integer()) 
     139            ]).validate([123]), {'foo': 123}) 
    139140 
    140141    def test_multisame(self): 
     
    142143            ('foo', formal.String()), 
    143144            ('bar', formal.String()) 
    144             ]).validate([u'foo', u'bar']), [u'foo', u'bar']
     145            ]).validate([u'foo', u'bar']), {'foo': u'foo', 'bar': u'bar'}
    145146        self.assertEquals(Composite([ 
    146147            ('foo', formal.Integer()), 
    147148            ('bar', formal.Integer()), 
    148             ]).validate([123, 456]), [123, 456]
     149            ]).validate([123, 456]), {'foo': 123, 'bar': 456}
    149150 
    150151    def test_multidiff(self): 
     
    152153            ('foo', formal.String()), 
    153154            ('bar', formal.Integer()) 
    154             ]).validate([u'foo', 123]), [u'foo', 123]
    155         self.assertEquals(Composite([ 
    156             ('foo', formal.String()), 
    157             ('bar', formal.Integer()) 
    158             ]).validate([u'foo', None]), [u'foo', None]
     155            ]).validate([u'foo', 123]), {'foo': u'foo', 'bar': 123}
     156        self.assertEquals(Composite([ 
     157            ('foo', formal.String()), 
     158            ('bar', formal.Integer()) 
     159            ]).validate([u'foo', None]), {'foo': u'foo', 'bar': None}
    159160 
    160161    def test_none(self): 
     
    165166            ('bar', formal.Integer()) 
    166167            ]).validate([None, None]), None) 
     168 
     169    def test_missing(self): 
    167170        missing = object() 
    168171        self.assertEquals(Composite([('foo', 
     
    172175        self.assertEquals(Composite([ 
    173176            ('foo', formal.String(required=True)) 
    174             ]).validate([u'foo']), [u'foo']
    175         self.assertEquals(Composite([ 
    176             ('foo', formal.String(required=True)), 
    177             ('bar', formal.Integer(required=True)) 
    178             ]).validate([u'foo', 123]), [u'foo', 123]
     177            ]).validate([u'foo']), {'foo': u'foo'}
     178        self.assertEquals(Composite([ 
     179            ('foo', formal.String(required=True)), 
     180            ('bar', formal.Integer(required=True)) 
     181            ]).validate([u'foo', 123]), {'foo': u'foo', 'bar': 123}
    179182        self.assertEquals(Composite([ 
    180183            ('foo', formal.String(required=True)) 
     
    189192            ('foo', formal.String(required=True)), 
    190193            ('bar', formal.Integer()) 
    191             ]).validate([u'foo', None]), [u'foo', None]
     194            ]).validate([u'foo', None]), {'foo': u'foo', 'bar': None}
    192195        self.assertEquals(Composite([ 
    193196            ('foo', formal.String(required=True)), 
     
    202205        self.assertEquals(Composite([ 
    203206            ('foo', formal.String()) 
    204             ], required=True).validate([u'foo']), [u'foo']
    205         self.assertEquals(Composite([ 
    206             ('foo', formal.String()), 
    207             ('bar', formal.Integer()) 
    208             ], required=True).validate([u'foo', None]), [u'foo', None]
    209         self.assertEquals(Composite([ 
    210             ('foo', formal.String()), 
    211             ('bar', formal.Integer()) 
    212             ], required=True).validate([None, 123]), [None, 123]
     207            ], required=True).validate([u'foo']), {'foo': u'foo'}
     208        self.assertEquals(Composite([ 
     209            ('foo', formal.String()), 
     210            ('bar', formal.Integer()) 
     211            ], required=True).validate([u'foo', None]), {'foo': u'foo', 'bar': None}
     212        self.assertEquals(Composite([ 
     213            ('foo', formal.String()), 
     214            ('bar', formal.Integer()) 
     215            ], required=True).validate([None, 123]), {'foo': None, 'bar': 123}
    213216        self.assertRaises(formal.FieldRequiredError, Composite([ 
    214217            ('foo', formal.String()) 
     
    223226            ('foo', formal.String(required=True)), 
    224227            ('bar', formal.Integer()) 
    225             ], required=True).validate([u'foo', None]), [u'foo', None]
    226         self.assertEquals(Composite([ 
    227             ('foo', formal.String(required=True)), 
    228             ('bar', formal.Integer()) 
    229             ], required=True).validate([u'foo', 123]), [u'foo', 123]
     228            ], required=True).validate([u'foo', None]), {'foo': u'foo', 'bar': None}
     229        self.assertEquals(Composite([ 
     230            ('foo', formal.String(required=True)), 
     231            ('bar', formal.Integer()) 
     232            ], required=True).validate([u'foo', 123]), {'foo': u'foo', 'bar': 123}
    230233        self.assertRaises(formal.FieldRequiredError, Composite([ 
    231234            ('foo', formal.String(required=True)),