[Zope3-dev] Re: Deleting utilities in site management doesn't work correct

Tres Seaver tseaver at palladion.com
Fri Oct 7 13:44:52 EDT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

jürgen Kartnaller wrote:
> Hi Tres,
> I would really like to make a test for this but I have no idea how to start.
> 
> It took me 10 minutes to fix the problem but I think it will take me 10
> hours to write the test.
> 
> If you can point me to a starting direction or just give me an example
> test somewhere I will give it a try !

Hmmm, the code in src/zope/app/component/browser has no tests at all.
There is a 'xxx_tests' directory, which looks to have a bunch of
now-invalid tests, moved aside by Stephan during servicegeddon.  I'll CC
him just in case some of those tests were supposed to come back online.

For your bug, I would start by writing a doctest for the tools.py
module, something like:

 1. Create a 'tests' subdirectory in the 'browser' directory, and
    give it an empty '__init__.py'::

    $ mkdir src/zope/app/component/browser/tests
    $ cat > src/zope/app/component/browser/tests/__init__.py
    # Python package
    ^D

 2. Add a 'tests/test_tools.py' module, with boilerplate to run
    the doctests in 'tools.txt':

    $ cat > src/zope/app/component/browser/tests/test_tools.py
    import unittest
    from zope.testing import doctest
    from zope.app.testing.placelesssetup import setUp
    from zope.app.testing.placelesssetup import tearDown

    def test_suite():
        return unittest.TestSuite((
        doctest.DocFileSuite('../tools.txt',
                             setUp=setUp,
                             tearDown=tearDown),
        ))

    if __name__ == "__main__":
        unittest.main(defaultTest='test_suite')
    ^D

 3. Start writing 'tools.txt', documenting the behavior of the
    methods of the SiteManagementView class.  You could write only
    a test for 'delete' first, which should fail until you apply
    your patch.  Look at 'src/zope/app/component/adapterregistry.txt'
    for an example doctest file.

    $ vim src/zope/app/component/browser/tools.txt

 4. Run the tests, iteratively, during development:

    $ python test.py -u zope.app.component.browser

 5. Check in the new tools.txt and tests/ directory:

    $ svn add src/zope/app/component/browser/tools.txt
    $ svn add src/zope/app/component/browser/tests
    $ svn commit -m "Ensure that SiteManagerView.delete doesn't\
    bite it's own tail."


Hope that helps,


Tres.
- --
===================================================================
Tres Seaver          +1 202-558-7113          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDRrQU+gerLs4ltQ4RAiqgAJ92CMhb4xXbKwBecyHWITI0cd7v6QCgtWUW
pLrEv+UXgRcioeQvU6r7UI8=
=lfM7
-----END PGP SIGNATURE-----



More information about the Zope3-dev mailing list