From 1e3888aae3f4429089643c478300b8d94e856caf Mon Sep 17 00:00:00 2001 From: Matthew Elwell Date: Mon, 19 Aug 2024 13:52:05 +0100 Subject: [PATCH] fix: allow unknown attrs from cb json meta (#4509) --- api/organisations/subscriptions/metadata.py | 1 + .../unit/organisations/chargebee/test_unit_chargebee_cache.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/api/organisations/subscriptions/metadata.py b/api/organisations/subscriptions/metadata.py index f897a3a01880..c6308892be2e 100644 --- a/api/organisations/subscriptions/metadata.py +++ b/api/organisations/subscriptions/metadata.py @@ -10,6 +10,7 @@ def __init__( api_calls: int = 0, projects: typing.Optional[int] = None, chargebee_email=None, + **kwargs, # allows for extra unknown attrs from CB json metadata ): self.seats = seats self.api_calls = api_calls diff --git a/api/tests/unit/organisations/chargebee/test_unit_chargebee_cache.py b/api/tests/unit/organisations/chargebee/test_unit_chargebee_cache.py index 333a22940472..cc1f726ff7ee 100644 --- a/api/tests/unit/organisations/chargebee/test_unit_chargebee_cache.py +++ b/api/tests/unit/organisations/chargebee/test_unit_chargebee_cache.py @@ -57,6 +57,7 @@ def test_chargebee_cache(mocker, db): "seats": 10, "api_calls": 100, "projects": 10, + "some_unknown_key": 1, # should be ignored } plan_id = "plan_id" plan_items = [ @@ -69,6 +70,7 @@ def test_chargebee_cache(mocker, db): "seats": 1, "api_calls": 10, "projects": 1, + "some_unknown_key": 1, # should be ignored } addon_id = "addon_id" addon_items = [ @@ -90,8 +92,10 @@ def test_chargebee_cache(mocker, db): assert cache.plans[plan_id].seats == plan_metadata["seats"] assert cache.plans[plan_id].api_calls == plan_metadata["api_calls"] assert cache.plans[plan_id].projects == plan_metadata["projects"] + assert not hasattr(cache.plans[plan_id], "some_unknown_key") assert len(cache.addons) == 1 assert cache.addons[addon_id].seats == addon_metadata["seats"] assert cache.addons[addon_id].api_calls == addon_metadata["api_calls"] assert cache.addons[addon_id].projects == addon_metadata["projects"] + assert not hasattr(cache.addons[addon_id], "some_unknown_key")