[PATCH] util: add doctest to datestr()
adrian at cadifra.com
Fri Apr 8 12:46:29 EDT 2016
On 2016-04-08 18:23, Yuya Nishihara wrote:
> 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.
To me, it looks like each doctest-block has a new locale-scope (per
function). Could be similar to the fact that each one has its own
globals. I might be wrong though.
No matter what I tried: the locale was correctly set only if I did set
it in the doctest block. Which is quite surprising.
>>>> + >>> 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