Skip to content

Commit 5c5eefd

Browse files
renzonrenzon
authored andcommitted
Tagged user with refused payment
close #2635
1 parent 77b3c30 commit 5c5eefd

File tree

6 files changed

+47
-11
lines changed

6 files changed

+47
-11
lines changed

pythonpro/domain/checkout_domain.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,13 @@ def payment_handler_task(payment_id):
5050
if status == django_pagarme_facade.PAID:
5151
user = payment.user
5252
if payment.payment_method == django_pagarme_facade.BOLETO:
53-
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-boleto')
53+
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-boleto', f'{slug}-refused')
54+
else:
55+
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-refused')
5456
_promote(user, slug)
57+
elif status == django_pagarme_facade.REFUSED:
58+
user = payment.user
59+
email_marketing_facade.tag_as.delay(user.email, user.id, f'{slug}-refused')
5560
elif status == django_pagarme_facade.WAITING_PAYMENT:
5661
user = payment.user
5762
email_marketing_facade.tag_as.delay(user.email, user.id, f'{slug}-boleto')

pythonpro/domain/tests/test_checkout/test_boleto_generation.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ def test_payment_tag_removed_after_payment(resp_logged_user, webdev_item, remove
112112
payment = django_pagarme_facade.find_payment_by_transaction(TRANSACTION_ID)
113113
mommy.make(django_pagarme_facade.PagarmeNotification, status=django_pagarme_facade.PAID, payment=payment)
114114
checkout_domain.payment_handler_task(payment.id)
115-
remove_tags_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{webdev_item.slug}-boleto')
115+
remove_tags_mock.assert_called_once_with(
116+
logged_user.email, logged_user.id, f'{webdev_item.slug}-boleto', f'{webdev_item.slug}-refused'
117+
)
116118

117119

118120
@pytest.fixture

pythonpro/domain/tests/test_checkout/test_credit_card_payment_data_science.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
4444
)
4545

4646

47+
@pytest.fixture
48+
def remove_tags_mock(mocker):
49+
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')
50+
51+
4752
# test user not logged
4853

4954
@pytest.fixture
5055
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
51-
create_or_update_data_scientist_mock, data_science_item):
56+
create_or_update_data_scientist_mock, data_science_item, remove_tags_mock):
5257
return client.get(reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': data_science_item.slug}),
5358
secure=True)
5459

@@ -79,7 +84,8 @@ def test_payment_linked_with_created_user(resp, django_user_model):
7984
# Tests user logged
8085

8186
@pytest.fixture
82-
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, data_science_item):
87+
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, data_science_item,
88+
remove_tags_mock):
8389
return client_with_user.get(
8490
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': data_science_item.slug}),
8591
secure=True

pythonpro/domain/tests/test_checkout/test_credit_card_payment_member.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
4444
)
4545

4646

47+
@pytest.fixture
48+
def remove_tags_mock(mocker):
49+
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')
50+
51+
4752
# test user not logged
4853

4954
@pytest.fixture
5055
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
51-
create_or_update_member_mock, membership_item):
56+
create_or_update_member_mock, membership_item, remove_tags_mock):
5257
return client.get(
5358
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': membership_item.slug}),
5459
secure=True
@@ -87,7 +92,7 @@ def test_payment_linked_with_created_user(resp, django_user_model):
8792
# Tests user logged
8893

8994
@pytest.fixture
90-
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, membership_item):
95+
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, membership_item, remove_tags_mock):
9196
return client_with_user.get(
9297
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': membership_item.slug}),
9398
secure=True

pythonpro/domain/tests/test_checkout/test_credit_card_payment_webdev.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
4444
)
4545

4646

47+
@pytest.fixture
48+
def remove_tags_mock(mocker):
49+
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')
50+
51+
4752
# test user not logged
4853

4954
@pytest.fixture
5055
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
51-
create_or_update_webdev_mock, webdev_item):
56+
create_or_update_webdev_mock, webdev_item, remove_tags_mock):
5257
return client.get(reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': webdev_item.slug}))
5358

5459

@@ -78,7 +83,7 @@ def test_payment_linked_with_created_user(resp, django_user_model):
7883
# Tests user logged
7984

8085
@pytest.fixture
81-
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, webdev_item):
86+
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, webdev_item, remove_tags_mock):
8287
return client_with_user.get(
8388
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': webdev_item.slug}),
8489
secure=True

pythonpro/domain/tests/test_checkout/test_payment_handler.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ def test_pagarme_payment_paid_boleto(db, tag_as_mock, remove_tags_mock, promote_
2727
config = mommy.make(PagarmeItemConfig, payments=[payment])
2828
checkout_domain.payment_handler_task(payment.id)
2929
assert tag_as_mock.called is False
30-
remove_tags_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{config.slug}-boleto')
30+
remove_tags_mock.assert_called_once_with(
31+
logged_user.email, logged_user.id, f'{config.slug}-boleto', f'{config.slug}-refused'
32+
)
3133
promote_user_mock.assert_called_once_with(logged_user, config.slug)
3234

3335

@@ -37,7 +39,9 @@ def test_pagarme_payment_paid_credit_card(db, tag_as_mock, remove_tags_mock, pro
3739
config = mommy.make(PagarmeItemConfig, payments=[payment])
3840
checkout_domain.payment_handler_task(payment.id)
3941
assert tag_as_mock.called is False
40-
assert remove_tags_mock.called is False
42+
remove_tags_mock.assert_called_once_with(
43+
logged_user.email, logged_user.id, f'{config.slug}-refused'
44+
)
4145
promote_user_mock.assert_called_once_with(logged_user, config.slug)
4246

4347

@@ -58,7 +62,6 @@ def test_pagarme_payment_waiting_payment_boleto(db, tag_as_mock, remove_tags_moc
5862
facade.AUTHORIZED,
5963
facade.REFUNDED,
6064
facade.PENDING_REFUND,
61-
facade.REFUSED,
6265
]
6366
)
6467
def test_pagarme_payment_with_item_but_do_nothing_status(db, tag_as_mock, remove_tags_mock, promote_user_mock, status):
@@ -90,3 +93,13 @@ def test_pagarme_payment_absent_item(db, tag_as_mock, remove_tags_mock, promote_
9093
assert tag_as_mock.called is False
9194
assert remove_tags_mock.called is False
9295
assert promote_user_mock.called is False
96+
97+
98+
def test_pagarme_payment_refused(db, tag_as_mock, remove_tags_mock, promote_user_mock, logged_user):
99+
payment = mommy.make(PagarmePayment, user=logged_user)
100+
mommy.make(PagarmeNotification, status=facade.REFUSED, payment=payment)
101+
config = mommy.make(PagarmeItemConfig, payments=[payment])
102+
checkout_domain.payment_handler_task(payment.id)
103+
assert promote_user_mock.called is False
104+
assert remove_tags_mock.called is False
105+
tag_as_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{config.slug}-refused')

0 commit comments

Comments
 (0)