Skip to content

Commit 065ff3a

Browse files
renzonrenzon
authored andcommitted
Removed user role promotion from checkout
close #2843
1 parent 18467c7 commit 065ff3a

5 files changed

Lines changed: 74 additions & 188 deletions

File tree

‎Pipfile.lock‎

Lines changed: 66 additions & 72 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pythonpro/domain/checkout_domain.py‎

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ def payment_handler_task(payment_id):
6262
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-boleto', f'{slug}-refused')
6363
else:
6464
email_marketing_facade.remove_tags.delay(user.email, user.id, f'{slug}-refused')
65-
_promote(user, slug)
6665
send_purchase_notification.delay(payment.id)
6766
elif status == django_pagarme_facade.REFUSED:
6867
user = payment.user
@@ -76,26 +75,6 @@ def payment_handler_task(payment_id):
7675
subscription_domain.inactivate_payment_subscription(payment)
7776

7877

79-
def _promote(user, slug: str):
80-
if slug.startswith('membership'):
81-
user_domain.promote_member(user, 'unknown')
82-
elif slug == 'pacote-proximo-nivel-67-discount':
83-
user_domain.promote_pythonista(user, 'unknown')
84-
elif slug.startswith('webdev') or slug.startswith('treinamento-devpro'):
85-
user_domain.promote_webdev(user, 'unknown')
86-
elif slug.startswith('data-science'):
87-
user_domain.promote_data_scientist(user, 'unknown')
88-
elif slug in {'bootcamp', 'bootcamp-webdev'}:
89-
user_domain.promote_bootcamper(user, 'unknown')
90-
user_domain.promote_pythonista(user, 'unknown')
91-
elif slug.startswith('bootcamp'):
92-
user_domain.promote_bootcamper(user, 'unknown')
93-
elif slug == 'aps':
94-
pass # no action required
95-
else:
96-
raise ValueError(f'{slug} should contain webdev or membership or data-science')
97-
98-
9978
def payment_change_handler(payment_id):
10079
payment_handler_task.delay(payment_id)
10180

‎pythonpro/domain/tests/test_checkout/test_boleto_generation.py‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,10 @@ def test_payment_tag_removed_after_payment(resp_logged_user, active_product_item
149149
tag_as_mock, mocker):
150150
payment = django_pagarme_facade.find_payment_by_transaction(TRANSACTION_ID)
151151
baker.make(django_pagarme_facade.PagarmeNotification, status=django_pagarme_facade.PAID, payment=payment)
152-
promote_mock = mocker.patch('pythonpro.domain.checkout_domain._promote')
153152
checkout_domain.payment_handler_task(payment.id)
154153
remove_tags_mock.assert_called_once_with(
155154
logged_user.email, logged_user.id, f'{active_product_item.slug}-boleto', f'{active_product_item.slug}-refused'
156155
)
157-
promote_mock.assert_called_once_with(logged_user, payment.first_item_slug())
158156

159157

160158
@pytest.fixture

‎pythonpro/domain/tests/test_checkout/test_credit_card_payment.py‎

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from django.urls import reverse
66
from django_pagarme import facade as django_pagarme_facade
77

8-
from pythonpro.core import facade as core_facade
98
from pythonpro.domain import checkout_domain
109
from pythonpro.email_marketing import facade as email_marketing_facade
1110

@@ -125,58 +124,6 @@ def test_user_is_created(resp, django_user_model):
125124
assert User.objects.exists()
126125

127126

128-
def test_user_is_promoted(resp, django_user_model, active_product_item):
129-
User = django_user_model
130-
user = User.objects.first()
131-
slug = active_product_item.slug
132-
assert_user_promoted(user, slug)
133-
134-
135-
def assert_user_promoted(user, slug):
136-
if slug.startswith('membership'):
137-
assert core_facade.is_member(user)
138-
elif slug.startswith('webdev') or slug.startswith('treinamento-devpro'):
139-
assert core_facade.is_webdev(user)
140-
elif slug.startswith('data-science'):
141-
assert core_facade.is_data_scientist(user)
142-
elif slug in {'bootcamp', 'bootcamp-webdev'}:
143-
assert core_facade.is_bootcamper(user)
144-
assert core_facade.is_pythonista(user) # bonus because of full paid price
145-
elif slug.startswith('bootcamp'):
146-
assert core_facade.is_bootcamper(user)
147-
elif slug == 'pacote-proximo-nivel-67-discount':
148-
assert core_facade.is_pythonista(user)
149-
elif slug == 'aps':
150-
pass # no promotion required
151-
else:
152-
pytest.fail(f'Invalid slug prefix {slug}')
153-
154-
155-
def test_user_is_subscribed_to_cohort(resp, django_user_model, cohort, active_product_item):
156-
User = django_user_model
157-
user = User.objects.first()
158-
slug = active_product_item.slug
159-
assert_subscribed_to_cohort(cohort, slug, user)
160-
161-
162-
def assert_subscribed_to_cohort(cohort, slug, user):
163-
if not (slug.startswith('webdev') or slug.startswith('treinamento-devpro') or slug.startswith(
164-
'data-science') or slug == 'pacote-proximo-nivel-67-discount' or slug == 'aps'):
165-
assert cohort.students.first() == user
166-
167-
168-
def test_user_synced_on_discourse(resp, django_user_model, sync_on_discourse_mock, active_product_item, mocker):
169-
User = django_user_model
170-
user = User.objects.first()
171-
if active_product_item.slug in {'bootcamp', 'bootcamp-webdev'}:
172-
user_sync_call = mocker.call(user.id)
173-
assert sync_on_discourse_mock.mock_calls == [user_sync_call, user_sync_call]
174-
elif active_product_item.slug == 'aps':
175-
assert sync_on_discourse_mock.call_count == 0
176-
else:
177-
sync_on_discourse_mock.assert_called_once_with(user.id)
178-
179-
180127
def test_payment_linked_with_created_user(resp, django_user_model):
181128
User = django_user_model
182129
user = User.objects.first()
@@ -206,30 +153,11 @@ def resp_logged_user(client_with_user, pagarme_responses, payment_handler_task_m
206153
)
207154

208155

209-
def test_logged_user_become_member(resp_logged_user, logged_user, active_product_item):
210-
assert_user_promoted(logged_user, active_product_item.slug)
211-
212-
213156
def test_payment_linked_with_logged_user(resp_logged_user, logged_user):
214157
payment = django_pagarme_facade.find_payment_by_transaction(TRANSACTION_ID)
215158
assert logged_user == payment.user
216159

217160

218-
def test_logged_user_is_subscribed_to_cohort(resp_logged_user, logged_user, cohort, active_product_item):
219-
assert_subscribed_to_cohort(cohort, active_product_item.slug, logged_user)
220-
221-
222-
def test_logged_user_is_synced_on_discourse(resp_logged_user, logged_user, sync_on_discourse_mock, active_product_item,
223-
mocker):
224-
if active_product_item.slug in {'bootcamp', 'bootcamp-webdev'}:
225-
user_sync_call = mocker.call(logged_user.id)
226-
assert sync_on_discourse_mock.mock_calls == [user_sync_call, user_sync_call]
227-
elif active_product_item.slug == 'aps':
228-
assert sync_on_discourse_mock.call_count == 0
229-
else:
230-
sync_on_discourse_mock.assert_called_once_with(logged_user.id)
231-
232-
233161
@pytest.fixture
234162
def transaction_json(active_product_item):
235163
return {

0 commit comments

Comments
 (0)