Fwd: [Zope-dev] Options replacing DateTime with datetime!?

Lennart Regebro regebro at gmail.com
Tue Sep 18 01:48:16 EDT 2007


On 9/17/07, Gustavo Niemeyer <gustavo at niemeyer.net> wrote:
> > 2. "Timezones in the form of EST5EDT or US/Eastern doesn't work.
> >
> > Both these can be avoided by keeping the old time and timezone
> > interpretation around.
>
> I'm not aware about that.  In fact, I'm curious about what the problem
> is.  EST5EDT may be seen in the test suite several times, using different
> sources of information even.
>
>   >>> tz.gettz("EST5EDT")
>   tzfile('/usr/share/zoneinfo/EST5EDT')
>
>   >>> tz.tzstr("EST5EDT")
>   tzstr('EST5EDT')

OK, I'm just going after my old notes here, and they could be wrong.
It could be that these types of timezones doesn't work in a datetime string?

> > The third one is the the modules concept of local timezone is set when
> > the module is imported, and there was no way to change it afterwards,
>
> dateutil can get timezones from several different sources and formats.
> tzlocal is based on what libc exposes, and I don't advice it to be used
> if any better source of information is available.  If the fact that
> some of its data is initialized as module import time is bothering you,
> I can definitely change it, but please keep in mind that there are other
> gotchas (variables in the time module won't change unless you call tzset,
> for instance)

The important part is that there is some sort of way to tell the
module what the local timezone is, so that you can test conversions.

> I recomment using tz.gettz() instead, which doesn't suffer from any of
> the problems you described, and provides much better information
> about the local timezone.

Doens't help as long as conversions use a concept of a local timezone
which isn't controllable.

> Making testing impossible is a bit overstated, IMO.  I use TDD in a
> daily basis, and testing that environment seems far from challenging.
> Time-related logic is tricky to test sometimes, of course, but saying
> that dateutil is useless because tzlocal is initialized at import time
> is funny, at least.

Of course nothing is impossible in computing. But it makes it
impossible without actually modifying the modules code somehow, and in
my book, it is reasonable to call that impossible. If I monkey-patch
the module for testing, then am I really testing what goes on in
production?

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64


More information about the Zope-Dev mailing list