summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net>2020-09-29 18:28:44 +0000
committerLiguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net>2020-09-29 18:28:44 +0000
commit559f822cabcf169fe9b3107700968e3594c67bf9 (patch)
treebc05cc45ec5f1409fcc08417bdb0f9c6bebf8ddc /dev-python
parent59519679b1e0fbc189a32c24b8a1e89e99bbaf98 (diff)
downloadbaldeagleos-repo-559f822cabcf169fe9b3107700968e3594c67bf9.tar.gz
baldeagleos-repo-559f822cabcf169fe9b3107700968e3594c67bf9.tar.xz
baldeagleos-repo-559f822cabcf169fe9b3107700968e3594c67bf9.zip
Updating liguros repo
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/jupyterlab_pygments/Manifest1
-rw-r--r--dev-python/jupyterlab_pygments/jupyterlab_pygments-0.1.2.ebuild18
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.12.10.ebuild20
-rw-r--r--dev-python/setuptools/setuptools-46.4.0-r3.ebuild3
-rw-r--r--dev-python/setuptools/setuptools-50.3.0.ebuild3
-rw-r--r--dev-python/websockify/files/websockify-0.9.0-mock-tests.patch392
-rw-r--r--dev-python/websockify/websockify-0.9.0-r1.ebuild31
8 files changed, 467 insertions, 2 deletions
diff --git a/dev-python/jupyterlab_pygments/Manifest b/dev-python/jupyterlab_pygments/Manifest
index 42fd82b465d6..300b5cb8ca42 100644
--- a/dev-python/jupyterlab_pygments/Manifest
+++ b/dev-python/jupyterlab_pygments/Manifest
@@ -1 +1,2 @@
DIST jupyterlab_pygments-0.1.1.tar.gz 561976 BLAKE2B ca317ed6709fd2c9a8afd137051140396bccdc3140c8c1ca97f64f8d4f74d2272c687661e1e28822a5008b2285306024408b18ba6ac92cb9d73acc29b8741fe4 SHA512 743e380f253f817ec9c9aedbe5d3c1cb5bc2c3de2136deba40b0fd3880bb04a4774099eb90437519638811ea9bea0324db3c3d8b1a9ab63857e7513deeaba669
+DIST jupyterlab_pygments-0.1.2.tar.gz 561989 BLAKE2B 85d6b59b2c959f838746c7c6fed99ad5adda89a514a77327cc8e9ba7d6a91b1c0206d999c09149e6c5b9c67911ca16914f0b17a67b3505db73c23a7194fe4566 SHA512 0b4f4c13017f8afbd83e9fb575b3c4ee44272bc01421761ae7b140ecab743d825aa195432caa5f6153bda0ef84fe3ab92dad61ffd9b048927736a916dd267b5a
diff --git a/dev-python/jupyterlab_pygments/jupyterlab_pygments-0.1.2.ebuild b/dev-python/jupyterlab_pygments/jupyterlab_pygments-0.1.2.ebuild
new file mode 100644
index 000000000000..be4bcbe0c1c2
--- /dev/null
+++ b/dev-python/jupyterlab_pygments/jupyterlab_pygments-0.1.2.ebuild
@@ -0,0 +1,18 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pygments theme making use of JupyterLab CSS variables"
+HOMEPAGE="https://github.com/jupyterlab/jupyterlab_pygments"
+SRC_URI="https://github.com/jupyterlab/jupyterlab_pygments/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="dev-python/pygments[${PYTHON_USEDEP}]"
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 6001aa540b9e..e1924df0bfcd 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,2 +1,3 @@
+DIST phonenumbers-8.12.10.tar.gz 2254112 BLAKE2B 1fa0faf7347371a548b5e890e3cf8ba9daa32275670f40f7efe507ecfa817a3c372d5b47f2b91a1366bb519657447a614d3579bf69ba3249255c579e37ae883b SHA512 14fcdaa76a61624db2c4d4290a3df27252d985f889b8fb29c80971b88b502a5fe74efa0a110ee3ec92459b8d6a1ccc03dd5eb211b6addad741c9bb7527d5e600
DIST phonenumbers-8.12.8.tar.gz 2249617 BLAKE2B e02f851774bee9806f01b0359ea4e159c8c890a815edf45f19162dc35972aaa3c84f9e2e19a51ef3efb053d4e307a4d3a31b664a7fffc7c4ffe9a7c6c281ae86 SHA512 0897a5298b5aaee7c0775e12cbe35a6e25b85a1836d8302abc5eee7e327fc559bc06f3130c63ac5aa14207900d1615f3a7cd4137d6561855e4ad38b6e4af220f
DIST phonenumbers-8.12.9.tar.gz 2250397 BLAKE2B 06b3f8beefe3c1e5cfa4d0f9bb550f40e568692f711513784001e9bad9d3805adc42ba0bdacfa292935239c6bcb47e4723a72da160efde21269308329299fce0 SHA512 0f1de43bd56ca05920721cc9639249bffaa6516f4713fc54b53491e4ffecceb357a26cd9d6126ea9e91eec1bb1fb4bf2003f95f1d62f61ae2f1275e0dca58e29
diff --git a/dev-python/phonenumbers/phonenumbers-8.12.10.ebuild b/dev-python/phonenumbers/phonenumbers-8.12.10.ebuild
new file mode 100644
index 000000000000..979bda4a1914
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.12.10.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="https://github.com/daviddrysdale/python-phonenumbers"
+SRC_URI="mirror://pypi/p/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DOCS=(README.md)
+
+distutils_enable_tests setup.py
diff --git a/dev-python/setuptools/setuptools-46.4.0-r3.ebuild b/dev-python/setuptools/setuptools-46.4.0-r3.ebuild
index 662dc83cf21e..8f13ddcad637 100644
--- a/dev-python/setuptools/setuptools-46.4.0-r3.ebuild
+++ b/dev-python/setuptools/setuptools-46.4.0-r3.ebuild
@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-DISTUTILS_USE_SETUPTOOLS=no
+# Set to 'manual' to avoid triggering install QA check
+DISTUTILS_USE_SETUPTOOLS=manual
PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} )
PYTHON_REQ_USE="xml(+)"
diff --git a/dev-python/setuptools/setuptools-50.3.0.ebuild b/dev-python/setuptools/setuptools-50.3.0.ebuild
index 48c25396dd75..885ed15ddb30 100644
--- a/dev-python/setuptools/setuptools-50.3.0.ebuild
+++ b/dev-python/setuptools/setuptools-50.3.0.ebuild
@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-DISTUTILS_USE_SETUPTOOLS=no
+# Set to 'manual' to avoid triggering install QA check
+DISTUTILS_USE_SETUPTOOLS=manual
PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 )
PYTHON_REQ_USE="xml(+)"
diff --git a/dev-python/websockify/files/websockify-0.9.0-mock-tests.patch b/dev-python/websockify/files/websockify-0.9.0-mock-tests.patch
new file mode 100644
index 000000000000..a6af9508e07d
--- /dev/null
+++ b/dev-python/websockify/files/websockify-0.9.0-mock-tests.patch
@@ -0,0 +1,392 @@
+From 992e09eac484f25871b7fcfc6d11b8e5beac9edb Mon Sep 17 00:00:00 2001
+From: Pierre Ossman <ossman@cendio.se>
+Date: Fri, 21 Aug 2020 10:50:11 +0200
+Subject: [PATCH] Convert tests from mox to mock
+
+mox is deprecated upstream in favour of mock
+---
+ test-requirements.txt | 2 +-
+ tests/test_websocketproxy.py | 34 ++++------
+ tests/test_websockifyserver.py | 111 +++++++++++++--------------------
+ 3 files changed, 58 insertions(+), 89 deletions(-)
+
+diff --git a/test-requirements.txt b/test-requirements.txt
+index a63a15e..8e01437 100644
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -1,4 +1,4 @@
+-mox3
++mock
+ nose
+ jwcrypto;python_version>="2.7"
+ redis;python_version>="2.7"
+diff --git a/tests/test_websocketproxy.py b/tests/test_websocketproxy.py
+index c0a8d93..d8a4916 100644
+--- a/tests/test_websocketproxy.py
++++ b/tests/test_websocketproxy.py
+@@ -20,10 +20,11 @@
+ import unittest
+ import unittest
+ import socket
++try:
++ from mock import patch
++except ImportError:
++ from unittest.mock import patch
+
+-from mox3 import stubout
+-
+-from websockify import websockifyserver
+ from websockify import websocketproxy
+ from websockify import token_plugins
+ from websockify import auth_plugins
+@@ -74,16 +75,14 @@ def __init__(self):
+ class ProxyRequestHandlerTestCase(unittest.TestCase):
+ def setUp(self):
+ super(ProxyRequestHandlerTestCase, self).setUp()
+- self.stubs = stubout.StubOutForTesting()
+ self.handler = websocketproxy.ProxyRequestHandler(
+ FakeSocket(''), "127.0.0.1", FakeServer())
+ self.handler.path = "https://localhost:6080/websockify?token=blah"
+ self.handler.headers = None
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
+- staticmethod(lambda *args, **kwargs: None))
++ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
+
+ def tearDown(self):
+- self.stubs.UnsetAll()
++ patch.stopall()
+ super(ProxyRequestHandlerTestCase, self).tearDown()
+
+ def test_get_target(self):
+@@ -120,8 +119,7 @@ class TestPlugin(token_plugins.BasePlugin):
+ def lookup(self, token):
+ return (self.source + token).split(',')
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = TestPlugin("somehost,")
+ self.handler.validate_connection()
+@@ -138,8 +136,7 @@ def test_asymmetric_jws_token_plugin(self):
+ jwt_token.make_signed_token(key)
+ self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/public.pem")
+ self.handler.validate_connection()
+@@ -155,8 +152,7 @@ def test_asymmetric_jws_token_plugin_with_illigal_key_exception(self):
+ jwt_token.make_signed_token(key)
+ self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = token_plugins.JWTTokenApi("wrong.pub")
+ self.assertRaises(self.handler.server.EClose,
+@@ -171,8 +167,7 @@ def test_symmetric_jws_token_plugin(self):
+ jwt_token.make_signed_token(key)
+ self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/symmetric.key")
+ self.handler.validate_connection()
+@@ -188,8 +183,7 @@ def test_symmetric_jws_token_plugin_with_illigal_key_exception(self):
+ jwt_token.make_signed_token(key)
+ self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = token_plugins.JWTTokenApi("wrong_sauce")
+ self.assertRaises(self.handler.server.EClose,
+@@ -210,8 +204,7 @@ def test_asymmetric_jwe_token_plugin(self):
+
+ self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwe_token.serialize())
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/private.pem")
+ self.handler.validate_connection()
+@@ -225,8 +218,7 @@ def authenticate(self, headers, target_host, target_port):
+ if target_host == self.source:
+ raise auth_plugins.AuthenticationError(response_msg="some_error")
+
+- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
+- staticmethod(lambda *args, **kwargs: None))
++ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
+
+ self.handler.server.auth_plugin = TestPlugin("somehost")
+ self.handler.server.target_host = "somehost"
+diff --git a/tests/test_websockifyserver.py b/tests/test_websockifyserver.py
+index b9312dc..a089f55 100644
+--- a/tests/test_websockifyserver.py
++++ b/tests/test_websockifyserver.py
+@@ -22,7 +22,10 @@
+ import shutil
+ import socket
+ import ssl
+-from mox3 import stubout
++try:
++ from mock import patch, MagicMock, ANY
++except ImportError:
++ from unittest.mock import patch, MagicMock, ANY
+ import sys
+ import tempfile
+ import unittest
+@@ -73,22 +76,13 @@ def makefile(self, mode='r', buffsize=None):
+ class WebSockifyRequestHandlerTestCase(unittest.TestCase):
+ def setUp(self):
+ super(WebSockifyRequestHandlerTestCase, self).setUp()
+- self.stubs = stubout.StubOutForTesting()
+ self.tmpdir = tempfile.mkdtemp('-websockify-tests')
+ # Mock this out cause it screws tests up
+- self.stubs.Set(os, 'chdir', lambda *args, **kwargs: None)
+- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
+- lambda *args, **kwargs: None)
+-
+- def fake_send_error(self, code, message=None, explain=None):
+- self.last_code = code
+-
+- self.stubs.Set(BaseHTTPRequestHandler, 'send_error',
+- fake_send_error)
++ patch('os.chdir').start()
+
+ def tearDown(self):
+ """Called automatically after each test."""
+- self.stubs.UnsetAll()
++ patch.stopall()
+ os.rmdir(self.tmpdir)
+ super(WebSockifyRequestHandlerTestCase, self).tearDown()
+
+@@ -101,47 +95,36 @@ def _get_server(self, handler_class=websockifyserver.WebSockifyRequestHandler,
+ record=self.tmpdir, daemon=False, ssl_only=0, idle_timeout=1,
+ **kwargs)
+
+- def test_normal_get_with_only_upgrade_returns_error(self):
++ @patch('websockify.websockifyserver.WebSockifyRequestHandler.send_error')
++ def test_normal_get_with_only_upgrade_returns_error(self, send_error):
+ server = self._get_server(web=None)
+ handler = websockifyserver.WebSockifyRequestHandler(
+ FakeSocket('GET /tmp.txt HTTP/1.1'), '127.0.0.1', server)
+
+- def fake_send_response(self, code, message=None):
+- self.last_code = code
+-
+- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
+- fake_send_response)
+-
+ handler.do_GET()
+- self.assertEqual(handler.last_code, 405)
++ send_error.assert_called_with(405, ANY)
+
+- def test_list_dir_with_file_only_returns_error(self):
++ @patch('websockify.websockifyserver.WebSockifyRequestHandler.send_error')
++ def test_list_dir_with_file_only_returns_error(self, send_error):
+ server = self._get_server(file_only=True)
+ handler = websockifyserver.WebSockifyRequestHandler(
+ FakeSocket('GET / HTTP/1.1'), '127.0.0.1', server)
+
+- def fake_send_response(self, code, message=None):
+- self.last_code = code
+-
+- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
+- fake_send_response)
+-
+ handler.path = '/'
+ handler.do_GET()
+- self.assertEqual(handler.last_code, 404)
++ send_error.assert_called_with(404, ANY)
+
+
+ class WebSockifyServerTestCase(unittest.TestCase):
+ def setUp(self):
+ super(WebSockifyServerTestCase, self).setUp()
+- self.stubs = stubout.StubOutForTesting()
+ self.tmpdir = tempfile.mkdtemp('-websockify-tests')
+ # Mock this out cause it screws tests up
+- self.stubs.Set(os, 'chdir', lambda *args, **kwargs: None)
++ patch('os.chdir').start()
+
+ def tearDown(self):
+ """Called automatically after each test."""
+- self.stubs.UnsetAll()
++ patch.stopall()
+ os.rmdir(self.tmpdir)
+ super(WebSockifyServerTestCase, self).tearDown()
+
+@@ -154,10 +137,10 @@ def _get_server(self, handler_class=websockifyserver.WebSockifyRequestHandler,
+
+ def test_daemonize_raises_error_while_closing_fds(self):
+ server = self._get_server(daemon=True, ssl_only=1, idle_timeout=1)
+- self.stubs.Set(os, 'fork', lambda *args: 0)
+- self.stubs.Set(signal, 'signal', lambda *args: None)
+- self.stubs.Set(os, 'setsid', lambda *args: None)
+- self.stubs.Set(os, 'close', raise_oserror)
++ patch('os.fork').start().return_value = 0
++ patch('signal.signal').start()
++ patch('os.setsid').start()
++ patch('os.close').start().side_effect = raise_oserror
+ self.assertRaises(OSError, server.daemonize, keepfd=None, chdir='./')
+
+ def test_daemonize_ignores_ebadf_error_while_closing_fds(self):
+@@ -165,11 +148,11 @@ def raise_oserror_ebadf(fd):
+ raise OSError(errno.EBADF, 'fake error')
+
+ server = self._get_server(daemon=True, ssl_only=1, idle_timeout=1)
+- self.stubs.Set(os, 'fork', lambda *args: 0)
+- self.stubs.Set(os, 'setsid', lambda *args: None)
+- self.stubs.Set(signal, 'signal', lambda *args: None)
+- self.stubs.Set(os, 'close', raise_oserror_ebadf)
+- self.stubs.Set(os, 'open', raise_oserror)
++ patch('os.fork').start().return_value = 0
++ patch('signal.signal').start()
++ patch('os.setsid').start()
++ patch('os.close').start().side_effect = raise_oserror_ebadf
++ patch('os.open').start().side_effect = raise_oserror
+ self.assertRaises(OSError, server.daemonize, keepfd=None, chdir='./')
+
+ def test_handshake_fails_on_not_ready(self):
+@@ -178,7 +161,7 @@ def test_handshake_fails_on_not_ready(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ return ([], [], [])
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ self.assertRaises(
+ websockifyserver.WebSockifyServer.EClose, server.do_handshake,
+ FakeSocket(), '127.0.0.1')
+@@ -191,7 +174,7 @@ def test_empty_handshake_fails(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ return ([sock], [], [])
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ self.assertRaises(
+ websockifyserver.WebSockifyServer.EClose, server.do_handshake,
+ sock, '127.0.0.1')
+@@ -208,7 +191,7 @@ def test_handshake_ssl_only_without_ssl_raises_error(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ return ([sock], [], [])
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ self.assertRaises(
+ websockifyserver.WebSockifyServer.EClose, server.do_handshake,
+ sock, '127.0.0.1')
+@@ -230,7 +213,7 @@ def __init__(self, *args, **kwargs):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ return ([sock], [], [])
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ self.assertEqual(server.do_handshake(sock, '127.0.0.1'), sock)
+ self.assertTrue(FakeHandler.CALLED, True)
+
+@@ -251,7 +234,7 @@ def test_do_handshake_ssl_without_cert_raises_error(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ return ([sock], [], [])
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ self.assertRaises(
+ websockifyserver.WebSockifyServer.EClose, server.do_handshake,
+ sock, '127.0.0.1')
+@@ -280,13 +263,13 @@ def load_verify_locations(self, cafile):
+ def wrap_socket(self, *args, **kwargs):
+ raise ssl.SSLError(ssl.SSL_ERROR_EOF)
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ if (hasattr(ssl, 'create_default_context')):
+ # for recent versions of python
+- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
++ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
+ else:
+ # for fallback for old versions of python
+- self.stubs.Set(ssl, 'wrap_socket', fake_wrap_socket)
++ patch('ssl.warp_socket').start().side_effect = fake_wrap_socket
+ self.assertRaises(
+ websockifyserver.WebSockifyServer.EClose, server.do_handshake,
+ sock, '127.0.0.1')
+@@ -321,10 +304,10 @@ def wrap_socket(self, *args, **kwargs):
+ def set_ciphers(self, ciphers_to_set):
+ fake_create_default_context.CIPHERS = ciphers_to_set
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ if (hasattr(ssl, 'create_default_context')):
+ # for recent versions of python
+- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
++ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
+ server.do_handshake(sock, '127.0.0.1')
+ self.assertEqual(fake_create_default_context.CIPHERS, test_ciphers)
+ else:
+@@ -365,10 +348,10 @@ def set_options(self, val):
+ fake_create_default_context.OPTIONS = val
+ options = property(get_options, set_options)
+
+- self.stubs.Set(select, 'select', fake_select)
++ patch('select.select').start().side_effect = fake_select
+ if (hasattr(ssl, 'create_default_context')):
+ # for recent versions of python
+- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
++ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
+ server.do_handshake(sock, '127.0.0.1')
+ self.assertEqual(fake_create_default_context.OPTIONS, test_options)
+ else:
+@@ -387,11 +370,9 @@ def test_start_server_error(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ raise Exception("fake error")
+
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
+- lambda *args, **kwargs: sock)
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
+- lambda *args, **kwargs: None)
+- self.stubs.Set(select, 'select', fake_select)
++ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
++ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
++ patch('select.select').start().side_effect = fake_select
+ server.start_server()
+
+ def test_start_server_keyboardinterrupt(self):
+@@ -401,11 +382,9 @@ def test_start_server_keyboardinterrupt(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ raise KeyboardInterrupt
+
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
+- lambda *args, **kwargs: sock)
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
+- lambda *args, **kwargs: None)
+- self.stubs.Set(select, 'select', fake_select)
++ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
++ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
++ patch('select.select').start().side_effect = fake_select
+ server.start_server()
+
+ def test_start_server_systemexit(self):
+@@ -415,11 +394,9 @@ def test_start_server_systemexit(self):
+ def fake_select(rlist, wlist, xlist, timeout=None):
+ sys.exit()
+
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
+- lambda *args, **kwargs: sock)
+- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
+- lambda *args, **kwargs: None)
+- self.stubs.Set(select, 'select', fake_select)
++ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
++ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
++ patch('select.select').start().side_effect = fake_select
+ server.start_server()
+
+ def test_socket_set_keepalive_options(self):
diff --git a/dev-python/websockify/websockify-0.9.0-r1.ebuild b/dev-python/websockify/websockify-0.9.0-r1.ebuild
new file mode 100644
index 000000000000..a8cbd99de236
--- /dev/null
+++ b/dev-python/websockify/websockify-0.9.0-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+# entry_points is used
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit distutils-r1
+
+SRC_URI="https://github.com/kanaka/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+DESCRIPTION="WebSockets support for any application/server"
+HOMEPAGE="https://github.com/kanaka/websockify"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
+BDEPEND="test? ( dev-python/jwcrypto[${PYTHON_USEDEP}] )"
+
+# Backport a patch removing the need for mox3
+PATCHES=( "${FILESDIR}/${P}-mock-tests.patch" )
+
+distutils_enable_tests nose
+
+python_install_all() {
+ doman docs/${PN}.1
+ distutils-r1_python_install_all
+}