[Zope3-dev] The Zope Software Certification Program and Common
Repository Proposal
Lennart Regebro
regebro at gmail.com
Tue Feb 21 12:14:54 EST 2006
On 2/21/06, Benji York <benji at zope.com> wrote:
> Again, not for the average user, bit if the hypothetical six month bug
> were found and those tests were decently written doctests, it would be
> much easier for the maintainer to follow what the test was doing.
Maybe an example can help. Because I don't understand why...
def testQuarterlyRecurringEvents(self):
caltool = self.portal.portal_cpscalendar
mgrcal = caltool.getHomeCalendarObject(manager_id)
event = Event('quarterly',
title="This is a quarterly event",
attendees=None,
from_date=DateTime(2005, 4, 1, 8, 0),
to_date=DateTime(2005, 4, 1, 10, 0),
event_type='event_recurring',
recurrence_period='period_quarterly')
mgrcal._setObject('quarterly', event)
self._upgrade()
sm = zapi.getUtility(IStorageManager, context=self.portal)
event = sm.getEvent('quarterly')
recurrence = event.recurrence
self.failUnless(interfaces.IMonthlyRecurrenceRule.providedBy(recurrence))
self.failUnlessEqual(recurrence.interval, 3)
self.failUnlessEqual(recurrence.until, None)
...is harder to understand than...
The migration also handles quarterly recurring events
>>> caltool = self.portal.portal_cpscalendar
>>> mgrcal = caltool.getHomeCalendarObject(manager_id)
>>> event = Event('quarterly',
... title="This is a quarterly event",
... attendees=None,
... from_date=DateTime(2005, 4, 1, 8, 0),
... to_date=DateTime(2005, 4, 1, 10, 0),
... event_type='event_recurring',
... recurrence_period='period_quarterly')
>>> mgrcal._setObject('quarterly', event)
>>> if 'install_cpssharedcalendar' not in self.portal.objectIds():
... script = ExternalMethod('install_cpssharedcalendar', '',
... 'CPSSharedCalendar.install',
... 'install')
>>> self.portal._setObject('install_cpssharedcalendar', script)
>>> script = self.portal['install_cpssharedcalendar']
>>> script()
>>> transaction.commit()
>>> if 'migrate_cpscalendar' not in self.portal.objectIds():
... script = ExternalMethod('migrate_cpscalendar', '',
... 'CPSSharedCalendar.upgrade',
... 'migrate_from_cpscalendar')
>>> self.portal._setObject('migrate_cpscalendar', script)
>>> script = self.portal['migrate_cpscalendar']
>>> script()
>>> sm = zapi.getUtility(IStorageManager, context=self.portal)
>>> event = sm.getEvent('quarterly')
>>> recurrence = event.recurrence
>>> interfaces.IMonthlyRecurrenceRule.providedBy(recurrence)
True
>>> recurrence.interval
3
>>> recurrence.until
None
...for a maintainer. I also completely fail to see how the latter
format gives anybody any extra insight, or how this provides any sort
of documentation.
(btw, through all this, I assume that Jims fix for the doctest
debugging problem that he mentioned did work, and that you now can
insert an import pdb;pdb.set_trace() in the middle of the doctests.
Right?)
--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
More information about the Zope3-dev
mailing list