Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion pythonpro/domain/checkout_domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,13 @@ def payment_handler_task(payment_id):
if status == django_pagarme_facade.PAID:
user = payment.user
if payment.payment_method == django_pagarme_facade.BOLETO:
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-boleto')
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-boleto', f'{slug}-refused')
else:
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-refused')
_promote(user, slug)
elif status == django_pagarme_facade.REFUSED:
user = payment.user
email_marketing_facade.tag_as.delay(user.email, user.id, f'{slug}-refused')
elif status == django_pagarme_facade.WAITING_PAYMENT:
user = payment.user
email_marketing_facade.tag_as.delay(user.email, user.id, f'{slug}-boleto')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,9 @@ def test_payment_tag_removed_after_payment(resp_logged_user, webdev_item, remove
payment = django_pagarme_facade.find_payment_by_transaction(TRANSACTION_ID)
mommy.make(django_pagarme_facade.PagarmeNotification, status=django_pagarme_facade.PAID, payment=payment)
checkout_domain.payment_handler_task(payment.id)
remove_tags_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{webdev_item.slug}-boleto')
remove_tags_mock.assert_called_once_with(
logged_user.email, logged_user.id, f'{webdev_item.slug}-boleto', f'{webdev_item.slug}-refused'
)


@pytest.fixture
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
)


@pytest.fixture
def remove_tags_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')


# test user not logged

@pytest.fixture
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
create_or_update_data_scientist_mock, data_science_item):
create_or_update_data_scientist_mock, data_science_item, remove_tags_mock):
return client.get(reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': data_science_item.slug}),
secure=True)

Expand Down Expand Up @@ -79,7 +84,8 @@ def test_payment_linked_with_created_user(resp, django_user_model):
# Tests user logged

@pytest.fixture
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, data_science_item):
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, data_science_item,
remove_tags_mock):
return client_with_user.get(
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': data_science_item.slug}),
secure=True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
)


@pytest.fixture
def remove_tags_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')


# test user not logged

@pytest.fixture
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
create_or_update_member_mock, membership_item):
create_or_update_member_mock, membership_item, remove_tags_mock):
return client.get(
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': membership_item.slug}),
secure=True
Expand Down Expand Up @@ -87,7 +92,7 @@ def test_payment_linked_with_created_user(resp, django_user_model):
# Tests user logged

@pytest.fixture
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, membership_item):
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, membership_item, remove_tags_mock):
return client_with_user.get(
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': membership_item.slug}),
secure=True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,16 @@ def payment_handler_task_mock(mocker):
)


@pytest.fixture
def remove_tags_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.remove_tags.delay')


# test user not logged

@pytest.fixture
def resp(client, pagarme_responses, payment_handler_task_mock, create_or_update_lead_mock,
create_or_update_webdev_mock, webdev_item):
create_or_update_webdev_mock, webdev_item, remove_tags_mock):
return client.get(reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': webdev_item.slug}))


Expand Down Expand Up @@ -78,7 +83,7 @@ def test_payment_linked_with_created_user(resp, django_user_model):
# Tests user logged

@pytest.fixture
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, webdev_item):
def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_mock, webdev_item, remove_tags_mock):
return client_with_user.get(
reverse('django_pagarme:capture', kwargs={'token': TOKEN, 'slug': webdev_item.slug}),
secure=True
Expand Down
19 changes: 16 additions & 3 deletions pythonpro/domain/tests/test_checkout/test_payment_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ def test_pagarme_payment_paid_boleto(db, tag_as_mock, remove_tags_mock, promote_
config = mommy.make(PagarmeItemConfig, payments=[payment])
checkout_domain.payment_handler_task(payment.id)
assert tag_as_mock.called is False
remove_tags_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{config.slug}-boleto')
remove_tags_mock.assert_called_once_with(
logged_user.email, logged_user.id, f'{config.slug}-boleto', f'{config.slug}-refused'
)
promote_user_mock.assert_called_once_with(logged_user, config.slug)


Expand All @@ -37,7 +39,9 @@ def test_pagarme_payment_paid_credit_card(db, tag_as_mock, remove_tags_mock, pro
config = mommy.make(PagarmeItemConfig, payments=[payment])
checkout_domain.payment_handler_task(payment.id)
assert tag_as_mock.called is False
assert remove_tags_mock.called is False
remove_tags_mock.assert_called_once_with(
logged_user.email, logged_user.id, f'{config.slug}-refused'
)
promote_user_mock.assert_called_once_with(logged_user, config.slug)


Expand All @@ -58,7 +62,6 @@ def test_pagarme_payment_waiting_payment_boleto(db, tag_as_mock, remove_tags_moc
facade.AUTHORIZED,
facade.REFUNDED,
facade.PENDING_REFUND,
facade.REFUSED,
]
)
def test_pagarme_payment_with_item_but_do_nothing_status(db, tag_as_mock, remove_tags_mock, promote_user_mock, status):
Expand Down Expand Up @@ -90,3 +93,13 @@ def test_pagarme_payment_absent_item(db, tag_as_mock, remove_tags_mock, promote_
assert tag_as_mock.called is False
assert remove_tags_mock.called is False
assert promote_user_mock.called is False


def test_pagarme_payment_refused(db, tag_as_mock, remove_tags_mock, promote_user_mock, logged_user):
payment = mommy.make(PagarmePayment, user=logged_user)
mommy.make(PagarmeNotification, status=facade.REFUSED, payment=payment)
config = mommy.make(PagarmeItemConfig, payments=[payment])
checkout_domain.payment_handler_task(payment.id)
assert promote_user_mock.called is False
assert remove_tags_mock.called is False
tag_as_mock.assert_called_once_with(logged_user.email, logged_user.id, f'{config.slug}-refused')