From 604bc53a3beec173020c944ce9cb38afca2a9126 Mon Sep 17 00:00:00 2001 From: Tobias Oberstein Date: Fri, 9 Mar 2018 10:37:31 +0100 Subject: [PATCH] Fix cs test (#955) * encode test string * already an instance * add extra deps (encryption) * add extra deps * deactivate py 3.3, tx < 15.4 * systematic version coverage * fix coverage (hopefully) * another try * actually need to yield, as a future is returned --- .travis.yml | 58 ++++++++++++++++++++++++++++++++--- Makefile | 3 ++ autobahn/asyncio/rawsocket.py | 2 +- autobahn/wamp/test/test_cryptosign.py | 18 +++++++++-- tox.ini | 32 ++++++++++--------- 5 files changed, 89 insertions(+), 24 deletions(-) diff --git a/autobahn/asyncio/rawsocket.py b/autobahn/asyncio/rawsocket.py index 130a8e41..bbb83337 100644 --- a/autobahn/asyncio/rawsocket.py +++ b/autobahn/asyncio/rawsocket.py @@ -408,7 +408,7 @@ class WampRawSocketClientProtocol(WampRawSocketMixinGeneral, WampRawSocketMixinA @property def serializer_id(self): if not hasattr(self, '_serializer'): - self._serializer = self.factory._serializer() + self._serializer = self.factory._serializer return self._serializer.RAWSOCKET_SERIALIZER_ID def get_channel_id(self, channel_id_type=u'tls-unique'): diff --git a/autobahn/wamp/test/test_cryptosign.py b/autobahn/wamp/test/test_cryptosign.py index 700ca3cc..78f8d556 100644 --- a/autobahn/wamp/test/test_cryptosign.py +++ b/autobahn/wamp/test/test_cryptosign.py @@ -25,9 +25,21 @@ ############################################################################### from __future__ import absolute_import + import hashlib +import os + from mock import Mock +import txaio + +if os.environ.get('USE_TWISTED', False): + txaio.use_twisted() +elif os.environ.get('USE_ASYNCIO', False): + txaio.use_asyncio() +else: + raise Exception('no networking framework selected') + from autobahn.wamp.cryptosign import _makepad, HAS_CRYPTOSIGN from autobahn.wamp import types from autobahn.wamp.auth import create_authenticator @@ -59,14 +71,14 @@ def setUp(self): self.key = SigningKey.from_ssh_data(keybody) self.privkey_hex = self.key._key.encode(encoder=HexEncoder) m = hashlib.sha256() - m.update("some TLS message") + m.update("some TLS message".encode()) self.channel_id = m.digest() def test_valid(self): session = Mock() session._transport.get_channel_id = Mock(return_value=self.channel_id) challenge = types.Challenge(u"ticket", dict(challenge="ff" * 32)) - signed = self.key.sign_challenge(session, challenge) + signed = yield self.key.sign_challenge(session, challenge) self.assertEqual( u'9b6f41540c9b95b4b7b281c3042fa9c54cef43c842d62ea3fd6030fcb66e70b3e80d49d44c29d1635da9348d02ec93f3ed1ef227dfb59a07b580095c2b82f80f9d16ca518aa0c2b707f2b2a609edeca73bca8dd59817a633f35574ac6fd80d00', signed.result, @@ -81,7 +93,7 @@ def test_authenticator(self): session = Mock() session._transport.get_channel_id = Mock(return_value=self.channel_id) challenge = types.Challenge(u"cryptosign", dict(challenge="ff" * 32)) - reply = authenticator.on_challenge(session, challenge) + reply = yield authenticator.on_challenge(session, challenge) self.assertEqual( reply.result, u'9b6f41540c9b95b4b7b281c3042fa9c54cef43c842d62ea3fd6030fcb66e70b3e80d49d44c29d1635da9348d02ec93f3ed1ef227dfb59a07b580095c2b82f80f9d16ca518aa0c2b707f2b2a609edeca73bca8dd59817a633f35574ac6fd80d00',