[PATCH] util: add doctest to datestr()

Yuya Nishihara yuya at tcha.org
Fri Apr 8 12:23:44 EDT 2016


On Fri, 08 Apr 2016 17:58:16 +0200, Adrian Buehlmann wrote:
> On 2016-04-08 16:51, Yuya Nishihara wrote:
> > On Fri, 08 Apr 2016 11:29:20 +0200, Adrian Buehlmann wrote:  
> >> # HG changeset patch
> >> # User Adrian Buehlmann <adrian at cadifra.com>
> >> # Date 1460042647 -7200
> >> # Node ID e4855d9b93ae1c1413b3ab67e9e605b968c89fa9
> >> # Parent  ea86cdcd9b50bf38c6b9dd7bbaa04b9c8cc0aefb
> >> util: add doctest to datestr()
> >>
> >> The setlocale call is needed. If I leave it away, the active locale is -
> >> surprisingly - *not* 'C' here.
> >>
> >> diff --git a/mercurial/util.py b/mercurial/util.py
> >> --- a/mercurial/util.py
> >> +++ b/mercurial/util.py
> >> @@ -1576,7 +1576,22 @@
> >>      """represent a (unixtime, offset) tuple as a localized time.
> >>      unixtime is seconds since the epoch, and offset is the time zone's
> >>      number of seconds away from UTC. if timezone is false, do not
> >> -    append time zone to string."""
> >> +    append time zone to string.
> >> +
> >> +    >>> import locale
> >> +    >>> locale.setlocale(locale.LC_ALL, 'C')
> >> +    'C'  
> > 
> > Perhaps test-doctest.py should do that globally? I got test failure on
> > Windows even without this patch.
> >  
> 
> ?
> 
> I'll probably stop digging this. In my experiments, setlocale in
> test-doctest.py had no influence on the locale used inside the scope of
> individual doctests.
> 
> Test passed here.

I thought setlocale() is per process and test-doctest.py won't spawn new
process. But I didn't investigate it either.

> >> +    >>> datestr((0, False))  
> > 
> > "offset" is integer, not bool.
> >   
> 
> ... which apparently doesn't match the spec of the function ("if
> timezone is false, do not append time zone to string.")

It appears that the doc is wrong. There was "timezone" flag at 04c17fc39c84.


More information about the Mercurial-devel mailing list