Subject: bug#46294: closed (Re: bug#46294: python-arrow timezone test failure)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 08 Feb 2021 08:04:02 +0000

Your bug report

#46294: python-arrow timezone test failure

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
46294: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46294
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#46294: python-arrow timezone test failure
From: Efraim Flashner <[email-masked]>
To: Guillaume Le Vaillant <[email-masked]>
Cc: [email-masked]
Date: Mon, 8 Feb 2021 10:02:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On Thu, Feb 04, 2021 at 01:47:59PM +0100, Guillaume Le Vaillant wrote:
> Hi,
> 
> The python-arrow package currently fails to build because the
> "test_parse_tz_name_zzz" test is failing.
> This is with Guix at eae865c134ebb8b7432572288e8721794d6a9b87.
> I'm not very familiar with Python, so does someone know how to fix this?

I tracked this down a bit, python-dateutil still has America/Nuuk as
America/Godthab, so any test looking for America/Nuuk is going to fail.
Unfortunately with the number of dependants there's not an easy way to
fix it on master so I think we'll need to skip that test for now.

I've gone ahead and skipped the broken test and added a message to
re-enable it after an update to python-dateutil.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Subject: python-arrow timezone test failure
From: Guillaume Le Vaillant <[email-masked]>
To: [email-masked]
Date: Thu, 04 Feb 2021 13:47:59 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

The python-arrow package currently fails to build because the
"test_parse_tz_name_zzz" test is failing.
This is with Guix at eae865c134ebb8b7432572288e8721794d6a9b87.
I'm not very familiar with Python, so does someone know how to fix this?

Here's the relevant part of the build log:

--8<---------------cut here---------------start------------->8---
_________ TestDateTimeParserParse.test_parse_tz_name_zzz[America/Nuuk] _________

self = <tests.test_parser.TestDateTimeParserParse object at 0x7ffff3e0d220>
full_tz_name = 'America/Nuuk'

    @pytest.mark.parametrize("full_tz_name", make_full_tz_list())
    def test_parse_tz_name_zzz(self, full_tz_name):
    
        self.expected = datetime(2013, 1, 1, tzinfo=tz.gettz(full_tz_name))
>       assert (
            self.parser.parse("2013-01-01 {}".format(full_tz_name), "YYYY-MM-DD ZZZ")
            == self.expected
        )

tests/test_parser.py:347: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
arrow/parser.py:244: in parse
    self._parse_token(token, value, parts)
arrow/parser.py:397: in _parse_token
    parts["tzinfo"] = TzinfoParser.parse(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'arrow.parser.TzinfoParser'>, tzinfo_string = 'America/Nuuk'

    @classmethod
    def parse(cls, tzinfo_string):
    
        tzinfo = None
    
        if tzinfo_string == "local":
            tzinfo = tz.tzlocal()
    
        elif tzinfo_string in ["utc", "UTC", "Z"]:
            tzinfo = tz.tzutc()
    
        else:
    
            iso_match = cls._TZINFO_RE.match(tzinfo_string)
    
            if iso_match:
                sign, hours, minutes = iso_match.groups()
                if minutes is None:
                    minutes = 0
                seconds = int(hours) * 3600 + int(minutes) * 60
    
                if sign == "-":
                    seconds *= -1
    
                tzinfo = tz.tzoffset(None, seconds)
    
            else:
                tzinfo = tz.gettz(tzinfo_string)
    
        if tzinfo is None:
>           raise ParserError(
                'Could not parse timezone expression "{}"'.format(tzinfo_string)
            )
E           arrow.parser.ParserError: Could not parse timezone expression "America/Nuuk"

arrow/parser.py:592: ParserError
--8<---------------cut here---------------end--------------->8---