From 4f2a3aabff33e4a7dd1f35b4fcd906236073f20b Mon Sep 17 00:00:00 2001 From: Danielle Lancashire Date: Mon, 2 Sep 2019 13:07:38 +0200 Subject: [PATCH 1/2] rfc6555: init at 0.0.0 --- .../python-modules/rfc6555/default.nix | 24 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/python-modules/rfc6555/default.nix diff --git a/pkgs/development/python-modules/rfc6555/default.nix b/pkgs/development/python-modules/rfc6555/default.nix new file mode 100644 index 000000000000..636427cf7139 --- /dev/null +++ b/pkgs/development/python-modules/rfc6555/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildPythonPackage, fetchPypi, pythonPackages }: + +buildPythonPackage rec { + pname = "rfc6555"; + version = "0.0.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "05sjrd6jc0sdvx0z7d3llk82rx366jlmc7ijam0nalsv66hbn70r"; + }; + + propagatedBuildInputs = with pythonPackages; [ selectors2 ]; + + # tests are disabled as rfc6555's 'non-network' tests still require a + # functional DNS stack to pass. + doCheck = false; + + meta = { + description = "Python implementation of the Happy Eyeballs Algorithm"; + homepage = "https://pypi.org/project/rfc6555"; + license = stdenv.lib.licenses.asl20; + maintainers = with stdenv.lib.maintainers; [ endocrimes ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 02c87e9e3cd3..17955f8d0ec9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4658,6 +4658,8 @@ in { inherit (pkgs) pkgconfig; # use normal pkgconfig, not the python package }; + rfc6555 = callPackage ../development/python-modules/rfc6555 { }; + qdarkstyle = callPackage ../development/python-modules/qdarkstyle { }; quamash = callPackage ../development/python-modules/quamash { }; From b199e30680e182c6776f30caae089db811ad1d52 Mon Sep 17 00:00:00 2001 From: Dima Date: Sat, 7 Sep 2019 22:12:11 +0200 Subject: [PATCH 2/2] rfc6555: selectively disable networked tests (incl. tiny nitpicks from vcunat) --- .../python-modules/rfc6555/default.nix | 10 ++++-- .../rfc6555/disable_network_tests.patch | 31 +++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/python-modules/rfc6555/disable_network_tests.patch diff --git a/pkgs/development/python-modules/rfc6555/default.nix b/pkgs/development/python-modules/rfc6555/default.nix index 636427cf7139..0bd7b0ca686c 100644 --- a/pkgs/development/python-modules/rfc6555/default.nix +++ b/pkgs/development/python-modules/rfc6555/default.nix @@ -11,9 +11,13 @@ buildPythonPackage rec { propagatedBuildInputs = with pythonPackages; [ selectors2 ]; - # tests are disabled as rfc6555's 'non-network' tests still require a - # functional DNS stack to pass. - doCheck = false; + checkInputs = with pythonPackages; [ mock pytest ]; + # disabling tests that require a functional DNS IPv{4,6} stack to pass. + patches = [ ./disable_network_tests.patch ]; + # default doCheck = true; is not enough, apparently + postCheck = '' + py.test tests/ + ''; meta = { description = "Python implementation of the Happy Eyeballs Algorithm"; diff --git a/pkgs/development/python-modules/rfc6555/disable_network_tests.patch b/pkgs/development/python-modules/rfc6555/disable_network_tests.patch new file mode 100644 index 000000000000..dc59111ac43f --- /dev/null +++ b/pkgs/development/python-modules/rfc6555/disable_network_tests.patch @@ -0,0 +1,31 @@ +diff --git a/tests/test_create_connection.py b/tests/test_create_connection.py +index fe38026..cdb26b4 100644 +--- a/tests/test_create_connection.py ++++ b/tests/test_create_connection.py +@@ -6,10 +6,12 @@ from .test_utils import requires_network + + + class _BasicCreateConnectionTests(object): ++ + @requires_network + def test_create_connection_google(self): + sock = rfc6555.create_connection(('www.google.com', 80)) + ++ @requires_network + @pytest.mark.parametrize('timeout', [None, 5.0]) + def test_create_connection_has_proper_timeout(self, timeout): + sock = rfc6555.create_connection(('www.google.com', 80), timeout=timeout) +diff --git a/tests/test_ipv6.py b/tests/test_ipv6.py +index 3ee8564..f0db28e 100644 +--- a/tests/test_ipv6.py ++++ b/tests/test_ipv6.py +@@ -2,7 +2,9 @@ import socket + import mock + import rfc6555 + ++from .test_utils import requires_network + ++@requires_network + def test_ipv6_available(): + assert rfc6555._detect_ipv6() +