Changeset 3513

Show
Ignore:
Timestamp:
09/05/07 12:23:41 (1 year ago)
Author:
pobrien
Message:

Make sure a callable default value works for the Entity fields.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Schevo/schevo/field.py

    r3442 r3513  
    10731073            kw_allow = [ANY] 
    10741074        cls._init_args(kw_allow) 
    1075         for name, value in kw.iteritems(): 
    1076             setattr(cls, name, value) 
     1075        super(_EntityBase, cls)._init_kw(kw) 
    10771076 
    10781077    @classmethod 
  • trunk/Schevo/schevo/test/test_field_entity.py

    r3509 r3513  
    1111 
    1212    body = ''' 
     13 
     14    def default_bar(): 
     15        return db.Bar.findone(stuff=1) or UNASSIGNED 
    1316 
    1417    class Foo(E.Entity): 
     
    2629        stuff = f.integer() 
    2730 
     31        _key(stuff) 
     32 
    2833        _sample_unittest = [ 
    2934            (1, ), 
     
    3540 
    3641        foo = f.entity('Foo') 
    37         bar = f.entity('Bar'
     42        bar = f.entity('Bar', default=default_bar
    3843        foobar = f.entity('Foo', 'Bar', required=False) 
    3944    ''' 
  • trunk/Schevo/schevo/test/test_field_entitylist.py

    r3509 r3513  
    1414 
    1515    body = ''' 
     16 
     17        def default_foo_list(): 
     18            foo = db.Foo.findone(name='default foo') 
     19            return [foo] 
     20 
     21 
    1622        class Foo(E.Entity): 
    1723 
     
    2026            _key(name) 
    2127 
     28            _initial = [ 
     29                ('default foo', ), 
     30                ] 
     31 
    2232 
    2333        class Bar(E.Entity): 
     
    3747        class Bee(E.Entity): 
    3848 
    39             foo_list = f.entity_list('Foo', allow_duplicates=False) 
     49            foo_list = f.entity_list('Foo', allow_duplicates=False, 
     50                                     default=default_foo_list) 
    4051 
    4152            _key(foo_list) 
  • trunk/Schevo/schevo/test/test_field_entityset.py

    r3509 r3513  
    1313 
    1414    body = ''' 
     15        def default_foo_set(): 
     16            foo = db.Foo.findone(name='default foo') 
     17            return set([foo]) 
     18 
     19 
    1520        class Foo(E.Entity): 
    1621 
     
    1823 
    1924            _key(name) 
     25 
     26            _initial = [ 
     27                ('default foo', ), 
     28                ] 
    2029 
    2130 
     
    2938        class Baz(E.Entity): 
    3039 
    31             foo_set = f.entity_set('Foo', min_size=1
     40            foo_set = f.entity_set('Foo', min_size=1, default=default_foo_set
    3241 
    3342