Skip to content

Commit 8be3f69

Browse files
committed
2.9.0
1 parent 770d774 commit 8be3f69

File tree

6 files changed

+34
-1
lines changed

6 files changed

+34
-1
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 2.9.0
2+
3+
* Added a new transaction state, AuthorizationExpired.
4+
* Enabled searching by authorization_expired_at.
5+
16
## 2.8.0
27

38
* Added next_billing_date and transaction_id to subscription search

braintree/error_codes.py

+1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ class Transaction(object):
149149
CannotBeVoided = "91504"
150150
CannotRefundCredit = "91505"
151151
CannotRefundUnlessSettled = "91506"
152+
CannotRefundWithSuspendedMerchantAccount = "91538"
152153
CannotSubmitForSettlement = "91507"
153154
CreditCardIsRequired = "91508"
154155
CustomFieldIsInvalid = "91526"

braintree/transaction.py

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ class Status(object):
115115
* braintree.Transaction.Status.Void
116116
"""
117117

118+
AuthorizationExpired = "authorization_expired"
118119
Authorized = "authorized"
119120
Authorizing = "authorizing"
120121
Failed = "failed"

braintree/transaction_search.py

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class TransactionSearch:
7878
refund = Search.KeyValueNodeBuilder("refund")
7979

8080
amount = Search.RangeNodeBuilder("amount")
81+
authorization_expired_at = Search.RangeNodeBuilder("authorization_expired_at")
8182
authorized_at = Search.RangeNodeBuilder("authorized_at")
8283
created_at = Search.RangeNodeBuilder("created_at")
8384
failed_at = Search.RangeNodeBuilder("failed_at")

braintree/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Version = "2.8.0"
1+
Version = "2.9.0"

tests/integration/test_transaction_search.py

+25
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,14 @@ def test_advanced_search_multiple_value_node_status(self):
509509

510510
self.assertEquals(0, collection.maximum_size)
511511

512+
def test_advanced_search_authorization_expired_status(self):
513+
collection = Transaction.search(
514+
TransactionSearch.status == Transaction.Status.AuthorizationExpired
515+
)
516+
517+
self.assertTrue(collection.maximum_size > 0)
518+
self.assertEqual(Transaction.Status.AuthorizationExpired, collection.first.status)
519+
512520
def test_advanced_search_multiple_value_node_allowed_values_status(self):
513521
try:
514522
collection = Transaction.search([
@@ -877,6 +885,23 @@ def test_advanced_search_range_node_created_with_dates(self):
877885
self.assertEquals(1, collection.maximum_size)
878886
self.assertEquals(transaction.id, collection.first.id)
879887

888+
def test_advanced_search_range_node_authorization_expired_at(self):
889+
two_days_ago = datetime.today() - timedelta(days=2)
890+
yesterday = datetime.today() - timedelta(days=1)
891+
tomorrow = datetime.today() + timedelta(days=1)
892+
893+
collection = Transaction.search(
894+
TransactionSearch.authorization_expired_at.between(two_days_ago, yesterday)
895+
)
896+
self.assertEquals(0, collection.maximum_size)
897+
898+
collection = Transaction.search(
899+
TransactionSearch.authorization_expired_at.between(yesterday, tomorrow)
900+
)
901+
self.assertTrue(collection.maximum_size > 0)
902+
self.assertEquals(Transaction.Status.AuthorizationExpired, collection.first.status)
903+
904+
880905
def test_advanced_search_range_node_authorized_at(self):
881906
transaction = Transaction.sale({
882907
"amount": TransactionAmounts.Authorize,

0 commit comments

Comments
 (0)