lol

python3Packages.backports-zoneinfo: patch in zoneinfo and enable tests

+39 -3
+22 -3
pkgs/development/python-modules/backports-zoneinfo/default.nix
··· 1 1 { lib, buildPythonPackage, fetchFromGitHub 2 2 , pythonOlder 3 + , python 4 + , substituteAll 3 5 , importlib-resources 6 + , tzdata 4 7 , hypothesis 5 8 , pytestCheckHook 6 9 }: ··· 16 19 sha256 = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24="; 17 20 }; 18 21 19 - propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ 22 + patches = [ 23 + (substituteAll { 24 + name = "zoneinfo-path"; 25 + src = ./zoneinfo.patch; 26 + zoneinfo = "${tzdata}/lib/${python.libPrefix}/site-packages/tzdata/zoneinfo"; 27 + }) 28 + ]; 29 + 30 + propagatedBuildInputs = [ 31 + tzdata 32 + ] ++ lib.optionals (pythonOlder "3.7") [ 20 33 importlib-resources 21 34 ]; 22 35 ··· 27 40 pytestCheckHook 28 41 ]; 29 42 30 - # unfortunately /etc/zoneinfo doesn't exist in sandbox, and many tests fail 31 - doCheck = false; 43 + disabledTests = [ 44 + # AssertionError: 'AEDT' != 'AEST' 45 + "test_folds_and_gaps" 46 + # AssertionError: 0 != 1 : (datetime.datetime(1917, 3, 25, 2, 0, 1, tzinfo=backports.zoneinfo.ZoneInfo(key='Australia/Sydney')), datetime.datetime(1917, 3, 24, 15, 0, tzinfo=datetime.timezone.utc)) 47 + "test_folds_from_utc" 48 + # backports.zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key Eurasia/Badzone' 49 + "test_bad_keys" 50 + ]; 32 51 33 52 meta = with lib; { 34 53 description = "Backport of the standard library module zoneinfo";
+17
pkgs/development/python-modules/backports-zoneinfo/zoneinfo.patch
··· 1 + diff --git a/src/backports/zoneinfo/_tzpath.py b/src/backports/zoneinfo/_tzpath.py 2 + index 9baaf6b..3f842af 100644 3 + --- a/src/backports/zoneinfo/_tzpath.py 4 + +++ b/src/backports/zoneinfo/_tzpath.py 5 + @@ -24,10 +24,7 @@ def reset_tzpath(to=None): 6 + base_tzpath = _parse_python_tzpath(env_var) 7 + elif sys.platform != "win32": 8 + base_tzpath = [ 9 + - "/usr/share/zoneinfo", 10 + - "/usr/lib/zoneinfo", 11 + - "/usr/share/lib/zoneinfo", 12 + - "/etc/zoneinfo", 13 + + "@zoneinfo@" 14 + ] 15 + 16 + base_tzpath.sort(key=lambda x: not os.path.exists(x)) 17 +