[Zope-dev] Re: Unit Test Failures

Philipp von Weitershausen philipp at weitershausen.de
Mon Dec 19 11:15:46 EST 2005


Tres Seaver wrote:
> >>>Well, if you look closer you find that it uses pprint.pformat which always outputs
> >>>the same on all machines (because it provides output sorted by the dictionary key).
> >>
> >>I see that in the implementation;  it isn't documented as part of
> >>pprint's contract, however.
> >
> >
> > Yes it is: http://python.org/doc/current/lib/module-pprint.html
>
> I must be blind, but I don't see any occurrence of 'sort' on that page
> or on the "PrettyPrinter Objects" page under it, nor in the pydoc output
> nor the module docstring.

Now I see what you mean by "contract". You're right, I guess it isn't documented then, but
perhaps it should be.

> >>But the dictionary here is an *artifact* -- what you are really trying
> >>to do would be expressed as individual assertions in a classic unit test:
> >>
> >>  self.failUnless(IFiveUtilityRegistry.providedBy(utility_service))
> >>  self.failIf(zapi.getSiteManager() is zapi.getGlobalSiteManager())
> >>
> >>etc.  If you really want to test equality of dictionaries, then
> >>'self.assertEqual' does the trick just fine.
> >
> >
> > All I need is a means to get information from the view (which is our guinnea pig
> > component that tries to look up local stuff) to the functional test. Views typically
> > output strings, whether we're in doctests or not. So, in the end we're comparing
> > strings. pprint'ing a dictionary is just a convenient, but perhaps misleading way of
> > doing this.
>
> In that case, I would have added methods to the view and asserted their
> return values, I think, even in a doctest.  De gustibus, perhaps.

Yup, I should probably do this.

Philipp


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


More information about the Zope-Dev mailing list