@@ -117,7 +117,7 @@ def test_create_simple_credit(self):
117
117
118
118
def test_credit_lower_than_escrow (self ):
119
119
mp = balanced .Marketplace .query .one ()
120
- escrow_balance = mp .in_escrow
120
+ escrow_balance = mp .in_escrow
121
121
credit_amount = escrow_balance + 10000
122
122
merchants = mp .accounts
123
123
merchant = merchants [0 ]
@@ -132,6 +132,50 @@ def test_valid_international_address(self):
132
132
self .assertEqual (card .street_address ,
133
133
card_payload ['street_address' ])
134
134
135
+ def test_associate_bad_cards (self ):
136
+ mp = balanced .Marketplace .query .one ()
137
+ card_payload = dict (self .us_card_payload )
138
+ card = balanced .Card (** card_payload ).save ()
139
+ card_uri = card .uri
140
+ buyer = mp .create_buyer (
141
+ email_address = 'james@watson.com' ,
142
+ card_uri = card_uri ,
143
+ meta = {'foo' : 'bar' },
144
+ )
145
+ # Invalid card
146
+ card_payload = dict (self .us_card_payload )
147
+ card_payload ['is_valid' ] = False
148
+ card = balanced .Card (** card_payload ).save ()
149
+ card_uri = card .uri
150
+ with self .assertRaises (requests .HTTPError ) as exc :
151
+ buyer .add_card (card_uri = card_uri )
152
+ the_exception = exc .exception
153
+ self .assertEqual (the_exception .status_code , 409 )
154
+ self .assertEqual (the_exception .category_code ,
155
+ 'funding-source-not-valid' )
156
+
157
+ # Already-associated card
158
+ card_payload = dict (self .us_card_payload )
159
+ card = balanced .Card (** card_payload ).save ()
160
+ card_uri = card .uri
161
+ mp .create_buyer (
162
+ email_address = 'james@moriarty.com' ,
163
+ card_uri = card_uri ,
164
+ meta = {'foo' : 'bar' },
165
+ )
166
+ with self .assertRaises (requests .HTTPError ) as exc :
167
+ buyer .add_card (card_uri = card_uri )
168
+ the_exception = exc .exception
169
+ self .assertEqual (the_exception .status_code , 409 )
170
+ self .assertEqual (the_exception .category_code ,
171
+ 'card-already-funding-src' )
172
+
173
+ # Completely fake card uri
174
+ with self .assertRaises (requests .HTTPError ) as exc :
175
+ buyer .add_card (card_uri = '/completely/fake' )
176
+ the_exception = exc .exception
177
+ self .assertEqual (the_exception .status_code , 400 )
178
+
135
179
def test_transactions_invalid_funding_sources (self ):
136
180<
3FA4
/code>
mp = balanced .Marketplace .query .one ()
137
181
card_payload = dict (self .us_card_payload )
0 commit comments