1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 proton-core,
7 proton-vpn-killswitch,
8 proton-vpn-logger,
9 jinja2,
10 pytestCheckHook,
11}:
12
13buildPythonPackage rec {
14 pname = "proton-vpn-connection";
15 version = "0.14.4";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "ProtonVPN";
20 repo = "python-proton-vpn-connection";
21 rev = "refs/tags/v${version}";
22 hash = "sha256-Ze/te0G0tDzyZPGVVqvuJlZoHWJqJ36LnHO+Cy5nxx8=";
23 };
24
25 nativeBuildInputs = [ setuptools ];
26
27 propagatedBuildInputs = [
28 jinja2
29 proton-core
30 proton-vpn-killswitch
31 proton-vpn-logger
32 ];
33
34 postPatch = ''
35 substituteInPlace setup.cfg \
36 --replace-fail "--cov=proton.vpn.connection --cov-report html --cov-report term" ""
37 '';
38
39 pythonImportsCheck = [ "proton.vpn.connection" ];
40
41 nativeCheckInputs = [ pytestCheckHook ];
42
43 disabledTests = [
44 # Permission denied: '/run'
45 "test_ensure_configuration_file_is_deleted"
46 "test_ensure_generate_is_returning_expected_content"
47 "test_ensure_same_configuration_file_in_case_of_duplicate"
48 "test_ensure_configuration_file_is_created"
49 "test_wireguard_config_content_generation"
50 "test_wireguard_with_malformed_credentials"
51 "test_wireguard_with_non_certificate"
52 "test_wireguard_without_settings"
53 # Neiter udp or tcp are working
54 "test_ovpnconfig_with_settings"
55 "test_ovpnconfig_with_missing_settings_applies_expected_defaults"
56 "test_ovpnconfig_with_malformed_params"
57 "test_ovpnconfig_with_certificate_and_malformed_credentials"
58 "test_ovpnconfig_with_malformed_server"
59 "test_ovpnconfig_with_malformed_server_and_credentials"
60 ];
61
62 meta = with lib; {
63 description = "Defines the interface that VPN connection backends should implement";
64 homepage = "https://github.com/ProtonVPN/python-proton-vpn-connection";
65 license = licenses.gpl3Only;
66 maintainers = [ ];
67 };
68}