Skip to content

Commit

Permalink
CR
Browse files Browse the repository at this point in the history
  • Loading branch information
poxip committed Dec 12, 2017
1 parent e691297 commit 2d2e23c
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 52 deletions.
12 changes: 0 additions & 12 deletions aa_stripe/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,18 +107,6 @@ def _retrieve_from_stripe(self, set_deleted=False):
if set_deleted:
self.is_deleted = True

def save(self, *args, **kwargs):
if self.pk:
card = self._retrieve_from_stripe(set_deleted=True)
if card:
card.exp_month = self.exp_month
card.exp_year = self.exp_year
card.save()
super(StripeCard, self).save(*args, **kwargs)
if not self.customer.default_card:
self.customer.default_card = self
self.customer.save()

def delete(self, *args, **kwargs):
card = self._retrieve_from_stripe(set_deleted=True)
if card:
Expand Down
39 changes: 0 additions & 39 deletions tests/test_cards.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,45 +32,6 @@ def setUp(self):
self._create_user()
self._create_customer("cus_xyz")

def test_save(self):
# test creating from JS response, Stripe API should not be called
self.assertIsNone(self.customer.default_card)
card = self._create_card()
self.customer.refresh_from_db()
self.assertEqual(self.customer.default_card, card)

# test creating another card from JS response
# default_card for the customer is already set and should not be updated
card = self._create_card()
self.customer.refresh_from_db()
self.assertNotEqual(self.customer.default_card, card)

@requests_mock.Mocker()
def test_update(self, m):
card = self._create_card(stripe_card_id="card_xyz")
# test updating a card that no longer exists at Stripe
stripe_card_response = {"id": "card_xyz", "object": "card", "customer": "cus_xyz"}
self._setup_customer_api_mock(m)
m.register_uri(
"GET", "https://api.stripe.com/v1/customers/cus_xyz/sources/card_xyz", [
{"status_code": 404, "text": json.dumps({"error": {"type": "invalid_request_error"}})},
{"status_code": 200, "text": json.dumps(stripe_card_response)}
])
m.register_uri(
"POST", "https://api.stripe.com/v1/customers/cus_xyz/sources/card_xyz", status_code=200,
text=json.dumps(stripe_card_response)
)
card.exp_year = 2020
card.save()
deleted_qs = StripeCard.objects.deleted()
self.assertTrue(deleted_qs.filter(pk=card.pk).exists())

# test correct update (card exists)
card = self._create_card(stripe_card_id="card_xyz")
card.exp_year = 2017
card.save()
self.assertFalse(deleted_qs.filter(pk=card.pk).exists())

@requests_mock.Mocker()
def test_delete(self, m):
# try deleting card that does not exist at Stripe API - should not call Stripe (DELETE)
Expand Down
6 changes: 5 additions & 1 deletion tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,13 @@ def _create_customer(self, customer_id=None, set_self=True):
self.customer = customer
return customer

def _create_card(self, customer=None, stripe_card_id="", set_self=True):
def _create_card(self, customer=None, stripe_card_id="", is_default=True, set_self=True):
card = StripeCard.objects.create(customer=customer or self.customer, last4=4242, exp_month=1, exp_year=2025,
stripe_card_id=stripe_card_id or "card_{}".format(uuid4().hex))
if is_default:
card.customer.default_card = card
card.customer.save()

if set_self:
self.card = card
return card
Expand Down

0 comments on commit 2d2e23c

Please sign in to comment.