I have defined the following table in a model:

def define_customers():
    db.define_table('customers',
        Field('ActiveMember', 'boolean', default=True, label=T("Active")),
        Field('FirstName', required=True, requires=IS_NOT_EMPTY(), 
label=T("First name")),
        Field('LastName', required=True, requires=IS_NOT_EMPTY(), 
label=T("Last name")),
        Field('Gender', required=True, 
requires=IS_EMPTY_OR(IS_IN_SET(('Female', 'Male'))), represent=lambda 
value, row: value or "", label=T("Gender")),
        Field('DateOfBirth', 'date', required=False, 
requires=IS_EMPTY_OR(IS_DATE(format=session.date_format)), 
            represent=represent_date, label=T("Date of birth")),
        Field('Birthday', 'date', compute=_set_birthday, readable=False, 
writable=False, requires=IS_EMPTY_OR(IS_DATE(format=session.date_format)), 
            represent=lambda value, row: value.strftime("%B %d")),
        Field('Address', required=False, label=T("Address")),
        Field('PostalCode', required=False, label=T("Postal code")),
        Field('City', required=False, represent=lambda value, row: value or 
"", label=T("City")),
        Field('Country', required=False, represent=lambda value, row: value 
or "", label=T("Country")),
        Field('Email', required=True, 
requires=IS_EMAIL(error_message=T('Invalid email address')), 
label=T("Email")),
        Field('Newsletter', 'boolean', default=True, label=T("Newsletter")),
        Field('Telnr', required=False, label=T("Telephone")),
        Field('Mobnr', required=False, label=T("Mobile")),
        Field('Keynr', required=False, represent=lambda value, row: value 
or "", label=T("Key Number")),
        Field('DiscoveryID', db.discovery, 
requires=IS_EMPTY_OR(IS_IN_DB(db,'discovery.id','%(Name)s')), 
represent=lambda value, row: discovery_dict.get(value, None), 
label=T("Discovery")),
        Field('PracticeLevelID', db.practicelevels, 
requires=IS_EMPTY_OR(IS_IN_DB(db,'practicelevels.id','%(Name)s')), 
represent=lambda value, row: levels_dict.get(value, None), 
label=T("Level")),
        Field('LocationID', db.locations, 
requires=IS_EMPTY_OR(IS_IN_DB(db,'locations.id','%(Name)s')), 
represent=lambda value, row: locations_dict.get(value, None), 
label=T("Location")),
        Field('Comments', 'text', label=T("Comments")),
        format='%(FirstName)s %(LastName)s',
        singular=T("Customer"), plural=T("Customers")
        )
    
However when I try to populate it in a test using the py.test sample from 
here: https://github.com/viniciusban/web2py.test I get an error in 
populate.py on line 234:

                elif field.type == 'string':
                    if hasattr(field.requires, 'options'):
>                       options = field.requires.options(zero=False)
E                       TypeError: _options() got an unexpected keyword 
argument 'zero'

gluon/contrib/populate.py:234: TypeError


This is the code in the test function:
    from gluon.contrib.populate import populate
    populate(web2py.db.discovery, 3)
    populate(web2py.db.locations, 2)
    populate(web2py.db.practicelevels, 3)
    web2py.db.commit()
    populate(web2py.db.customers, 3)
    web2py.db.commit()


Could someone tell me what I'm doing wrong or whether this might be a bug?

Thank you!

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to