Skip to content

Commit 2253571

Browse files
Merge pull request #194 from alexanderjordanbaker/SerializationOfVersionAndTypeFix
Serialization of version and type fix
2 parents 2ef37ff + ab5ce5f commit 2253571

4 files changed

Lines changed: 44 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Changelog
22

33
## Version 3.1.0
4-
- Incoproate changes for Advanced Commerce API, Retention Messaging API 1.5 and App Store Server API v1.21 [https://github.com/apple/app-store-server-library-python/pull/188] [https://github.com/apple/app-store-server-library-python/pull/189] from @riyazpanjwani
4+
- Incorporate changes for Advanced Commerce API, Retention Messaging API 1.5 and App Store Server API v1.21 [https://github.com/apple/app-store-server-library-python/pull/188] [https://github.com/apple/app-store-server-library-python/pull/189] from @riyazpanjwani
55
- Incorporate changes for App Store Server API v1.20 [https://github.com/apple/app-store-server-library-python/pull/191] from @riyazpanjwani
66
- Incorporate changes for Retention Messaging API v1.3 and 1.4 [https://github.com/apple/app-store-server-library-python/pull/186]
77
- Fix deliveryStatus not being included in consumption information [https://github.com/apple/app-store-server-library-python/pull/184] from @ohadbenita

appstoreserverlibrary/models/LibraryUtility.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ def make_overrides(cl):
9797
cattrs_overrides[raw_field] = override(rename=matching_name)
9898
else:
9999
cattrs_overrides[raw_field] = override(rename=matching_name, omit_if_default=True)
100+
elif not attribute.init and attribute.name not in cattrs_overrides:
101+
cattrs_overrides[attribute.name] = override(omit=False)
100102
elif attribute.default is None and attribute.name not in cattrs_overrides:
101103
cattrs_overrides[attribute.name] = override(omit_if_default=True)
102104
return cattrs_overrides

tests/resources/models/advancedCommerceOneTimeChargeCreateRequest.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,5 @@
1010
"requestReferenceId": "550e8400-e29b-41d4-a716-446655440000"
1111
},
1212
"taxCode": "taxCode",
13-
"storefront": "USA",
14-
"operation": "CREATE",
15-
"version": "1.0"
13+
"storefront": "USA"
1614
}

tests/test_advanced_commerce_models.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,46 @@ def test_advanced_commerce_subscription_migrate_response_deserialization(self):
622622
self.assertEqual("signed_renewal_info_value", response.signedRenewalInfo)
623623
self.assertEqual("signed_transaction_info_value", response.signedTransactionInfo)
624624

625+
def test_one_time_charge_create_request_deserialization_sets_operation_and_version(self):
626+
json_data = read_data_from_file('tests/resources/models/advancedCommerceOneTimeChargeCreateRequest.json')
627+
628+
request_dict = json.loads(json_data)
629+
request = _get_cattrs_converter(AdvancedCommerceOneTimeChargeCreateRequest).structure(request_dict, AdvancedCommerceOneTimeChargeCreateRequest)
630+
631+
result = _get_cattrs_converter(AdvancedCommerceOneTimeChargeCreateRequest).unstructure(request)
632+
self.assertEqual("CREATE_ONE_TIME_CHARGE", result["operation"])
633+
self.assertEqual("1", result["version"])
634+
635+
def test_subscription_create_request_deserialization_sets_operation_and_version(self):
636+
json_data = read_data_from_file('tests/resources/models/advancedCommerceSubscriptionCreateRequest.json')
637+
638+
request_dict = json.loads(json_data)
639+
request = _get_cattrs_converter(AdvancedCommerceSubscriptionCreateRequest).structure(request_dict, AdvancedCommerceSubscriptionCreateRequest)
640+
641+
result = _get_cattrs_converter(AdvancedCommerceSubscriptionCreateRequest).unstructure(request)
642+
self.assertEqual("CREATE_SUBSCRIPTION", result["operation"])
643+
self.assertEqual("1", result["version"])
644+
645+
def test_subscription_modify_in_app_request_deserialization_sets_operation_and_version(self):
646+
json_data = read_data_from_file('tests/resources/models/advancedCommerceSubscriptionModifyInAppRequest.json')
647+
648+
request_dict = json.loads(json_data)
649+
request = _get_cattrs_converter(AdvancedCommerceSubscriptionModifyInAppRequest).structure(request_dict, AdvancedCommerceSubscriptionModifyInAppRequest)
650+
651+
result = _get_cattrs_converter(AdvancedCommerceSubscriptionModifyInAppRequest).unstructure(request)
652+
self.assertEqual("MODIFY_SUBSCRIPTION", result["operation"])
653+
self.assertEqual("1", result["version"])
654+
655+
def test_subscription_reactivate_in_app_request_deserialization_sets_operation_and_version(self):
656+
json_data = read_data_from_file('tests/resources/models/advancedCommerceSubscriptionReactivateInAppRequest.json')
657+
658+
request_dict = json.loads(json_data)
659+
request = _get_cattrs_converter(AdvancedCommerceSubscriptionReactivateInAppRequest).structure(request_dict, AdvancedCommerceSubscriptionReactivateInAppRequest)
660+
661+
result = _get_cattrs_converter(AdvancedCommerceSubscriptionReactivateInAppRequest).unstructure(request)
662+
self.assertEqual("REACTIVATE_SUBSCRIPTION", result["operation"])
663+
self.assertEqual("1", result["version"])
664+
625665
def test_advanced_commerce_price_increase_info_status(self):
626666
self.assertEqual("SCHEDULED", AdvancedCommercePriceIncreaseInfoStatus.SCHEDULED.value)
627667
self.assertEqual("PENDING", AdvancedCommercePriceIncreaseInfoStatus.PENDING.value)

0 commit comments

Comments
 (0)