[Zope3-Users] logging in in interactive shell?

Edward Zwart ed.zwart at softserv.ca
Tue Jun 23 12:45:41 EDT 2009


Thanks Simon, I just learned my mistake was I needed to start the
interactive prompt with bin/myproj-debug.exe.  I get the root obj for
free, and I even get all the buildout eggs in the path this way.  Life
is good!

However, I have another question now...

In the z3c.form documentation here:
http://pypi.python.org/pypi/z3c.form/1.9.0

In the section on Custom Widget Factories (CTRL + F "MyEditForm")

Even if I start my interactive prompt with myproj-debug.exe, the following line

>>> myEdit = MyEditForm(root[u'srichter'], TestRequest())

gives a KeyError (naturally).  I am guessing this refers to some
object representing Stephan's logged in credentials?  How is this
achieved?

I have a feeling that if I get that far, I may have all I need for a
good while!  :)

e.

On Tue, Jun 23, 2009 at 1:12 AM, Simon Elbaz<elbazsimon9 at gmail.com> wrote:
> Hi,
> the way I've seen to get the root Folder is:
>
> from zope.site import folder
> r_folder = folder.rootFolder()
>
> Regards
> Simon
>
>
> On Tue, Jun 23, 2009 at 9:36 AM, Edward Zwart <ed.zwart at softserv.ca> wrote:
>>
>> Is there an easy way to use the interactive shell as though I were the
>> logged in admin user?
>>
>> Following the documentation for z3c.form on Custom Widgets, I try the
>> following:
>>
>> from z3c.form import testing, form, field
>> testing.setupFormDefaults()
>> from z3c.form.testing import TestRequest
>> request = TestRequest()
>> testing.setUp(request)
>>
>> from z3c.form.browser import text
>>
>> class MyWidget(text.TextWidget):
>>        """My new widget."""
>>        klass = u'MyCSS'
>>
>> def MyFieldWidget(field, request):
>>        """IFieldWidget factory for MyWidget."""
>>        return widget.FieldWidget(field, MyWidget(request))
>>
>> class MyEditForm(form.EditForm):
>>
>>        fields = field.Fields(IPerson)
>>        fields['name'].widgetFactory = MyFieldWidget
>>
>>
>> myEdit = MyEditForm(root[u'srichter'], TestRequest())
>>
>> I get "root" is not defined.  So I figured out something like this...
>>
>> root = request.globs.get('root')
>>
>> If I try again, I get a KeyError (also if I use "admin").  In fact,
>> the root Folder object doesn't have anything in it at all.  (If I log
>> in through the ZMI, I have added some objects.)
>>
>> Is there a more correct way to get the root folder?  And to run these
>> tests from the prompt, can I do so as though I was logged in (like I
>> do through the ZMI)?
>>
>> Somewhat related, everytime I use the interactive prompt, I copy/paste
>> from bin/test-script.py to set the path to include all my buildout
>> eggs folders.  Is there a better way to do this?
>>
>> Thanks again.
>>
>> e.
>> _______________________________________________
>> Zope3-users mailing list
>> Zope3-users at zope.org
>> http://mail.zope.org/mailman/listinfo/zope3-users
>
>


More information about the Zope3-users mailing list