Skip to content

Commit c072376

Browse files
authored
Merge pull request #654 from recurly/v2_external_subscriptions_new_fields
V2 Client Library External Subscription changes
2 parents cd2518f + f2ebf6f commit c072376

File tree

6 files changed

+46
-2
lines changed

6 files changed

+46
-2
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
name: Python ${{ matrix.python }} tests
1010
strategy:
1111
matrix:
12-
python: [2.7, 3.7, 3.8, 3.9]
12+
python: [3.7, 3.8, 3.9]
1313
os: [ubuntu-latest]
1414
include:
1515
# Python 3.6 is not included in ubuntu latest (currently 22)

recurly/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2194,11 +2194,15 @@ class ExternalSubscription(Resource):
21942194
'external_product_reference',
21952195
'last_purchased',
21962196
'auto_renew',
2197+
'in_grace_period',
21972198
'app_identifier',
21982199
'quantity',
21992200
'state',
22002201
'activated_at',
2202+
'canceled_at',
22012203
'expires_at',
2204+
'trial_started_at',
2205+
'trial_ends_at',
22022206
'created_at',
22032207
'updated_at'
22042208
)

tests/fixtures/account/external-subscriptions.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@ Content-Type: application/xml; charset=utf-8
1717
<external_product_reference nil="nil"></external_product_reference>
1818
<last_purchased nil="nil"></last_purchased>
1919
<auto_renew type="boolean">false</auto_renew>
20+
<in_grace_period type="boolean">false</in_grace_period>
2021
<app_identifier nil="nil"></app_identifier>
2122
<quantity type="integer">1</quantity>
2223
<state>active</state>
2324
<activated_at nil="nil"></activated_at>
25+
<canceled_at type="datetime">2022-11-03T21:57:14Z</canceled_at>
2426
<expires_at nil="nil"></expires_at>
27+
<trial_started_at type="datetime">2022-11-03T21:57:14Z</trial_started_at>
28+
<trial_ends_at type="datetime">2022-11-03T21:57:14Z</trial_ends_at>
2529
<created_at type="datetime">2022-11-04T19:45:00Z</created_at>
2630
<updated_at type="datetime">2022-11-04T19:45:00Z</updated_at>
2731
</external_subscription>
@@ -32,11 +36,15 @@ Content-Type: application/xml; charset=utf-8
3236
<external_product_reference nil="nil"></external_product_reference>
3337
<last_purchased nil="nil"></last_purchased>
3438
<auto_renew type="boolean">false</auto_renew>
39+
<in_grace_period type="boolean">false</in_grace_period>
3540
<app_identifier>app_identifier</app_identifier>
3641
<quantity type="integer">1</quantity>
3742
<state>active</state>
3843
<activated_at nil="nil"></activated_at>
44+
<canceled_at type="datetime">2022-11-03T21:57:14Z</canceled_at>
3945
<expires_at nil="nil"></expires_at>
46+
<trial_started_at type="datetime">2022-11-03T21:57:14Z</trial_started_at>
47+
<trial_ends_at type="datetime">2022-11-03T21:57:14Z</trial_ends_at>
4048
<created_at type="datetime">2022-11-03T21:57:14Z</created_at>
4149
<updated_at type="datetime">2022-11-04T18:11:51Z</updated_at>
4250
</external_subscription>

tests/fixtures/external-subscription/get.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@ Content-Type: application/xml; charset=utf-8
1616
<external_product_reference nil="nil"></external_product_reference>
1717
<last_purchased nil="nil"></last_purchased>
1818
<auto_renew type="boolean">false</auto_renew>
19+
<in_grace_period type="boolean">false</in_grace_period>
1920
<app_identifier>app_identifier</app_identifier>
2021
<quantity type="integer">1</quantity>
2122
<state>active</state>
2223
<activated_at nil="nil"></activated_at>
24+
<canceled_at type="datetime">2022-11-03T21:57:14Z</canceled_at>
2325
<expires_at nil="nil"></expires_at>
26+
<trial_started_at type="datetime">2022-11-03T21:57:14Z</trial_started_at>
27+
<trial_ends_at type="datetime">2022-11-03T21:57:14Z</trial_ends_at>
2428
<created_at type="datetime">2022-11-03T21:57:14Z</created_at>
2529
<updated_at type="datetime">2022-11-04T18:11:51Z</updated_at>
2630
</external_subscription>

tests/fixtures/external-subscription/list.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@ Content-Type: application/xml; charset=utf-8
1616
<external_product_reference nil="nil"></external_product_reference>
1717
<last_purchased nil="nil"></last_purchased>
1818
<auto_renew type="boolean">false</auto_renew>
19+
<in_grace_period type="boolean">false</in_grace_period>
1920
<app_identifier nil="nil"></app_identifier>
2021
<quantity type="integer">1</quantity>
2122
<state>active</state>
2223
<activated_at nil="nil"></activated_at>
24+
<canceled_at type="datetime">2022-11-03T21:57:14Z</canceled_at>
2325
<expires_at nil="nil"></expires_at>
26+
<trial_started_at type="datetime">2022-11-03T21:57:14Z</trial_started_at>
27+
<trial_ends_at type="datetime">2022-11-03T21:57:14Z</trial_ends_at>
2428
<created_at type="datetime">2022-11-04T19:45:00Z</created_at>
2529
<updated_at type="datetime">2022-11-04T19:45:00Z</updated_at>
2630
</external_subscription>
@@ -30,11 +34,15 @@ Content-Type: application/xml; charset=utf-8
3034
<external_product_reference nil="nil"></external_product_reference>
3135
<last_purchased nil="nil"></last_purchased>
3236
<auto_renew type="boolean">false</auto_renew>
37+
<in_grace_period type="boolean">false</in_grace_period>
3338
<app_identifier>app_identifier</app_identifier>
3439
<quantity type="integer">1</quantity>
3540
<state>active</state>
3641
<activated_at nil="nil"></activated_at>
42+
<canceled_at type="datetime">2022-11-03T21:57:14Z</canceled_at>
3743
<expires_at nil="nil"></expires_at>
44+
<trial_started_at type="datetime">2022-11-03T21:57:14Z</trial_started_at>
45+
<trial_ends_at type="datetime">2022-11-03T21:57:14Z</trial_ends_at>
3846
<created_at type="datetime">2022-11-03T21:57:14Z</created_at>
3947
<updated_at type="datetime">2022-11-04T18:11:51Z</updated_at>
4048
</external_subscription>

tests/test_resources.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3013,23 +3013,31 @@ def test_external_subscriptions_on_account(self):
30133013
self.assertEqual(external_subscriptions[0].external_product_reference, None)
30143014
self.assertEqual(external_subscriptions[0].last_purchased, None)
30153015
self.assertEqual(external_subscriptions[0].auto_renew, False)
3016+
self.assertEqual(external_subscriptions[0].in_grace_period, False)
30163017
self.assertEqual(external_subscriptions[0].app_identifier, None)
30173018
self.assertEqual(external_subscriptions[0].quantity, 1)
30183019
self.assertEqual(external_subscriptions[0].state, 'active')
30193020
self.assertEqual(external_subscriptions[0].activated_at, None)
3021+
self.assertEqual(external_subscriptions[0].canceled_at, datetime(2022, 11, 3, 21, 57, 14,tzinfo=external_subscriptions[0].canceled_at.tzinfo))
30203022
self.assertEqual(external_subscriptions[0].expires_at, None)
3023+
self.assertEqual(external_subscriptions[0].trial_started_at, datetime(2022, 11, 3, 21, 57, 14,tzinfo=external_subscriptions[0].trial_started_at.tzinfo))
3024+
self.assertEqual(external_subscriptions[0].trial_ends_at, datetime(2022, 11, 3, 21, 57, 14,tzinfo=external_subscriptions[0].trial_ends_at.tzinfo))
30213025
self.assertEqual(external_subscriptions[0].created_at, datetime(2022, 11, 4, 19, 45, tzinfo=external_subscriptions[0].created_at.tzinfo))
30223026
self.assertEqual(external_subscriptions[0].updated_at, datetime(2022, 11, 4, 19, 45, tzinfo=external_subscriptions[0].updated_at.tzinfo))
30233027

30243028
self.assertEqual(external_subscriptions[1].external_id, 'efgh5678')
30253029
self.assertEqual(external_subscriptions[1].external_product_reference, None)
30263030
self.assertEqual(external_subscriptions[1].last_purchased, None)
30273031
self.assertEqual(external_subscriptions[1].auto_renew, False)
3032+
self.assertEqual(external_subscriptions[1].in_grace_period, False)
30283033
self.assertEqual(external_subscriptions[1].app_identifier, 'app_identifier')
30293034
self.assertEqual(external_subscriptions[1].quantity, 1)
30303035
self.assertEqual(external_subscriptions[1].state, 'active')
30313036
self.assertEqual(external_subscriptions[1].activated_at, None)
3037+
self.assertEqual(external_subscriptions[1].canceled_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].canceled_at.tzinfo))
30323038
self.assertEqual(external_subscriptions[1].expires_at, None)
3039+
self.assertEqual(external_subscriptions[1].trial_started_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].trial_started_at.tzinfo))
3040+
self.assertEqual(external_subscriptions[1].trial_ends_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].trial_ends_at.tzinfo))
30333041
self.assertEqual(external_subscriptions[1].created_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].created_at.tzinfo))
30343042
self.assertEqual(external_subscriptions[1].updated_at, datetime(2022, 11, 4, 18, 11, 51, tzinfo=external_subscriptions[1].updated_at.tzinfo))
30353043

@@ -3044,23 +3052,31 @@ def test_list_external_subscriptions(self):
30443052
self.assertEqual(external_subscriptions[0].external_product_reference, None)
30453053
self.assertEqual(external_subscriptions[0].last_purchased, None)
30463054
self.assertEqual(external_subscriptions[0].auto_renew, False)
3055+
self.assertEqual(external_subscriptions[0].in_grace_period, False)
30473056
self.assertEqual(external_subscriptions[0].app_identifier, None)
30483057
self.assertEqual(external_subscriptions[0].quantity, 1)
30493058
self.assertEqual(external_subscriptions[0].state, 'active')
30503059
self.assertEqual(external_subscriptions[0].activated_at, None)
3060+
self.assertEqual(external_subscriptions[0].canceled_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[0].canceled_at.tzinfo))
30513061
self.assertEqual(external_subscriptions[0].expires_at, None)
3062+
self.assertEqual(external_subscriptions[0].trial_started_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[0].trial_started_at.tzinfo))
3063+
self.assertEqual(external_subscriptions[0].trial_ends_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[0].trial_ends_at.tzinfo))
30523064
self.assertEqual(external_subscriptions[0].created_at, datetime(2022, 11, 4, 19, 45, tzinfo=external_subscriptions[0].created_at.tzinfo))
3053-
self.assertEqual(external_subscriptions[0].updated_at, datetime(2022, 11, 4, 19, 45, tzinfo=external_subscriptions[0].created_at.tzinfo))
3065+
self.assertEqual(external_subscriptions[0].updated_at, datetime(2022, 11, 4, 19, 45, tzinfo=external_subscriptions[0].updated_at.tzinfo))
30543066

30553067
self.assertEqual(external_subscriptions[1].external_id, 'efgh5678')
30563068
self.assertEqual(external_subscriptions[1].external_product_reference, None)
30573069
self.assertEqual(external_subscriptions[1].last_purchased, None)
30583070
self.assertEqual(external_subscriptions[1].auto_renew, False)
3071+
self.assertEqual(external_subscriptions[1].in_grace_period, False)
30593072
self.assertEqual(external_subscriptions[1].app_identifier, 'app_identifier')
30603073
self.assertEqual(external_subscriptions[1].quantity, 1)
30613074
self.assertEqual(external_subscriptions[1].state, 'active')
30623075
self.assertEqual(external_subscriptions[1].activated_at, None)
3076+
self.assertEqual(external_subscriptions[1].canceled_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].canceled_at.tzinfo))
30633077
self.assertEqual(external_subscriptions[1].expires_at, None)
3078+
self.assertEqual(external_subscriptions[1].trial_started_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].trial_started_at.tzinfo))
3079+
self.assertEqual(external_subscriptions[1].trial_ends_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].trial_ends_at.tzinfo))
30643080
self.assertEqual(external_subscriptions[1].created_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscriptions[1].created_at.tzinfo))
30653081
self.assertEqual(external_subscriptions[1].updated_at, datetime(2022, 11, 4, 18, 11, 51, tzinfo=external_subscriptions[1].updated_at.tzinfo))
30663082

@@ -3073,11 +3089,15 @@ def test_get_external_subscription(self):
30733089
self.assertEqual(external_subscription.external_product_reference, None)
30743090
self.assertEqual(external_subscription.last_purchased, None)
30753091
self.assertEqual(external_subscription.auto_renew, False)
3092+
self.assertEqual(external_subscription.in_grace_period, False)
30763093
self.assertEqual(external_subscription.app_identifier, 'app_identifier')
30773094
self.assertEqual(external_subscription.quantity, 1)
30783095
self.assertEqual(external_subscription.state, 'active')
30793096
self.assertEqual(external_subscription.activated_at, None)
3097+
self.assertEqual(external_subscription.canceled_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscription.canceled_at.tzinfo))
30803098
self.assertEqual(external_subscription.expires_at, None)
3099+
self.assertEqual(external_subscription.trial_started_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscription.trial_started_at.tzinfo))
3100+
self.assertEqual(external_subscription.trial_ends_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscription.trial_ends_at.tzinfo))
30813101
self.assertEqual(external_subscription.created_at, datetime(2022, 11, 3, 21, 57, 14, tzinfo=external_subscription.created_at.tzinfo))
30823102
self.assertEqual(external_subscription.updated_at, datetime(2022, 11, 4, 18, 11, 51, tzinfo=external_subscription.updated_at.tzinfo))
30833103

0 commit comments

Comments
 (0)