Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/websockify/, dev-python/websockify/files/
Date: Thu, 26 Aug 2021 08:24:45
Message-Id: 1629965923.794cb7556be246c9c745b5b8b4a44b471963978d.mgorny@gentoo
1 commit: 794cb7556be246c9c745b5b8b4a44b471963978d
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Thu Aug 26 08:18:43 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Thu Aug 26 08:18:43 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=794cb755
7
8 dev-python/websockify: Remove old
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 dev-python/websockify/Manifest | 1 -
13 .../files/websockify-0.9.0-mock-tests.patch | 392 ---------------------
14 dev-python/websockify/websockify-0.9.0-r1.ebuild | 31 --
15 3 files changed, 424 deletions(-)
16
17 diff --git a/dev-python/websockify/Manifest b/dev-python/websockify/Manifest
18 index 4c95a1a0c84..4d6225762a7 100644
19 --- a/dev-python/websockify/Manifest
20 +++ b/dev-python/websockify/Manifest
21 @@ -1,2 +1 @@
22 DIST websockify-0.10.0.gh.tar.gz 53402 BLAKE2B e909dc316d6dd0ee03ee23b07ca2d78cc60994a8f361b3968759c382c704637357848e903fb12af002b5d5b2bec957f9a4c2b0ddb0e6d008ff9b4a462f3e8871 SHA512 262071f4858e5e3b6471c6f3731d8715c5c13fcc5f43738a330323958a8f0cbe7797847bdc676f1c6c34055c6f8afb949d005a5607d6b220b893910ff973ddc5
23 -DIST websockify-0.9.0.tar.gz 58493 BLAKE2B 622a36979ec083dd3ea747b43cd8fec0916f9eb6f1a2b8f9b7acabd38f41aec839b2101c5261fdf2474bc40ebbbef61c9ba51d2e57f749f1e1a1c46879fb5d65 SHA512 d2251f653a40dc6dca0e5541845565d968c60be96a20a9b70b0305c4b7578f7fe205d4b98a94bb77d7c9383a396833af90fe92a6ade7e1a6f2d9bf8513d372c8
24
25 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
26 deleted file mode 100644
27 index a6af9508e07..00000000000
28 --- a/dev-python/websockify/files/websockify-0.9.0-mock-tests.patch
29 +++ /dev/null
30 @@ -1,392 +0,0 @@
31 -From 992e09eac484f25871b7fcfc6d11b8e5beac9edb Mon Sep 17 00:00:00 2001
32 -From: Pierre Ossman <ossman@××××××.se>
33 -Date: Fri, 21 Aug 2020 10:50:11 +0200
34 -Subject: [PATCH] Convert tests from mox to mock
35 -
36 -mox is deprecated upstream in favour of mock
37 ----
38 - test-requirements.txt | 2 +-
39 - tests/test_websocketproxy.py | 34 ++++------
40 - tests/test_websockifyserver.py | 111 +++++++++++++--------------------
41 - 3 files changed, 58 insertions(+), 89 deletions(-)
42 -
43 -diff --git a/test-requirements.txt b/test-requirements.txt
44 -index a63a15e..8e01437 100644
45 ---- a/test-requirements.txt
46 -+++ b/test-requirements.txt
47 -@@ -1,4 +1,4 @@
48 --mox3
49 -+mock
50 - nose
51 - jwcrypto;python_version>="2.7"
52 - redis;python_version>="2.7"
53 -diff --git a/tests/test_websocketproxy.py b/tests/test_websocketproxy.py
54 -index c0a8d93..d8a4916 100644
55 ---- a/tests/test_websocketproxy.py
56 -+++ b/tests/test_websocketproxy.py
57 -@@ -20,10 +20,11 @@
58 - import unittest
59 - import unittest
60 - import socket
61 -+try:
62 -+ from mock import patch
63 -+except ImportError:
64 -+ from unittest.mock import patch
65 -
66 --from mox3 import stubout
67 --
68 --from websockify import websockifyserver
69 - from websockify import websocketproxy
70 - from websockify import token_plugins
71 - from websockify import auth_plugins
72 -@@ -74,16 +75,14 @@ def __init__(self):
73 - class ProxyRequestHandlerTestCase(unittest.TestCase):
74 - def setUp(self):
75 - super(ProxyRequestHandlerTestCase, self).setUp()
76 -- self.stubs = stubout.StubOutForTesting()
77 - self.handler = websocketproxy.ProxyRequestHandler(
78 - FakeSocket(''), "127.0.0.1", FakeServer())
79 - self.handler.path = "https://localhost:6080/websockify?token=blah"
80 - self.handler.headers = None
81 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
82 -- staticmethod(lambda *args, **kwargs: None))
83 -+ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
84 -
85 - def tearDown(self):
86 -- self.stubs.UnsetAll()
87 -+ patch.stopall()
88 - super(ProxyRequestHandlerTestCase, self).tearDown()
89 -
90 - def test_get_target(self):
91 -@@ -120,8 +119,7 @@ class TestPlugin(token_plugins.BasePlugin):
92 - def lookup(self, token):
93 - return (self.source + token).split(',')
94 -
95 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
96 -- staticmethod(lambda *args, **kwargs: None))
97 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
98 -
99 - self.handler.server.token_plugin = TestPlugin("somehost,")
100 - self.handler.validate_connection()
101 -@@ -138,8 +136,7 @@ def test_asymmetric_jws_token_plugin(self):
102 - jwt_token.make_signed_token(key)
103 - self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
104 -
105 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
106 -- staticmethod(lambda *args, **kwargs: None))
107 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
108 -
109 - self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/public.pem")
110 - self.handler.validate_connection()
111 -@@ -155,8 +152,7 @@ def test_asymmetric_jws_token_plugin_with_illigal_key_exception(self):
112 - jwt_token.make_signed_token(key)
113 - self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
114 -
115 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
116 -- staticmethod(lambda *args, **kwargs: None))
117 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
118 -
119 - self.handler.server.token_plugin = token_plugins.JWTTokenApi("wrong.pub")
120 - self.assertRaises(self.handler.server.EClose,
121 -@@ -171,8 +167,7 @@ def test_symmetric_jws_token_plugin(self):
122 - jwt_token.make_signed_token(key)
123 - self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
124 -
125 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
126 -- staticmethod(lambda *args, **kwargs: None))
127 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
128 -
129 - self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/symmetric.key")
130 - self.handler.validate_connection()
131 -@@ -188,8 +183,7 @@ def test_symmetric_jws_token_plugin_with_illigal_key_exception(self):
132 - jwt_token.make_signed_token(key)
133 - self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize())
134 -
135 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
136 -- staticmethod(lambda *args, **kwargs: None))
137 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
138 -
139 - self.handler.server.token_plugin = token_plugins.JWTTokenApi("wrong_sauce")
140 - self.assertRaises(self.handler.server.EClose,
141 -@@ -210,8 +204,7 @@ def test_asymmetric_jwe_token_plugin(self):
142 -
143 - self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwe_token.serialize())
144 -
145 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
146 -- staticmethod(lambda *args, **kwargs: None))
147 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
148 -
149 - self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/private.pem")
150 - self.handler.validate_connection()
151 -@@ -225,8 +218,7 @@ def authenticate(self, headers, target_host, target_port):
152 - if target_host == self.source:
153 - raise auth_plugins.AuthenticationError(response_msg="some_error")
154 -
155 -- self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error',
156 -- staticmethod(lambda *args, **kwargs: None))
157 -+ patcher = patch('websockify.websocketproxy.ProxyRequestHandler.send_auth_error').start()
158 -
159 - self.handler.server.auth_plugin = TestPlugin("somehost")
160 - self.handler.server.target_host = "somehost"
161 -diff --git a/tests/test_websockifyserver.py b/tests/test_websockifyserver.py
162 -index b9312dc..a089f55 100644
163 ---- a/tests/test_websockifyserver.py
164 -+++ b/tests/test_websockifyserver.py
165 -@@ -22,7 +22,10 @@
166 - import shutil
167 - import socket
168 - import ssl
169 --from mox3 import stubout
170 -+try:
171 -+ from mock import patch, MagicMock, ANY
172 -+except ImportError:
173 -+ from unittest.mock import patch, MagicMock, ANY
174 - import sys
175 - import tempfile
176 - import unittest
177 -@@ -73,22 +76,13 @@ def makefile(self, mode='r', buffsize=None):
178 - class WebSockifyRequestHandlerTestCase(unittest.TestCase):
179 - def setUp(self):
180 - super(WebSockifyRequestHandlerTestCase, self).setUp()
181 -- self.stubs = stubout.StubOutForTesting()
182 - self.tmpdir = tempfile.mkdtemp('-websockify-tests')
183 - # Mock this out cause it screws tests up
184 -- self.stubs.Set(os, 'chdir', lambda *args, **kwargs: None)
185 -- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
186 -- lambda *args, **kwargs: None)
187 --
188 -- def fake_send_error(self, code, message=None, explain=None):
189 -- self.last_code = code
190 --
191 -- self.stubs.Set(BaseHTTPRequestHandler, 'send_error',
192 -- fake_send_error)
193 -+ patch('os.chdir').start()
194 -
195 - def tearDown(self):
196 - """Called automatically after each test."""
197 -- self.stubs.UnsetAll()
198 -+ patch.stopall()
199 - os.rmdir(self.tmpdir)
200 - super(WebSockifyRequestHandlerTestCase, self).tearDown()
201 -
202 -@@ -101,47 +95,36 @@ def _get_server(self, handler_class=websockifyserver.WebSockifyRequestHandler,
203 - record=self.tmpdir, daemon=False, ssl_only=0, idle_timeout=1,
204 - **kwargs)
205 -
206 -- def test_normal_get_with_only_upgrade_returns_error(self):
207 -+ @patch('websockify.websockifyserver.WebSockifyRequestHandler.send_error')
208 -+ def test_normal_get_with_only_upgrade_returns_error(self, send_error):
209 - server = self._get_server(web=None)
210 - handler = websockifyserver.WebSockifyRequestHandler(
211 - FakeSocket('GET /tmp.txt HTTP/1.1'), '127.0.0.1', server)
212 -
213 -- def fake_send_response(self, code, message=None):
214 -- self.last_code = code
215 --
216 -- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
217 -- fake_send_response)
218 --
219 - handler.do_GET()
220 -- self.assertEqual(handler.last_code, 405)
221 -+ send_error.assert_called_with(405, ANY)
222 -
223 -- def test_list_dir_with_file_only_returns_error(self):
224 -+ @patch('websockify.websockifyserver.WebSockifyRequestHandler.send_error')
225 -+ def test_list_dir_with_file_only_returns_error(self, send_error):
226 - server = self._get_server(file_only=True)
227 - handler = websockifyserver.WebSockifyRequestHandler(
228 - FakeSocket('GET / HTTP/1.1'), '127.0.0.1', server)
229 -
230 -- def fake_send_response(self, code, message=None):
231 -- self.last_code = code
232 --
233 -- self.stubs.Set(BaseHTTPRequestHandler, 'send_response',
234 -- fake_send_response)
235 --
236 - handler.path = '/'
237 - handler.do_GET()
238 -- self.assertEqual(handler.last_code, 404)
239 -+ send_error.assert_called_with(404, ANY)
240 -
241 -
242 - class WebSockifyServerTestCase(unittest.TestCase):
243 - def setUp(self):
244 - super(WebSockifyServerTestCase, self).setUp()
245 -- self.stubs = stubout.StubOutForTesting()
246 - self.tmpdir = tempfile.mkdtemp('-websockify-tests')
247 - # Mock this out cause it screws tests up
248 -- self.stubs.Set(os, 'chdir', lambda *args, **kwargs: None)
249 -+ patch('os.chdir').start()
250 -
251 - def tearDown(self):
252 - """Called automatically after each test."""
253 -- self.stubs.UnsetAll()
254 -+ patch.stopall()
255 - os.rmdir(self.tmpdir)
256 - super(WebSockifyServerTestCase, self).tearDown()
257 -
258 -@@ -154,10 +137,10 @@ def _get_server(self, handler_class=websockifyserver.WebSockifyRequestHandler,
259 -
260 - def test_daemonize_raises_error_while_closing_fds(self):
261 - server = self._get_server(daemon=True, ssl_only=1, idle_timeout=1)
262 -- self.stubs.Set(os, 'fork', lambda *args: 0)
263 -- self.stubs.Set(signal, 'signal', lambda *args: None)
264 -- self.stubs.Set(os, 'setsid', lambda *args: None)
265 -- self.stubs.Set(os, 'close', raise_oserror)
266 -+ patch('os.fork').start().return_value = 0
267 -+ patch('signal.signal').start()
268 -+ patch('os.setsid').start()
269 -+ patch('os.close').start().side_effect = raise_oserror
270 - self.assertRaises(OSError, server.daemonize, keepfd=None, chdir='./')
271 -
272 - def test_daemonize_ignores_ebadf_error_while_closing_fds(self):
273 -@@ -165,11 +148,11 @@ def raise_oserror_ebadf(fd):
274 - raise OSError(errno.EBADF, 'fake error')
275 -
276 - server = self._get_server(daemon=True, ssl_only=1, idle_timeout=1)
277 -- self.stubs.Set(os, 'fork', lambda *args: 0)
278 -- self.stubs.Set(os, 'setsid', lambda *args: None)
279 -- self.stubs.Set(signal, 'signal', lambda *args: None)
280 -- self.stubs.Set(os, 'close', raise_oserror_ebadf)
281 -- self.stubs.Set(os, 'open', raise_oserror)
282 -+ patch('os.fork').start().return_value = 0
283 -+ patch('signal.signal').start()
284 -+ patch('os.setsid').start()
285 -+ patch('os.close').start().side_effect = raise_oserror_ebadf
286 -+ patch('os.open').start().side_effect = raise_oserror
287 - self.assertRaises(OSError, server.daemonize, keepfd=None, chdir='./')
288 -
289 - def test_handshake_fails_on_not_ready(self):
290 -@@ -178,7 +161,7 @@ def test_handshake_fails_on_not_ready(self):
291 - def fake_select(rlist, wlist, xlist, timeout=None):
292 - return ([], [], [])
293 -
294 -- self.stubs.Set(select, 'select', fake_select)
295 -+ patch('select.select').start().side_effect = fake_select
296 - self.assertRaises(
297 - websockifyserver.WebSockifyServer.EClose, server.do_handshake,
298 - FakeSocket(), '127.0.0.1')
299 -@@ -191,7 +174,7 @@ def test_empty_handshake_fails(self):
300 - def fake_select(rlist, wlist, xlist, timeout=None):
301 - return ([sock], [], [])
302 -
303 -- self.stubs.Set(select, 'select', fake_select)
304 -+ patch('select.select').start().side_effect = fake_select
305 - self.assertRaises(
306 - websockifyserver.WebSockifyServer.EClose, server.do_handshake,
307 - sock, '127.0.0.1')
308 -@@ -208,7 +191,7 @@ def test_handshake_ssl_only_without_ssl_raises_error(self):
309 - def fake_select(rlist, wlist, xlist, timeout=None):
310 - return ([sock], [], [])
311 -
312 -- self.stubs.Set(select, 'select', fake_select)
313 -+ patch('select.select').start().side_effect = fake_select
314 - self.assertRaises(
315 - websockifyserver.WebSockifyServer.EClose, server.do_handshake,
316 - sock, '127.0.0.1')
317 -@@ -230,7 +213,7 @@ def __init__(self, *args, **kwargs):
318 - def fake_select(rlist, wlist, xlist, timeout=None):
319 - return ([sock], [], [])
320 -
321 -- self.stubs.Set(select, 'select', fake_select)
322 -+ patch('select.select').start().side_effect = fake_select
323 - self.assertEqual(server.do_handshake(sock, '127.0.0.1'), sock)
324 - self.assertTrue(FakeHandler.CALLED, True)
325 -
326 -@@ -251,7 +234,7 @@ def test_do_handshake_ssl_without_cert_raises_error(self):
327 - def fake_select(rlist, wlist, xlist, timeout=None):
328 - return ([sock], [], [])
329 -
330 -- self.stubs.Set(select, 'select', fake_select)
331 -+ patch('select.select').start().side_effect = fake_select
332 - self.assertRaises(
333 - websockifyserver.WebSockifyServer.EClose, server.do_handshake,
334 - sock, '127.0.0.1')
335 -@@ -280,13 +263,13 @@ def load_verify_locations(self, cafile):
336 - def wrap_socket(self, *args, **kwargs):
337 - raise ssl.SSLError(ssl.SSL_ERROR_EOF)
338 -
339 -- self.stubs.Set(select, 'select', fake_select)
340 -+ patch('select.select').start().side_effect = fake_select
341 - if (hasattr(ssl, 'create_default_context')):
342 - # for recent versions of python
343 -- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
344 -+ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
345 - else:
346 - # for fallback for old versions of python
347 -- self.stubs.Set(ssl, 'wrap_socket', fake_wrap_socket)
348 -+ patch('ssl.warp_socket').start().side_effect = fake_wrap_socket
349 - self.assertRaises(
350 - websockifyserver.WebSockifyServer.EClose, server.do_handshake,
351 - sock, '127.0.0.1')
352 -@@ -321,10 +304,10 @@ def wrap_socket(self, *args, **kwargs):
353 - def set_ciphers(self, ciphers_to_set):
354 - fake_create_default_context.CIPHERS = ciphers_to_set
355 -
356 -- self.stubs.Set(select, 'select', fake_select)
357 -+ patch('select.select').start().side_effect = fake_select
358 - if (hasattr(ssl, 'create_default_context')):
359 - # for recent versions of python
360 -- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
361 -+ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
362 - server.do_handshake(sock, '127.0.0.1')
363 - self.assertEqual(fake_create_default_context.CIPHERS, test_ciphers)
364 - else:
365 -@@ -365,10 +348,10 @@ def set_options(self, val):
366 - fake_create_default_context.OPTIONS = val
367 - options = property(get_options, set_options)
368 -
369 -- self.stubs.Set(select, 'select', fake_select)
370 -+ patch('select.select').start().side_effect = fake_select
371 - if (hasattr(ssl, 'create_default_context')):
372 - # for recent versions of python
373 -- self.stubs.Set(ssl, 'create_default_context', fake_create_default_context)
374 -+ patch('ssl.create_default_context').start().side_effect = fake_create_default_context
375 - server.do_handshake(sock, '127.0.0.1')
376 - self.assertEqual(fake_create_default_context.OPTIONS, test_options)
377 - else:
378 -@@ -387,11 +370,9 @@ def test_start_server_error(self):
379 - def fake_select(rlist, wlist, xlist, timeout=None):
380 - raise Exception("fake error")
381 -
382 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
383 -- lambda *args, **kwargs: sock)
384 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
385 -- lambda *args, **kwargs: None)
386 -- self.stubs.Set(select, 'select', fake_select)
387 -+ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
388 -+ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
389 -+ patch('select.select').start().side_effect = fake_select
390 - server.start_server()
391 -
392 - def test_start_server_keyboardinterrupt(self):
393 -@@ -401,11 +382,9 @@ def test_start_server_keyboardinterrupt(self):
394 - def fake_select(rlist, wlist, xlist, timeout=None):
395 - raise KeyboardInterrupt
396 -
397 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
398 -- lambda *args, **kwargs: sock)
399 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
400 -- lambda *args, **kwargs: None)
401 -- self.stubs.Set(select, 'select', fake_select)
402 -+ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
403 -+ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
404 -+ patch('select.select').start().side_effect = fake_select
405 - server.start_server()
406 -
407 - def test_start_server_systemexit(self):
408 -@@ -415,11 +394,9 @@ def test_start_server_systemexit(self):
409 - def fake_select(rlist, wlist, xlist, timeout=None):
410 - sys.exit()
411 -
412 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'socket',
413 -- lambda *args, **kwargs: sock)
414 -- self.stubs.Set(websockifyserver.WebSockifyServer, 'daemonize',
415 -- lambda *args, **kwargs: None)
416 -- self.stubs.Set(select, 'select', fake_select)
417 -+ patch('websockify.websockifyserver.WebSockifyServer.socket').start()
418 -+ patch('websockify.websockifyserver.WebSockifyServer.daemonize').start()
419 -+ patch('select.select').start().side_effect = fake_select
420 - server.start_server()
421 -
422 - def test_socket_set_keepalive_options(self):
423
424 diff --git a/dev-python/websockify/websockify-0.9.0-r1.ebuild b/dev-python/websockify/websockify-0.9.0-r1.ebuild
425 deleted file mode 100644
426 index 09e246f3ba5..00000000000
427 --- a/dev-python/websockify/websockify-0.9.0-r1.ebuild
428 +++ /dev/null
429 @@ -1,31 +0,0 @@
430 -# Copyright 1999-2020 Gentoo Authors
431 -# Distributed under the terms of the GNU General Public License v2
432 -
433 -EAPI=7
434 -
435 -PYTHON_COMPAT=( python3_{7..9} )
436 -# entry_points is used
437 -DISTUTILS_USE_SETUPTOOLS=rdepend
438 -
439 -inherit distutils-r1
440 -
441 -SRC_URI="https://github.com/novnc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
442 -DESCRIPTION="WebSockets support for any application/server"
443 -HOMEPAGE="https://github.com/novnc/websockify"
444 -
445 -LICENSE="LGPL-3"
446 -SLOT="0"
447 -KEYWORDS="amd64 ~arm64 x86"
448 -
449 -RDEPEND="dev-python/numpy[${PYTHON_USEDEP}]"
450 -BDEPEND="test? ( dev-python/jwcrypto[${PYTHON_USEDEP}] )"
451 -
452 -# Backport a patch removing the need for mox3
453 -PATCHES=( "${FILESDIR}/${P}-mock-tests.patch" )
454 -
455 -distutils_enable_tests nose
456 -
457 -python_install_all() {
458 - doman docs/${PN}.1
459 - distutils-r1_python_install_all
460 -}