From 00d9529d9719d34a10e3c8b82ec3e4ac34a5945b Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Tue, 18 Jun 2024 13:47:45 +0100 Subject: [PATCH 1/3] Adding metrics test --- noxfile.py | 4 ++++ .../{ => cloudwatch_emf}/test_metrics_cloudwatch_emf.py | 0 .../functional/metrics/{ => datadog}/test_metrics_datadog.py | 0 .../metrics/{ => provider}/test_metrics_provider.py | 0 4 files changed, 4 insertions(+) rename tests/functional/metrics/{ => cloudwatch_emf}/test_metrics_cloudwatch_emf.py (100%) rename tests/functional/metrics/{ => datadog}/test_metrics_datadog.py (100%) rename tests/functional/metrics/{ => provider}/test_metrics_provider.py (100%) diff --git a/noxfile.py b/noxfile.py index 18a9e9cd4d5..cc342ad6f70 100644 --- a/noxfile.py +++ b/noxfile.py @@ -50,9 +50,13 @@ def build_and_run_test(session: nox.Session, folders: List, extras: Optional[str def test_with_only_required_packages(session: nox.Session): """Tests that only depends for required libraries""" # Logger + # Metrics - Amazon CloudWatch EMF + # Metrics - Base provider build_and_run_test( session, folders=[ f"{PREFIX_TESTS_FUNCTIONAL}/logger/", + f"{PREFIX_TESTS_FUNCTIONAL}/metrics/cloudwatch_emf/", + f"{PREFIX_TESTS_FUNCTIONAL}/metrics/provider/", ], ) diff --git a/tests/functional/metrics/test_metrics_cloudwatch_emf.py b/tests/functional/metrics/cloudwatch_emf/test_metrics_cloudwatch_emf.py similarity index 100% rename from tests/functional/metrics/test_metrics_cloudwatch_emf.py rename to tests/functional/metrics/cloudwatch_emf/test_metrics_cloudwatch_emf.py diff --git a/tests/functional/metrics/test_metrics_datadog.py b/tests/functional/metrics/datadog/test_metrics_datadog.py similarity index 100% rename from tests/functional/metrics/test_metrics_datadog.py rename to tests/functional/metrics/datadog/test_metrics_datadog.py diff --git a/tests/functional/metrics/test_metrics_provider.py b/tests/functional/metrics/provider/test_metrics_provider.py similarity index 100% rename from tests/functional/metrics/test_metrics_provider.py rename to tests/functional/metrics/provider/test_metrics_provider.py From d01ac19a358e57cecfa42848b2b8f70898e71f14 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Tue, 18 Jun 2024 13:56:22 +0100 Subject: [PATCH 2/3] Adding metrics test --- noxfile.py | 13 +++++++++++++ .../metrics/datadog/test_metrics_datadog.py | 3 +-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index cc342ad6f70..d20026d57a8 100644 --- a/noxfile.py +++ b/noxfile.py @@ -60,3 +60,16 @@ def test_with_only_required_packages(session: nox.Session): f"{PREFIX_TESTS_FUNCTIONAL}/metrics/provider/", ], ) + + +@nox.session() +def test_with_datadog_as_required_package(session: nox.Session): + """Tests that depends on Datadog library""" + # Metrics - Datadog + build_and_run_test( + session, + folders=[ + f"{PREFIX_TESTS_FUNCTIONAL}/metrics/datadog/", + ], + extras="datadog", + ) diff --git a/tests/functional/metrics/datadog/test_metrics_datadog.py b/tests/functional/metrics/datadog/test_metrics_datadog.py index abedfd99424..2626b8755c6 100644 --- a/tests/functional/metrics/datadog/test_metrics_datadog.py +++ b/tests/functional/metrics/datadog/test_metrics_datadog.py @@ -3,7 +3,6 @@ from collections import namedtuple import pytest -from test_metrics_provider import capture_metrics_output from aws_lambda_powertools.metrics.exceptions import MetricValueError, SchemaValidationError from aws_lambda_powertools.metrics.provider.cold_start import reset_cold_start_flag @@ -40,7 +39,7 @@ def test_datadog_write_to_log_with_env_variable(capsys, monkeypatch): # WHEN we add a metric metrics.add_metric(name="item_sold", value=1, product="latte", order="online") metrics.flush_metrics() - logs = capture_metrics_output(capsys) + logs = json.loads(capsys.readouterr().out.strip()) # THEN metrics is flushed to log logs["e"] = "" From d35725f56202b4fbe0a57014bdfc71725d0b6e0f Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Wed, 19 Jun 2024 11:52:18 +0100 Subject: [PATCH 3/3] Addressing Heitor's feedback --- noxfile.py | 5 ++--- tests/functional/logger/__init__.py | 0 tests/functional/logger/required_dependencies/__init__.py | 0 .../logger/{ => required_dependencies}/test_logger.py | 0 .../test_logger_powertools_formatter.py | 0 .../logger/{ => required_dependencies}/test_logger_utils.py | 0 .../test_logger_with_package_logger.py | 0 tests/functional/metrics/__init__.py | 0 tests/functional/metrics/datadog/__init__.py | 0 tests/functional/metrics/required_dependencies/__init__.py | 0 .../test_metrics_cloudwatch_emf.py | 0 .../test_metrics_provider.py | 0 12 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 tests/functional/logger/__init__.py create mode 100644 tests/functional/logger/required_dependencies/__init__.py rename tests/functional/logger/{ => required_dependencies}/test_logger.py (100%) rename tests/functional/logger/{ => required_dependencies}/test_logger_powertools_formatter.py (100%) rename tests/functional/logger/{ => required_dependencies}/test_logger_utils.py (100%) rename tests/functional/logger/{ => required_dependencies}/test_logger_with_package_logger.py (100%) create mode 100644 tests/functional/metrics/__init__.py create mode 100644 tests/functional/metrics/datadog/__init__.py create mode 100644 tests/functional/metrics/required_dependencies/__init__.py rename tests/functional/metrics/{cloudwatch_emf => required_dependencies}/test_metrics_cloudwatch_emf.py (100%) rename tests/functional/metrics/{provider => required_dependencies}/test_metrics_provider.py (100%) diff --git a/noxfile.py b/noxfile.py index d20026d57a8..83f4685379b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -55,9 +55,8 @@ def test_with_only_required_packages(session: nox.Session): build_and_run_test( session, folders=[ - f"{PREFIX_TESTS_FUNCTIONAL}/logger/", - f"{PREFIX_TESTS_FUNCTIONAL}/metrics/cloudwatch_emf/", - f"{PREFIX_TESTS_FUNCTIONAL}/metrics/provider/", + f"{PREFIX_TESTS_FUNCTIONAL}/logger/required_dependencies/", + f"{PREFIX_TESTS_FUNCTIONAL}/metrics/required_dependencies/", ], ) diff --git a/tests/functional/logger/__init__.py b/tests/functional/logger/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/functional/logger/required_dependencies/__init__.py b/tests/functional/logger/required_dependencies/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/functional/logger/test_logger.py b/tests/functional/logger/required_dependencies/test_logger.py similarity index 100% rename from tests/functional/logger/test_logger.py rename to tests/functional/logger/required_dependencies/test_logger.py diff --git a/tests/functional/logger/test_logger_powertools_formatter.py b/tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py similarity index 100% rename from tests/functional/logger/test_logger_powertools_formatter.py rename to tests/functional/logger/required_dependencies/test_logger_powertools_formatter.py diff --git a/tests/functional/logger/test_logger_utils.py b/tests/functional/logger/required_dependencies/test_logger_utils.py similarity index 100% rename from tests/functional/logger/test_logger_utils.py rename to tests/functional/logger/required_dependencies/test_logger_utils.py diff --git a/tests/functional/logger/test_logger_with_package_logger.py b/tests/functional/logger/required_dependencies/test_logger_with_package_logger.py similarity index 100% rename from tests/functional/logger/test_logger_with_package_logger.py rename to tests/functional/logger/required_dependencies/test_logger_with_package_logger.py diff --git a/tests/functional/metrics/__init__.py b/tests/functional/metrics/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/functional/metrics/datadog/__init__.py b/tests/functional/metrics/datadog/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/functional/metrics/required_dependencies/__init__.py b/tests/functional/metrics/required_dependencies/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/functional/metrics/cloudwatch_emf/test_metrics_cloudwatch_emf.py b/tests/functional/metrics/required_dependencies/test_metrics_cloudwatch_emf.py similarity index 100% rename from tests/functional/metrics/cloudwatch_emf/test_metrics_cloudwatch_emf.py rename to tests/functional/metrics/required_dependencies/test_metrics_cloudwatch_emf.py diff --git a/tests/functional/metrics/provider/test_metrics_provider.py b/tests/functional/metrics/required_dependencies/test_metrics_provider.py similarity index 100% rename from tests/functional/metrics/provider/test_metrics_provider.py rename to tests/functional/metrics/required_dependencies/test_metrics_provider.py