[Grok-dev] Testing a container which uses a custom NameChooser

Luciano Ramalho luciano at ramalho.org
Tue Jul 31 07:57:59 EDT 2007


On 7/31/07, Darryl Cousins <darryl at darrylcousins.net.nz> wrote:
> import grok
> grok.grok('kirbi')

Thanks a lot, Darryl!

I saw those calls in the grok tests themselves, but I wasn't sure they
were needed when testing grok apps (as opposed to testing grok
itself).

I'll contribute a testing mini-tutorial...

Now I have two further questions concerning the same test (further along):

1) Should I convert *all* strings into unicode for use with Zope 3 or
does it still use or prefer plain strings for some purposes? I noticed
the __name__ of the contained objects was converted by Zope to
unicode.

2) In the pac.py module [1] there is a subscriber declared like this:

@grok.subscribe(Book, grok.IObjectAddedEvent)
def bookAdded(book, event):
    if not book.title:
        pac = book.__parent__
        pac.pending_isbns.append(book.isbn13)

[1] http://svn.zope.org/Sandbox/luciano/kirbi/src/kirbi/pac.py?rev=78499&view=markup
(or http://tinyurl.com/3ybsed)

The last line of the doctest reproduced below aims to test that event,
but it's failing. However, when I try the live app, it works. Do I
need some additional registration to make the test pass?

Regards,,

Luciano

<TEST>

==============================================
Pac: The Public Access Catalog container class
==============================================

A Pac is designed to store book records. Let's create one and put a few
books in it::

  >>> import grok
  >>> grok.grok('kirbi')
  >>> from kirbi.pac import Pac
  >>> from kirbi.book import Book
  >>> pac = Pac()
  >>> pac.addBook(Book(u'Zero'))
  'k0001'
  >>> pac.addBook(Book(isbn13='978-0670030583'))
  '9780670030583'
  >>> pac.addBook(Book(u'A Tale of Two Cities', isbn13='978-0141439600'))
  '9780141439600'
  >>> sorted(pac)
  [u'9780141439600', u'9780670030583', u'k0001']

One of the books has ISBN but no Title, so it's put in the fetch queue::

  >>> pac.pending_isbns
  ['9780670030583']

</TEST>


More information about the Grok-dev mailing list