diff --git a/.builder/actions/aws_crt_python.py b/.builder/actions/aws_crt_python.py index febc7ce60..3a343769e 100644 --- a/.builder/actions/aws_crt_python.py +++ b/.builder/actions/aws_crt_python.py @@ -18,6 +18,8 @@ def run(self, env): env.shell.setenv('AWS_TEST_S3', '1') actions = [ + # We force install pip because some containers cannot uninstall and upgrade pip, but we need a newer + # pip for setuptools. Not ideal, but gets the job done. [python, '-m', 'pip', 'install', '--upgrade', '--ignore-installed', 'pip'], [python, '-m', 'pip', 'install', '--upgrade', '--requirement', 'requirements-dev.txt'], Builder.SetupCrossCICrtEnvironment(), diff --git a/test/test_mqtt.py b/test/test_mqtt.py index a6fe87ed5..16c223ced 100644 --- a/test/test_mqtt.py +++ b/test/test_mqtt.py @@ -2,7 +2,6 @@ # SPDX-License-Identifier: Apache-2.0. from awscrt.io import ClientBootstrap, ClientTlsContext, DefaultHostResolver, EventLoopGroup, Pkcs11Lib, TlsContextOptions -from awscrt import io from awscrt import http from awscrt.mqtt import Client, Connection, QoS from test import NativeResourceTest @@ -29,9 +28,6 @@ class MqttConnectionTest(NativeResourceTest): TEST_TOPIC = '/test/me/senpai/' + str(uuid.uuid4()) TEST_MSG = 'NOTICE ME!'.encode('utf8') - def _websocket_default_sign(transform_args, **kwargs): - transform_args.set_done() - def _create_connection(self, endpoint, tls_context, use_static_singletons=False): if use_static_singletons: client = Client(tls_ctx=tls_context) @@ -398,6 +394,10 @@ def test_mqtt311_websocket_connect_minimum(self): elg = EventLoopGroup() resolver = DefaultHostResolver(elg) bootstrap = ClientBootstrap(elg, resolver) + + def sign_function(transform_args, **kwargs): + transform_args.set_done() + client = Client(bootstrap, None) connection = Connection( client=client, @@ -405,7 +405,7 @@ def test_mqtt311_websocket_connect_minimum(self): host_name=_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_HOST"), port=int(_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_PORT")), use_websockets=True, - websocket_handshake_transform=self._websocket_default_sign) + websocket_handshake_transform=sign_function) connection.connect().result(TIMEOUT) connection.disconnect().result(TIMEOUT) @@ -413,6 +413,10 @@ def test_mqtt311_websocket_connect_basic_auth(self): elg = EventLoopGroup() resolver = DefaultHostResolver(elg) bootstrap = ClientBootstrap(elg, resolver) + + def sign_function(transform_args, **kwargs): + transform_args.set_done() + client = Client(bootstrap, None) connection = Connection( client=client, @@ -422,7 +426,7 @@ def test_mqtt311_websocket_connect_basic_auth(self): username=_get_env_variable("AWS_TEST_MQTT311_BASIC_AUTH_USERNAME"), password=_get_env_variable("AWS_TEST_MQTT311_BASIC_AUTH_PASSWORD"), use_websockets=True, - websocket_handshake_transform=self._websocket_default_sign) + websocket_handshake_transform=sign_function) connection.connect().result(TIMEOUT) connection.disconnect().result(TIMEOUT) @@ -432,6 +436,10 @@ def test_mqtt311_websocket_connect_tls(self): elg = EventLoopGroup() resolver = DefaultHostResolver(elg) bootstrap = ClientBootstrap(elg, resolver) + + def sign_function(transform_args, **kwargs): + transform_args.set_done() + client = Client(bootstrap, ClientTlsContext(tls_ctx_options)) connection = Connection( client=client, @@ -439,7 +447,7 @@ def test_mqtt311_websocket_connect_tls(self): host_name=_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_TLS_HOST"), port=int(_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_TLS_PORT")), use_websockets=True, - websocket_handshake_transform=self._websocket_default_sign) + websocket_handshake_transform=sign_function) connection.connect().result(TIMEOUT) connection.disconnect().result(TIMEOUT) @@ -449,7 +457,6 @@ def test_mqtt311_websocket_connect_http_proxy_tls(self): elg = EventLoopGroup() resolver = DefaultHostResolver(elg) bootstrap = ClientBootstrap(elg, resolver) - client = Client(bootstrap, ClientTlsContext(tls_ctx_options)) http_proxy_options = http.HttpProxyOptions( host_name=_get_env_variable("AWS_TEST_MQTT311_PROXY_HOST"), @@ -458,13 +465,14 @@ def test_mqtt311_websocket_connect_http_proxy_tls(self): http_proxy_options.connection_type = http.HttpProxyConnectionType.Tunneling http_proxy_options.auth_type = http.HttpProxyAuthenticationType.Nothing + client = Client(bootstrap, ClientTlsContext(tls_ctx_options)) connection = Connection( client=client, client_id=create_client_id(), host_name=_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_TLS_HOST"), port=int(_get_env_variable("AWS_TEST_MQTT311_WS_MQTT_TLS_PORT")), use_websockets=True, - websocket_handshake_transform=self._websocket_default_sign, + websocket_handshake_transform=sign_function, proxy_options=http_proxy_options) connection.connect().result(TIMEOUT) connection.disconnect().result(TIMEOUT)