diff --git a/setup.py b/setup.py index 094880eaa867ce1d2bbd0813c85cd1bbdea7d8f6..9cbaa5967b022fa3a5b1f798bb19a3d69b4e236b 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="stripe-checkout", - version="0.7", + version="0.8", author="GEANT", author_email="swd@geant.org", description="Stripe custom checkout support service", diff --git a/stripe_checkout/stripe_checkout/visit.py b/stripe_checkout/stripe_checkout/visit.py index 5538e8ce6375c99dba318879bcc680641c986e3b..d3415829dc9ef4390c7a2546ddaaddcaf39771b8 100644 --- a/stripe_checkout/stripe_checkout/visit.py +++ b/stripe_checkout/stripe_checkout/visit.py @@ -88,8 +88,18 @@ class Visitor(dict): return addr return {} + @property + def company(self): + return self["contact"].get("company", "") + + @company.setter + def company(self, value): + self["contact"]["company"] = value + @property def organization(self): + if company := self.company: + return company for question in self.get("questions", []): if question["id"] == VISIT_ORGANIZATION_QUESTION_ID: answers = question["answers"] diff --git a/test/test_stripe.py b/test/test_stripe.py index 7f5458aa264762568e7caa5af3dafbc737a8e94f..ed91385a1a028b25374c9076cc53189b54b4e274 100644 --- a/test/test_stripe.py +++ b/test/test_stripe.py @@ -62,17 +62,29 @@ def test_adds_organization_to_billing_address(create_visitor, mock_stripe): assert full_result["line1"] == "some_organization" +def test_adds_company_to_billing_address(create_visitor, mock_stripe): + visitor = create_visitor(organization="some_organization") + visitor.company = "some_company" + stripe.Customer.search.return_value = {"data": []} + get_or_create_customer(visitor) + assert stripe.Customer.create.call_count == 1 + + full_result = stripe.Customer.create.call_args.kwargs["address"] + assert full_result["line1"] == "some_company" + + def test_updates_customer_metadata(create_visitor, mock_stripe): stripe.Customer.search.return_value = { "data": [{"id": "stripe-cus-id", "metadata": {"key": "value"}}] } - visitor = create_visitor(organization="some_organization") + visitor = create_visitor() + visitor.company = "some_company" get_or_create_customer(visitor) metadata = stripe.Customer.modify.call_args.kwargs["metadata"] assert metadata == { "key": "value", "TNC25": "yes", - "organization": "some_organization", + "organization": "some_company", }