[PATCH 5 of 5] py3: work around bytes/unicode divergence in parsedate()
Yuya Nishihara
yuya at tcha.org
Wed Sep 27 12:34:42 UTC 2017
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1506508061 -32400
# Wed Sep 27 19:27:41 2017 +0900
# Node ID 3908ba8ca01db2bbb6104946cb1e86e514ea4b8d
# Parent b75831c83770a3ce9d9c84112cec6c6807563db1
py3: work around bytes/unicode divergence in parsedate()
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -2006,12 +2006,12 @@ def parsedate(date, formats=None, bias=N
The date may be a "unixtime offset" string or in one of the specified
formats. If the date already is a (unixtime, offset) tuple, it is returned.
- >>> parsedate(b' today ') == parsedate(\
- datetime.date.today().strftime('%b %d'))
+ >>> parsedate(b' today ') == parsedate(
+ ... datetime.date.today().strftime('%b %d').encode('ascii'))
True
- >>> parsedate(b'yesterday ') == parsedate((datetime.date.today() -\
- datetime.timedelta(days=1)\
- ).strftime('%b %d'))
+ >>> parsedate(b'yesterday ') == parsedate(
+ ... (datetime.date.today() - datetime.timedelta(days=1)
+ ... ).strftime('%b %d').encode('ascii'))
True
>>> now, tz = makedate()
>>> strnow, strtz = parsedate(b'now')
@@ -2033,10 +2033,12 @@ def parsedate(date, formats=None, bias=N
if date == 'now' or date == _('now'):
return makedate()
if date == 'today' or date == _('today'):
- date = datetime.date.today().strftime('%b %d')
+ date = datetime.date.today().strftime(r'%b %d')
+ date = encoding.strtolocal(date)
elif date == 'yesterday' or date == _('yesterday'):
date = (datetime.date.today() -
- datetime.timedelta(days=1)).strftime('%b %d')
+ datetime.timedelta(days=1)).strftime(r'%b %d')
+ date = encoding.strtolocal(date)
try:
when, offset = map(int, date.split(' '))
diff --git a/tests/test-doctest.py b/tests/test-doctest.py
--- a/tests/test-doctest.py
+++ b/tests/test-doctest.py
@@ -69,7 +69,7 @@ testmod('mercurial.templatefilters')
testmod('mercurial.templater')
testmod('mercurial.ui')
testmod('mercurial.url')
-testmod('mercurial.util', py3=False) # py3: multiple bytes/unicode issues
+testmod('mercurial.util')
testmod('mercurial.util', testtarget='platform')
testmod('hgext.convert.convcmd')
testmod('hgext.convert.cvsps')
More information about the Mercurial-devel
mailing list