My solution lies below, but I think it not quite elegant.

def edit():
    '''
    >>> request.args.append('news')
    >>> request.args.append(None)
    >>> request.extension = 'html'

    >>> from gluon.storage import Storage
    >>> user = dict(reset_password_key='',
    ...         first_name='t...@example.com',
    ...         last_name='',
    ...         password=None,
    ...         registration_key='',
    ...         id=2,
    ...         email='t...@example.com')

    >>> auth.environment.session.auth = Storage(user=user,
last_visit=datetime.datetime(2011, 1, 31, 16, 55, 52,
137567),expiration=3600)

    >>> assert(edit()['form'] != None)

    >>> request.args.append('news')
    >>> request.args.append(1)
    >>> request.extension = 'html'

    >>> assert(edit()['form'] != None)

    '''

    if request.args(1) == None:
        form=crud.create(db[request.args(0)])
    else:
        form=crud.update(db[request.args(0)],request.args(1))

    return dict(form=form)

Reply via email to