git.iko.soy/typeable/nixpkgs
on master help sign in
python3Packages.backports-zoneinfo: patch in zoneinfo and enable tests
commit647a0621ff34c813cd9515e8384e2ef2287cfc0a authorMartin Weinelt <hexa@darmstadt.ccc.de> dateThu 3 Jun 2021, 03:25 (5 years ago) parent2e88b6f
2 files changed+39−3
pkgs/development/python-modules/backports-zoneinfo/default.nix+22−3 pkgs/development/python-modules/backports-zoneinfo/zoneinfo.patch+17
pkgs/development/python-modules/backports-zoneinfo/default.nix+22−3
@@ -1,6 +1,9 @@
11{ lib, buildPythonPackage, fetchFromGitHub
22, pythonOlder
3+, python
4+, substituteAll
35, importlib-resources
6+, tzdata
47, hypothesis
58, pytestCheckHook
69}:
@@ -16,7 +19,17 @@ buildPythonPackage rec {
1619 sha256 = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24=";
1720 };
1821
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") [
2033 importlib-resources
2134 ];
2235
@@ -27,8 +40,14 @@ buildPythonPackage rec {
2740 pytestCheckHook
2841 ];
2942
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+ ];
3251
3352 meta = with lib; {
3453 description = "Backport of the standard library module zoneinfo";
pkgs/development/python-modules/backports-zoneinfo/zoneinfo.patchnew file+17
@@ -0,0 +1,17 @@
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+