diff --git a/tests/feature_tests/pyproject.toml b/tests/feature_tests/pyproject.toml index 23ff0e0a6b..3bc4eb0af1 100644 --- a/tests/feature_tests/pyproject.toml +++ b/tests/feature_tests/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "gevent==24.2.1", "pymongo==4.8.0", "requests==2.32.3", - "sseclient==0.0.27", + "requests-sse==0.3.2", ] optional-dependencies.dev = [ "coverage==7.6.0", @@ -74,7 +74,7 @@ module = [ "behave", "behave.model", "behave.runner", - "sseclient", + "requests_sse", ] ignore_missing_imports = true diff --git a/tests/feature_tests/requirements/requirements-dev.txt b/tests/feature_tests/requirements/requirements-dev.txt index bc10708dfe..2e797e1850 100644 --- a/tests/feature_tests/requirements/requirements-dev.txt +++ b/tests/feature_tests/requirements/requirements-dev.txt @@ -522,17 +522,17 @@ requests==2.32.3 \ --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 # via # feature-tests (pyproject.toml) - # sseclient + # requests-sse +requests-sse==0.3.2 \ + --hash=sha256:3e17bd324e500c9b11c7c23dd00af3f0222070328134bda67a8917985cfc4127 \ + --hash=sha256:c3399b689f6e7bf0eac7c2031211d66ffbb3ab77afc6c9226a71c73c06609f61 + # via feature-tests (pyproject.toml) six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via # behave # parse-type - # sseclient -sseclient==0.0.27 \ - --hash=sha256:b2fe534dcb33b1d3faad13d60c5a7c718e28f85987f2a034ecf5ec279918c11c - # via feature-tests (pyproject.toml) types-requests==2.32.0.20240622 \ --hash=sha256:97bac6b54b5bd4cf91d407e62f0932a74821bc2211f22116d9ee1dd643826caf \ --hash=sha256:ed5e8a412fcc39159d6319385c009d642845f250c63902718f605cd90faade31 diff --git a/tests/feature_tests/requirements/requirements.txt b/tests/feature_tests/requirements/requirements.txt index 02e9860e90..4e55d140e4 100644 --- a/tests/feature_tests/requirements/requirements.txt +++ b/tests/feature_tests/requirements/requirements.txt @@ -286,17 +286,17 @@ requests==2.32.3 \ --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 # via # feature-tests (pyproject.toml) - # sseclient + # requests-sse +requests-sse==0.3.2 \ + --hash=sha256:3e17bd324e500c9b11c7c23dd00af3f0222070328134bda67a8917985cfc4127 \ + --hash=sha256:c3399b689f6e7bf0eac7c2031211d66ffbb3ab77afc6c9226a71c73c06609f61 + # via feature-tests (pyproject.toml) six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via # behave # parse-type - # sseclient -sseclient==0.0.27 \ - --hash=sha256:b2fe534dcb33b1d3faad13d60c5a7c718e28f85987f2a034ecf5ec279918c11c - # via feature-tests (pyproject.toml) typing-extensions==4.12.2 \ --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 diff --git a/tests/feature_tests/src/steps/measurement.py b/tests/feature_tests/src/steps/measurement.py index 8dc878a06a..f009229d64 100644 --- a/tests/feature_tests/src/steps/measurement.py +++ b/tests/feature_tests/src/steps/measurement.py @@ -5,7 +5,7 @@ from asserts import assert_equal, assert_in from behave import given, then, when from behave.runner import Context -from sseclient import SSEClient +from requests_sse import EventSource def create_measurement( # noqa: PLR0913 @@ -91,14 +91,15 @@ def set_entity_attribute(context: Context, attribute: str, key: str, value: str) def connect_to_nr_of_measurements_stream(context: Context, stream: str) -> None: """Get the number of measurements server-sent-events.""" context.sse_messages = [] - for message in SSEClient(f"{context.base_api_url}/nr_measurements"): # pragma: no feature-test-cover - context.sse_messages.append(message) - if message.event == "init": - continue # get the init and the flush message - if stream == "stream": - break - context.execute_steps('when the collector measures "42"') - stream = "stream" + with EventSource(f"{context.base_api_url}/nr_measurements") as event_source: + for message in event_source: # pragma: no feature-test-cover + context.sse_messages.append(message) + if message.type == "init": + continue # get the init and the flush message + if stream == "stream": + break + context.execute_steps('when the collector measures "42"') + stream = "stream" @then("the metric {has_or_had} one measurement") @@ -118,12 +119,12 @@ def check_nr_of_measurements(context: Context, has_or_had: str, count: str = "on def check_nr_of_measurements_stream(context: Context, message_type: str) -> None: """Check the server-sent events.""" if message_type == "init": - assert_equal("init", context.sse_messages[0].event) - assert_equal("0", context.sse_messages[0].id) - assert_equal("flush", context.sse_messages[1].event) - assert_equal("1", context.sse_messages[1].id) + assert_equal("init", context.sse_messages[0].type) + assert_equal("0", context.sse_messages[0].last_event_id) + assert_equal("flush", context.sse_messages[1].type) + assert_equal("1", context.sse_messages[1].last_event_id) else: - messages = [message for message in context.sse_messages if message.event != "flush"] + messages = [message for message in context.sse_messages if message.type != "flush"] assert_equal(int(messages[-2].data) + 1, int(messages[-1].data))