Skip to content

Commit

Permalink
Fix test_tzlocal_offset_equal[GMT-tzoff1]
Browse files Browse the repository at this point in the history
test_tzlocal_offset_equal[GMT-tzoff1] fails if a system does not
have a defined (installed) GMT timezone, for example if "Link Etc/GMT GMT"
is not defined in the zoneinfo configuration:

>           assert tz.tzlocal() == tzoff
E           AssertionError: assert tzlocal() == tzoffset(u'GMT', 0)
E             -tzlocal()
E             +tzoffset(u'GMT', 0)

An example of such a configuration is FreeBSD, who's default timezone is
UTC [1][2]. This configuration results in any "non-present" or undefined TZ
name being returned/processed as the default timezone name (in FreeBSD's
case, UTC).

Further, POSIX does not recognize [3] TZ=GMT or TZ=UTC as valid values
because they neither start with a colon nor contain a numeric offset hour
field.

Accordingly, update the GMT value for this parametrized test to GMT0, a
specific (not aliased) timezone, making it more robust to system
configuration differences.

[1] https://svnweb.freebsd.org/changeset/base/130332
[2] https://svnweb.freebsd.org/changeset/base/199405
[3] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
  • Loading branch information
koobs authored and pganssle committed Nov 3, 2019
1 parent 3629d67 commit 38a5cd8
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/928.bugfix.rst
@@ -0,0 +1 @@
Fixed issue where ``test_tzlocal_offset_equal`` would fail in certain environments (such as FreeBSD) due to an invalid assumption about what time zone names are provided. Reported and fixed by Kubilay Kocak (gh issue #918, pr #928).
2 changes: 1 addition & 1 deletion dateutil/test/test_tz.py
Expand Up @@ -993,7 +993,7 @@ def test_tzlocal_local_time_trim_colon():
@mark_tzlocal_nix
@pytest.mark.parametrize('tzvar, tzoff', [
('EST5', tz.tzoffset('EST', -18000)),
('GMT', tz.tzoffset('GMT', 0)),
('GMT0', tz.tzoffset('GMT', 0)),
('YAKT-9', tz.tzoffset('YAKT', timedelta(hours=9))),
('JST-9', tz.tzoffset('JST', timedelta(hours=9))),
])
Expand Down

0 comments on commit 38a5cd8

Please sign in to comment.