commit:     8c65658fe72ebed4fadd184d74f554f4405b0d7e
Author:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  9 23:38:25 2018 +0000
Commit:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
CommitDate: Fri Mar  9 23:42:56 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c65658f

dev-python/ws4py: Python 3.6 (for 0.3.4)

Bug: https://bugs.gentoo.org/643732
Package-Manager: Portage-2.3.24, Repoman-2.3.6

 dev-python/ws4py/files/ws4py-0.3.4-tests.patch | 67 ++++++++++++++++++++++++++
 dev-python/ws4py/ws4py-0.3.4-r1.ebuild         | 55 +++++++++++++++++++++
 2 files changed, 122 insertions(+)

diff --git a/dev-python/ws4py/files/ws4py-0.3.4-tests.patch 
b/dev-python/ws4py/files/ws4py-0.3.4-tests.patch
new file mode 100644
index 00000000000..dde60f2ed04
--- /dev/null
+++ b/dev-python/ws4py/files/ws4py-0.3.4-tests.patch
@@ -0,0 +1,67 @@
+From 185c88cb6779b3b15a5c14047bb62b8fcb8d2e57 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebast...@pipping.org>
+Date: Sat, 10 Mar 2018 00:33:37 +0100
+Subject: [PATCH] Fix AttributeErrors from mistaken Mock.assert_call_once_with
+
+This commit is a backport/subset of:
+https://github.com/Lawouach/WebSocket-for-Python/commit/b5d47f7b3497f1b713a20fe6306b7d9afdd8c408
+---
+ test/test_manager.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/test/test_manager.py b/test/test_manager.py
+index 8c229b0..aacc162 100644
+--- a/test/test_manager.py
++++ b/test/test_manager.py
+@@ -16,10 +16,10 @@ class WSManagerTest(unittest.TestCase):
+         ws.sock.fileno.return_value = 1
+         
+         m.add(ws)
+-        m.poller.register.assert_call_once_with(ws)
++        m.poller.register.assert_called_once_with(1)
+ 
+         m.remove(ws)
+-        m.poller.unregister.assert_call_once_with(ws)
++        m.poller.unregister.assert_called_once_with(1)
+         
+     @patch('ws4py.manager.SelectPoller')
+     def test_cannot_add_websocket_more_than_once(self, MockSelectPoller):
+@@ -49,7 +49,7 @@ class WSManagerTest(unittest.TestCase):
+         self.assertEqual(len(m), 1)
+         m.remove(ws)
+         self.assertEqual(len(m), 0)
+-        m.poller.unregister.assert_call_once_with(ws)
++        m.poller.unregister.assert_called_once_with(1)
+         m.poller.reset_mock()
+         
+         m.remove(ws)
+@@ -98,7 +98,7 @@ class WSManagerTest(unittest.TestCase):
+         m.add(ws)
+         m.start()
+         
+-        ws.terminate.assert_call_once_with()
++        ws.terminate.assert_called_once_with()
+         
+         m.stop()
+     
+@@ -109,7 +109,7 @@ class WSManagerTest(unittest.TestCase):
+         ws = MagicMock()
+         m.add(ws)
+         m.close_all()
+-        ws.terminate.assert_call_once_with(1001, 'Server is shutting down')
++        ws.close.assert_called_once_with(code=1001, reason='Server is 
shutting down')
+         
+     @patch('ws4py.manager.SelectPoller')
+     def test_broadcast(self, MockSelectPoller):
+@@ -120,7 +120,7 @@ class WSManagerTest(unittest.TestCase):
+         m.add(ws)
+ 
+         m.broadcast(b'hello there')
+-        ws.send.assert_call_once_with(b'hello there')
++        ws.send.assert_called_once_with(b'hello there', False)
+         
+     @patch('ws4py.manager.SelectPoller')
+     def test_broadcast_failure_must_not_break_caller(self, MockSelectPoller):
+-- 
+2.16.2
+

diff --git a/dev-python/ws4py/ws4py-0.3.4-r1.ebuild 
b/dev-python/ws4py/ws4py-0.3.4-r1.ebuild
new file mode 100644
index 00000000000..6ab67dfda7d
--- /dev/null
+++ b/dev-python/ws4py/ws4py-0.3.4-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# We could depend on dev-python/cherrypy when USE=server, but
+# that is an optional component ...
+# Same for www-servers/tornado and USE=client ... so why not???
+# pypy is viable but better with a cutdown set of deps
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+PYTHON_REQ_USE="threads?"
+
+inherit distutils-r1
+if [[ ${PV} == "9999" ]] ; then
+       EGIT_REPO_URI="https://github.com/Lawouach/WebSocket-for-Python.git";
+       inherit git-2
+else
+       inherit vcs-snapshot
+       
SRC_URI="https://github.com/Lawouach/WebSocket-for-Python/tarball/v${PV} -> 
${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="WebSocket client and server library for Python 2 and 3 as well as 
PyPy"
+HOMEPAGE="https://github.com/Lawouach/WebSocket-for-Python";
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+client +server test +threads"
+# doc build requires sphinxcontrib ext packages absent from portage
+
+RDEPEND=">=dev-python/greenlet-0.4.1[${PYTHON_USEDEP}]
+               $(python_gen_cond_dep 'dev-python/gevent[${PYTHON_USEDEP}]' 
python2_7)
+               >=dev-python/cython-0.19.1[${PYTHON_USEDEP}]
+               client? ( >=www-servers/tornado-3.1[${PYTHON_USEDEP}] )
+               server? ( <dev-python/cherrypy-9[${PYTHON_USEDEP}] )"
+DEPEND="test? (
+               <dev-python/cherrypy-9[${PYTHON_USEDEP}]
+               dev-python/unittest2[${PYTHON_USEDEP}]
+               >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+       )"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-tests.patch
+)
+
+python_test() {
+       # testsuite displays an issue with mock under py3 but is non fatal
+       "${PYTHON}" -m unittest discover || die "Tests failed under ${EPYTHON}"
+}
+
+python_install() {
+       distutils-r1_python_install
+       use client || rm -rf "${D}$(python_get_sitedir)"/ws4py/client
+       use server || rm -rf "${D}$(python_get_sitedir)"/ws4py/server
+}

Reply via email to