diff --git a/CHANGELOG.md b/CHANGELOG.md index f5ea0517..0df1f106 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # CHANGELOG +## Next Release + +- Adds the following functions + - `shipment.create_and_buy_luma` + - `shipment.buy_luma` + - `luma.get_promise` +- Fixes `tracking_codes` filter when retrieving all tracking codes + ## v10.0.1 (2025-05-27) - Corrects the endpoint used for creating/updating UPS accounts diff --git a/easypost/easypost_client.py b/easypost/easypost_client.py index 262833c1..b2c65ede 100644 --- a/easypost/easypost_client.py +++ b/easypost/easypost_client.py @@ -24,6 +24,7 @@ EndShipperService, EventService, InsuranceService, + LumaService, OrderService, ParcelService, PickupService, @@ -69,6 +70,7 @@ def __init__( self.end_shipper = EndShipperService(self) self.event = EventService(self) self.insurance = InsuranceService(self) + self.luma = LumaService(self) self.order = OrderService(self) self.parcel = ParcelService(self) self.rate = RateService(self) diff --git a/easypost/services/__init__.py b/easypost/services/__init__.py index f042f517..68b025d4 100644 --- a/easypost/services/__init__.py +++ b/easypost/services/__init__.py @@ -13,6 +13,7 @@ from easypost.services.end_shipper_service import EndShipperService from easypost.services.event_service import EventService from easypost.services.insurance_service import InsuranceService +from easypost.services.luma_service import LumaService from easypost.services.order_service import OrderService from easypost.services.parcel_service import ParcelService from easypost.services.pickup_service import PickupService diff --git a/easypost/services/luma_service.py b/easypost/services/luma_service.py new file mode 100644 index 00000000..75d5159c --- /dev/null +++ b/easypost/services/luma_service.py @@ -0,0 +1,33 @@ +from typing import ( + Any, +) + +from easypost.easypost_object import convert_to_easypost_object +from easypost.models import ( + Shipment, +) +from easypost.requestor import ( + RequestMethod, + Requestor, +) +from easypost.services.base_service import BaseService + + +class LumaService(BaseService): + def __init__(self, client): + self._client = client + self._model_class = "Luma" + + def get_promise( + self, + **params: dict[str, Any], + ) -> Shipment: + """Get service recommendations from Luma that meet the criteria of your ruleset.""" + url = "/luma/promise" + wrapped_params = { + self._snakecase_name("Shipment"): params, + } + + response = Requestor(self._client).request(method=RequestMethod.POST, url=url, params=wrapped_params) + + return convert_to_easypost_object(response=response) diff --git a/easypost/services/shipment_service.py b/easypost/services/shipment_service.py index 1f8a0885..91a622db 100644 --- a/easypost/services/shipment_service.py +++ b/easypost/services/shipment_service.py @@ -161,3 +161,29 @@ def recommend_ship_date(self, id: str, desired_delivery_date: str) -> list[dict[ response = Requestor(self._client).request(method=RequestMethod.GET, url=url, params=params) return convert_to_easypost_object(response=response.get("rates", [])) + + def create_and_buy_luma( + self, + **params: dict[str, Any], + ) -> Shipment: + """Create and buy a Luma Shipment in one call.""" + url = f"{self._class_url(self._model_class)}/luma" + wrapped_params = { + self._snakecase_name(self._model_class): params, + } + + response = Requestor(self._client).request(method=RequestMethod.POST, url=url, params=wrapped_params) + + return convert_to_easypost_object(response=response) + + def buy_luma( + self, + id: str, + **params: dict[str, Any], + ) -> Shipment: + """Buy a Shipment with Luma.""" + url = f"{self._instance_url(self._model_class, id)}/luma" + + response = Requestor(self._client).request(method=RequestMethod.POST, url=url, params=params) + + return convert_to_easypost_object(response=response) diff --git a/examples b/examples index 394ea5ef..739f96c8 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit 394ea5effde57b304c88999761126953cb1c7e91 +Subproject commit 739f96c80fa211060e0a0b8c13e7371c9a09d66f diff --git a/tests/cassettes/test_luma_get_promise.yaml b/tests/cassettes/test_luma_get_promise.yaml new file mode 100644 index 00000000..ef49e4f1 --- /dev/null +++ b/tests/cassettes/test_luma_get_promise.yaml @@ -0,0 +1,84 @@ +interactions: +- request: + body: '{"shipment": {"from_address": {"name": "Jack Sparrow", "street1": "388 + Townsend St", "street2": "Apt 20", "city": "San Francisco", "state": "CA", "zip": + "94107", "country": "US", "email": "test@example.com", "phone": "5555555555"}, + "to_address": {"name": "Elizabeth Swan", "street1": "179 N Harbor Dr", "city": + "Redondo Beach", "state": "CA", "zip": "90277", "country": "US", "email": "test@example.com", + "phone": "5555555555"}, "parcel": {"length": 10, "width": 8, "height": 4, "weight": + 15.4}, "ruleset_name": "cheapest_delivery", "planned_ship_date": "2025-06-12"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '568' + Content-Type: + - application/json + authorization: + - + user-agent: + - + method: POST + uri: https://api.easypost.com/v2/luma/promise + response: + body: + string: '{"luma_info": {"ai_results": [{"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-14", "predicted_deliver_days": + 2, "rate_usd": "7.42", "service": "Priority"}, {"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-15", "predicted_deliver_days": + 3, "rate_usd": "6.07", "service": "GroundAdvantage"}, {"carrier": "USPS", + "meets_ruleset_requirements": true, "predicted_deliver_by_date": "2025-06-13", + "predicted_deliver_days": 1, "rate_usd": "34.15", "service": "Express"}], + "matching_rule_idx": 0, "ruleset_description": "Buy the cheapest rate that + satisfies all of the following:\nRule 0\n \nOtherwise buy the cheapest + rate", "luma_selected_rate": {"carrier": "USPS", "carrier_account_id": "ca_b25657e9896e4d63ac8151ac346ac41e", + "currency": "USD", "rate": "6.07", "service": "GroundAdvantage", "luma_predicted_deliver_by_date": + "2025-06-15"}}}' + headers: + cache-control: + - private, no-cache, no-store + content-length: + - '873' + content-type: + - application/json; charset=utf-8 + expires: + - '0' + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-backend: + - easypost + x-content-type-options: + - nosniff + x-download-options: + - noopen + x-ep-request-uuid: + - 5b2f8478684b38fee2bb2938008b45a8 + x-frame-options: + - SAMEORIGIN + x-node: + - bigweb33nuq + x-permitted-cross-domain-policies: + - none + x-proxied: + - intlb3nuq e8fe6f4ec2 + - extlb1nuq 99aac35317 + x-runtime: + - '0.276214' + x-version-label: + - easypost-202506122002-4fcd94d6be-master + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_shipment_buy_luma.yaml b/tests/cassettes/test_shipment_buy_luma.yaml new file mode 100644 index 00000000..73d6e3dd --- /dev/null +++ b/tests/cassettes/test_shipment_buy_luma.yaml @@ -0,0 +1,289 @@ +interactions: +- request: + body: '{"shipment": {"from_address": {"name": "Jack Sparrow", "street1": "388 + Townsend St", "street2": "Apt 20", "city": "San Francisco", "state": "CA", "zip": + "94107", "country": "US", "email": "test@example.com", "phone": "5555555555"}, + "to_address": {"name": "Elizabeth Swan", "street1": "179 N Harbor Dr", "city": + "Redondo Beach", "state": "CA", "zip": "90277", "country": "US", "email": "test@example.com", + "phone": "5555555555"}, "parcel": {"length": 10, "width": 8, "height": 4, "weight": + 15.4}}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '496' + Content-Type: + - application/json + authorization: + - + user-agent: + - + method: POST + uri: https://api.easypost.com/v2/shipments + response: + body: + string: '{"id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "created_at": "2025-06-12T20:30:56Z", + "is_return": false, "messages": [], "mode": "test", "options": {"currency": + "USD", "payment": {"type": "SENDER"}, "date_advance": 0}, "reference": null, + "status": "unknown", "tracking_code": null, "updated_at": "2025-06-12T20:30:56Z", + "batch_id": null, "batch_status": null, "batch_message": null, "customs_info": + null, "from_address": {"id": "adr_249ad7f147cc11f0aae43cecef1b359e", "object": + "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", + "name": "Jack Sparrow", "company": null, "street1": "388 Townsend St", "street2": + "Apt 20", "city": "San Francisco", "state": "CA", "zip": "94107", "country": + "US", "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": null, "federal_tax_id": null, "state_tax_id": null, "verifications": + {}}, "insurance": null, "order_id": null, "parcel": {"id": "prcl_69d1bada91d041bdb6955a209eccbbdd", + "object": "Parcel", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "length": 10.0, "width": 8.0, "height": 4.0, "predefined_package": null, "weight": + 15.4, "mode": "test"}, "postage_label": null, "rates": [{"id": "rate_45ee86fffe994f5398ef78b1500270bb", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "Express", "carrier": "USPS", "rate": "34.15", + "currency": "USD", "retail_rate": "39.10", "retail_currency": "USD", "list_rate": + "34.15", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 1, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 1, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, {"id": "rate_87538ac8330d4d909b5bdd9bb96219ed", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "Priority", "carrier": "USPS", "rate": "7.42", + "currency": "USD", "retail_rate": "9.90", "retail_currency": "USD", "list_rate": + "8.34", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 2, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 2, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, {"id": "rate_aca6cf2c8fa64031a3b863e8f1a6f1bc", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "GroundAdvantage", "carrier": "USPS", "rate": "6.07", + "currency": "USD", "retail_rate": "8.85", "retail_currency": "USD", "list_rate": + "6.57", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 3, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 3, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}], "refund_status": null, "scan_form": + null, "selected_rate": null, "tracker": null, "to_address": {"id": "adr_2497405647cc11f0aae13cecef1b359e", + "object": "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": + "2025-06-12T20:30:56+00:00", "name": "Elizabeth Swan", "company": null, "street1": + "179 N Harbor Dr", "street2": null, "city": "Redondo Beach", "state": "CA", + "zip": "90277", "country": "US", "phone": "", "email": "", + "mode": "test", "carrier_facility": null, "residential": null, "federal_tax_id": + null, "state_tax_id": null, "verifications": {}}, "usps_zone": 4, "return_address": + {"id": "adr_249ad7f147cc11f0aae43cecef1b359e", "object": "Address", "created_at": + "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", "name": + "Jack Sparrow", "company": null, "street1": "388 Townsend St", "street2": + "Apt 20", "city": "San Francisco", "state": "CA", "zip": "94107", "country": + "US", "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": null, "federal_tax_id": null, "state_tax_id": null, "verifications": + {}}, "buyer_address": {"id": "adr_2497405647cc11f0aae13cecef1b359e", "object": + "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", + "name": "Elizabeth Swan", "company": null, "street1": "179 N Harbor Dr", "street2": + null, "city": "Redondo Beach", "state": "CA", "zip": "90277", "country": "US", + "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": null, "federal_tax_id": null, "state_tax_id": null, "verifications": + {}}, "forms": [], "fees": [], "object": "Shipment"}' + headers: + cache-control: + - private, no-cache, no-store + content-length: + - '4325' + content-type: + - application/json; charset=utf-8 + expires: + - '0' + location: + - /api/v2/shipments/shp_bd34417cf07142e1a5dac80fc08b5a90 + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-backend: + - easypost + x-content-type-options: + - nosniff + x-download-options: + - noopen + x-ep-request-uuid: + - 5339474e684b3900e2bb293a008da7d7 + x-frame-options: + - SAMEORIGIN + x-node: + - bigweb53nuq + x-permitted-cross-domain-policies: + - none + x-proxied: + - intlb4nuq e8fe6f4ec2 + - extlb2nuq 99aac35317 + x-runtime: + - '0.223175' + x-version-label: + - easypost-202506122002-4fcd94d6be-master + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"ruleset_name": "cheapest_delivery", "planned_ship_date": "2025-06-12"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '72' + Content-Type: + - application/json + authorization: + - + user-agent: + - + method: POST + uri: https://api.easypost.com/v2/shipments/shp_bd34417cf07142e1a5dac80fc08b5a90/luma + response: + body: + string: '{"id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "object": "Shipment", + "mode": "test", "reference": null, "to_address": {"id": "adr_2497405647cc11f0aae13cecef1b359e", + "object": "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": + "2025-06-12T20:30:56+00:00", "name": "ELIZABETH SWAN", "company": null, "street1": + "179 N HARBOR DR", "street2": "", "city": "REDONDO BEACH", "state": "CA", + "zip": "90277-2506", "country": "US", "phone": "", "email": "", + "mode": "test", "carrier_facility": null, "residential": false, "federal_tax_id": + null, "state_tax_id": null, "verifications": {"zip4": {"success": true, "errors": + [], "details": null}, "delivery": {"success": true, "errors": [], "details": + {"latitude": 33.8436, "longitude": -118.39177, "time_zone": "America/Los_Angeles"}}}}, + "from_address": {"id": "adr_249ad7f147cc11f0aae43cecef1b359e", "object": "Address", + "created_at": "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", + "name": "Jack Sparrow", "company": null, "street1": "388 Townsend St", "street2": + "Apt 20", "city": "San Francisco", "state": "CA", "zip": "94107", "country": + "US", "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": null, "federal_tax_id": null, "state_tax_id": null, "verifications": + {}}, "return_address": {"id": "adr_249ad7f147cc11f0aae43cecef1b359e", "object": + "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", + "name": "Jack Sparrow", "company": null, "street1": "388 Townsend St", "street2": + "Apt 20", "city": "San Francisco", "state": "CA", "zip": "94107", "country": + "US", "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": null, "federal_tax_id": null, "state_tax_id": null, "verifications": + {}}, "buyer_address": {"id": "adr_2497405647cc11f0aae13cecef1b359e", "object": + "Address", "created_at": "2025-06-12T20:30:56+00:00", "updated_at": "2025-06-12T20:30:56+00:00", + "name": "ELIZABETH SWAN", "company": null, "street1": "179 N HARBOR DR", "street2": + "", "city": "REDONDO BEACH", "state": "CA", "zip": "90277-2506", "country": + "US", "phone": "", "email": "", "mode": "test", "carrier_facility": + null, "residential": false, "federal_tax_id": null, "state_tax_id": null, + "verifications": {"zip4": {"success": true, "errors": [], "details": null}, + "delivery": {"success": true, "errors": [], "details": {"latitude": 33.8436, + "longitude": -118.39177, "time_zone": "America/Los_Angeles"}}}}, "parcel": + {"id": "prcl_69d1bada91d041bdb6955a209eccbbdd", "object": "Parcel", "created_at": + "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", "length": 10.0, + "width": 8.0, "height": 4.0, "predefined_package": null, "weight": 15.4, "mode": + "test"}, "customs_info": null, "scan_form": null, "forms": [], "insurance": + null, "rates": [{"id": "rate_45ee86fffe994f5398ef78b1500270bb", "object": + "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "Express", "carrier": "USPS", "rate": "34.15", + "currency": "USD", "retail_rate": "39.10", "retail_currency": "USD", "list_rate": + "34.15", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 1, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 1, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, {"id": "rate_87538ac8330d4d909b5bdd9bb96219ed", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "Priority", "carrier": "USPS", "rate": "7.42", + "currency": "USD", "retail_rate": "9.90", "retail_currency": "USD", "list_rate": + "8.34", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 2, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 2, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, {"id": "rate_aca6cf2c8fa64031a3b863e8f1a6f1bc", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "GroundAdvantage", "carrier": "USPS", "rate": "6.07", + "currency": "USD", "retail_rate": "8.85", "retail_currency": "USD", "list_rate": + "6.57", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 3, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 3, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}], "selected_rate": {"id": "rate_aca6cf2c8fa64031a3b863e8f1a6f1bc", + "object": "Rate", "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:56Z", + "mode": "test", "service": "GroundAdvantage", "carrier": "USPS", "rate": "6.07", + "currency": "USD", "retail_rate": "8.85", "retail_currency": "USD", "list_rate": + "6.57", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 3, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 3, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, "luma_info": {"ai_results": [{"carrier": + "USPS", "meets_ruleset_requirements": true, "predicted_deliver_by_date": "2025-06-13", + "predicted_deliver_days": 1, "rate_id": "rate_45ee86fffe994f5398ef78b1500270bb", + "rate_usd": "34.15", "service": "Express"}, {"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-14", "predicted_deliver_days": + 2, "rate_id": "rate_87538ac8330d4d909b5bdd9bb96219ed", "rate_usd": "7.42", + "service": "Priority"}, {"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-15", "predicted_deliver_days": + 3, "rate_id": "rate_aca6cf2c8fa64031a3b863e8f1a6f1bc", "rate_usd": "6.07", + "service": "GroundAdvantage"}], "matching_rule_idx": 0, "ruleset_description": + "Buy the cheapest rate that satisfies all of the following:\nRule 0\n \nOtherwise + buy the cheapest rate"}, "postage_label": {"object": "PostageLabel", "id": + "pl_ceda993a17404090b9d046986f23a8a1", "created_at": "2025-06-12T20:30:56Z", + "updated_at": "2025-06-12T20:30:57Z", "date_advance": 0, "integrated_form": + "none", "label_date": "2025-06-12T20:30:56Z", "label_resolution": 300, "label_size": + "4x6", "label_type": "default", "label_file_type": "image/png", "label_url": + "https://easypost-files.s3.us-west-2.amazonaws.com/files/postage_label/20250612/e80efb8c8c84ed404fbd77a43e1bd75d5a.png", + "label_pdf_url": null, "label_zpl_url": null, "label_epl2_url": null, "label_file": + null}, "messages": [], "options": {"currency": "USD", "payment": {"type": + "SENDER"}, "date_advance": 0}, "is_return": null, "tracking_code": "9400100208303109973562", + "usps_zone": 4, "status": "unknown", "tracker": {"id": "trk_3814971546244ad6b45a65dbd60f550c", + "object": "Tracker", "mode": "test", "tracking_code": "9400100208303109973562", + "status": "unknown", "status_detail": "unknown", "created_at": "2025-06-12T20:30:57Z", + "updated_at": "2025-06-12T20:30:57Z", "signed_by": null, "weight": null, "est_delivery_date": + null, "shipment_id": "shp_bd34417cf07142e1a5dac80fc08b5a90", "carrier": "USPS", + "tracking_details": [], "fees": [], "carrier_detail": null, "public_url": + "https://track.easypost.com/djE6dHJrXzM4MTQ5NzE1NDYyNDRhZDZiNDVhNjVkYmQ2MGY1NTBj"}, + "fees": [{"object": "Fee", "type": "LabelFee", "amount": "0.00000", "charged": + true, "refunded": false}, {"object": "Fee", "type": "PostageFee", "amount": + "6.07000", "charged": true, "refunded": false}], "refund_status": null, "batch_id": + null, "batch_status": null, "batch_message": null, "tax_identifiers": null, + "created_at": "2025-06-12T20:30:56Z", "updated_at": "2025-06-12T20:30:57Z"}' + headers: + cache-control: + - private, no-cache, no-store + content-length: + - '7274' + content-type: + - application/json; charset=utf-8 + expires: + - '0' + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-backend: + - easypost + x-content-type-options: + - nosniff + x-download-options: + - noopen + x-ep-request-uuid: + - 5339474e684b3900e2bb293a008da825 + x-frame-options: + - SAMEORIGIN + x-node: + - bigweb59nuq + x-permitted-cross-domain-policies: + - none + x-proxied: + - intlb3nuq e8fe6f4ec2 + - extlb2nuq 99aac35317 + x-runtime: + - '0.807856' + x-version-label: + - easypost-202506122002-4fcd94d6be-master + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_shipment_create_and_buy_luma.yaml b/tests/cassettes/test_shipment_create_and_buy_luma.yaml new file mode 100644 index 00000000..68b7e074 --- /dev/null +++ b/tests/cassettes/test_shipment_create_and_buy_luma.yaml @@ -0,0 +1,125 @@ +interactions: +- request: + body: '{"shipment": {"to_address": {"name": "Jack Sparrow", "street1": "388 Townsend + St", "street2": "Apt 20", "city": "San Francisco", "state": "CA", "zip": "94107", + "country": "US", "email": "test@example.com", "phone": "5555555555"}, "from_address": + {"name": "Elizabeth Swan", "street1": "179 N Harbor Dr", "city": "Redondo Beach", + "state": "CA", "zip": "90277", "country": "US", "email": "test@example.com", + "phone": "5555555555"}, "parcel": {"length": 10, "width": 8, "height": 4, "weight": + 15.4}, "carrier_accounts": ["ca_b25657e9896e4d63ac8151ac346ac41e"], "carrier": + "USPS", "ruleset_name": "cheapest_delivery", "planned_ship_date": "2025-06-12"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '648' + Content-Type: + - application/json + authorization: + - + user-agent: + - + method: POST + uri: https://api.easypost.com/v2/shipments/luma + response: + body: + string: '{"id": "shp_5d4198306993451896ff04c456ccd4ff", "object": "Shipment", + "mode": "test", "reference": null, "to_address": {"id": "adr_240c833d47cc11f0aa843cecef1b359e", + "object": "Address", "created_at": "2025-06-12T20:30:55+00:00", "updated_at": + "2025-06-12T20:30:55+00:00", "name": "JACK SPARROW", "company": null, "street1": + "388 TOWNSEND ST APT 20", "street2": "", "city": "SAN FRANCISCO", "state": + "CA", "zip": "94107-1670", "country": "US", "phone": "", "email": + "", "mode": "test", "carrier_facility": null, "residential": true, + "federal_tax_id": null, "state_tax_id": null, "verifications": {"zip4": {"success": + true, "errors": [], "details": null}, "delivery": {"success": true, "errors": + [], "details": {"latitude": 37.77551, "longitude": -122.39697, "time_zone": + "America/Los_Angeles"}}}}, "from_address": {"id": "adr_240f71b247cc11f0aa873cecef1b359e", + "object": "Address", "created_at": "2025-06-12T20:30:55+00:00", "updated_at": + "2025-06-12T20:30:55+00:00", "name": "Elizabeth Swan", "company": null, "street1": + "179 N Harbor Dr", "street2": null, "city": "Redondo Beach", "state": "CA", + "zip": "90277", "country": "US", "phone": "", "email": "", + "mode": "test", "carrier_facility": null, "residential": null, "federal_tax_id": + null, "state_tax_id": null, "verifications": {}}, "parcel": {"id": "prcl_d3cf84f93a9a4f4098ba288f420f23d2", + "object": "Parcel", "created_at": "2025-06-12T20:30:55Z", "updated_at": "2025-06-12T20:30:55Z", + "length": 10.0, "width": 8.0, "height": 4.0, "predefined_package": null, "weight": + 15.4, "mode": "test"}, "customs_info": null, "forms": [], "insurance": null, + "selected_rate": {"id": "rate_c96972f3a89b426d9cf1589da0090adb", "object": + "Rate", "created_at": "2025-06-12T20:30:55Z", "updated_at": "2025-06-12T20:30:55Z", + "mode": "test", "service": "GroundAdvantage", "carrier": "USPS", "rate": "6.07", + "currency": "USD", "retail_rate": "8.85", "retail_currency": "USD", "list_rate": + "6.57", "list_currency": "USD", "billing_type": "easypost", "delivery_days": + 3, "delivery_date": null, "delivery_date_guaranteed": false, "est_delivery_days": + 3, "shipment_id": "shp_5d4198306993451896ff04c456ccd4ff", "carrier_account_id": + "ca_b25657e9896e4d63ac8151ac346ac41e"}, "luma_info": {"ai_results": [{"carrier": + "USPS", "meets_ruleset_requirements": true, "predicted_deliver_by_date": "2025-06-15", + "predicted_deliver_days": 3, "rate_id": "rate_2380bfac8dc641e592153c3ddedea48a", + "rate_usd": "7.42", "service": "Priority"}, {"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-15", "predicted_deliver_days": + 3, "rate_id": "rate_d2a22657e8db4958886c3c8184b73fd5", "rate_usd": "6.07", + "service": "GroundAdvantage"}, {"carrier": "USPS", "meets_ruleset_requirements": + true, "predicted_deliver_by_date": "2025-06-13", "predicted_deliver_days": + 1, "rate_id": "rate_bc38780a225c425f9a9ed58fdec2029a", "rate_usd": "34.15", + "service": "Express"}], "matching_rule_idx": 0, "ruleset_description": "Buy + the cheapest rate that satisfies all of the following:\nRule 0\n \nOtherwise + buy the cheapest rate"}, "postage_label": {"object": "PostageLabel", "id": + "pl_4ae25651ce484b389318a542db94e242", "created_at": "2025-06-12T20:30:55Z", + "updated_at": "2025-06-12T20:30:55Z", "date_advance": 0, "integrated_form": + "none", "label_date": "2025-06-12T20:30:55Z", "label_resolution": 300, "label_size": + "4x6", "label_type": "default", "label_file_type": null, "label_url": null, + "label_pdf_url": null, "label_zpl_url": null, "label_epl2_url": null, "label_file": + "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"}, + "messages": [], "tracking_code": "9400100208303109973555", "fees": [{"object": + "Fee", "type": "LabelFee", "amount": "0.00000", "charged": true, "refunded": + false}, {"object": "Fee", "type": "PostageFee", "amount": "6.07000", "charged": + true, "refunded": false}], "tax_identifiers": null, "created_at": "2025-06-12T20:30:55Z", + "updated_at": "2025-06-12T20:30:55Z"}' + headers: + cache-control: + - private, no-cache, no-store + content-length: + - '72280' + content-type: + - application/json; charset=utf-8 + expires: + - '0' + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-backend: + - easypost + x-canary: + - direct + x-content-type-options: + - nosniff + x-download-options: + - noopen + x-ep-request-uuid: + - 5b2f8479684b38ffe2bb2939008b468b + x-frame-options: + - SAMEORIGIN + x-node: + - bigweb32nuq + x-permitted-cross-domain-policies: + - none + x-proxied: + - intlb3nuq e8fe6f4ec2 + - extlb1nuq 99aac35317 + x-runtime: + - '0.814444' + x-version-label: + - easypost-202506122002-4fcd94d6be-master + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/tests/conftest.py b/tests/conftest.py index 3921259e..f19cf250 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -382,3 +382,13 @@ def desired_delivery_date(): @pytest.fixture def billing(): return read_fixture_data()["billing"] + + +@pytest.fixture +def luma_ruleset_name(): + return read_fixture_data()["luma"]["ruleset_name"] + + +@pytest.fixture +def luma_planned_ship_date(): + return "2025-06-12" diff --git a/tests/test_luma.py b/tests/test_luma.py new file mode 100644 index 00000000..d1fcbb4f --- /dev/null +++ b/tests/test_luma.py @@ -0,0 +1,17 @@ +import pytest + + +@pytest.mark.vcr() +def test_luma_get_promise( + basic_shipment, + luma_ruleset_name, + luma_planned_ship_date, + test_client, +): + """Test that we get service recommendations from Luma based on your ruleset.""" + basic_shipment["ruleset_name"] = luma_ruleset_name + basic_shipment["planned_ship_date"] = luma_planned_ship_date + + recommendations = test_client.luma.get_promise(**basic_shipment) + + assert recommendations.luma_info.luma_selected_rate is not None diff --git a/tests/test_shipment.py b/tests/test_shipment.py index 60d84ffa..ec98ca69 100644 --- a/tests/test_shipment.py +++ b/tests/test_shipment.py @@ -329,3 +329,38 @@ def test_shipment_recommend_ship_date(basic_shipment, desired_delivery_date, tes rates = test_client.shipment.recommend_ship_date(shipment.id, desired_delivery_date=desired_delivery_date) assert all(entry.get("easypost_time_in_transit_data") for entry in rates) + + +@pytest.mark.vcr() +def test_shipment_create_and_buy_luma( + one_call_buy_shipment, + luma_ruleset_name, + luma_planned_ship_date, + test_client, +): + """Test that we create and buy a Shipment with Luma.""" + del one_call_buy_shipment["service"] + one_call_buy_shipment["ruleset_name"] = luma_ruleset_name + one_call_buy_shipment["planned_ship_date"] = luma_planned_ship_date + shipment = test_client.shipment.create_and_buy_luma(**one_call_buy_shipment) + + assert shipment.postage_label is not None + + +@pytest.mark.vcr() +def test_shipment_buy_luma( + basic_shipment, + luma_ruleset_name, + luma_planned_ship_date, + test_client, +): + """Test that we buy a Shipment with Luma.""" + shipment = test_client.shipment.create(**basic_shipment) + + bought_shipment = test_client.shipment.buy_luma( + shipment.id, + ruleset_name=luma_ruleset_name, + planned_ship_date=luma_planned_ship_date, + ) + + assert bought_shipment.postage_label is not None