1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, fetchpatch
5, freezegun
6, isodate
7, lxml
8, pythonOlder
9, xmlsec
10}:
11
12buildPythonPackage rec {
13 pname = "python3-saml";
14 version = "1.15.0";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "onelogin";
21 repo = "python3-saml";
22 rev = "refs/tags/v${version}";
23 hash = "sha256-xPPR2z3h8RpoAROpKpu9ZoDxGq5Stm9wQVt4Stj/6fg=";
24 };
25
26 patches = [
27 # skip tests with expired test data
28 # upstream issue: https://github.com/SAML-Toolkits/python3-saml/issues/373
29 (fetchpatch {
30 name = "test-expired.patch";
31 url = "https://github.com/SAML-Toolkits/python3-saml/commit/bd65578e5a21494c89320094c61c1c77250bea33.diff";
32 hash = "sha256-9Trew6R5JDjtc0NRGoklqMVDEI4IEqFOdK3ezyBU6gI=";
33 })
34 (fetchpatch {
35 name = "test-expired.patch";
36 url = "https://github.com/SAML-Toolkits/python3-saml/commit/ea3a6d4ee6ea0c5cfb0f698d8c0ed25638150f47.patch";
37 hash = "sha256-Q9+GM+mCEZK0QVp7ulH2hORVig2411OvkC4+o36DeXg=";
38 })
39 (fetchpatch {
40 name = "test-expired.patch";
41 url = "https://github.com/SAML-Toolkits/python3-saml/commit/feb0d1d954ee4d0ad1ad1d7d536bf9e83fa9431b.patch";
42 hash = "sha256-NURGI4FUnFlWRZfkioU9IYmZ+Zk9FKfZchjdn7N9abU=";
43 })
44 ];
45
46 propagatedBuildInputs = [
47 isodate
48 lxml
49 xmlsec
50 ];
51
52 nativeCheckInputs = [
53 freezegun
54 ];
55
56 pythonImportsCheck = [
57 "onelogin.saml2"
58 ];
59
60 meta = with lib; {
61 description = "OneLogin's SAML Python Toolkit";
62 homepage = "https://github.com/onelogin/python3-saml";
63 changelog = "https://github.com/SAML-Toolkits/python3-saml/blob/v${version}/changelog.md";
64 license = licenses.mit;
65 maintainers = with maintainers; [ zhaofengli ];
66 };
67}