Skip to content

Commit e363195

Browse files
renzonrenzon
authored andcommitted
Includes User Activation
close #1388
1 parent 4c2dd82 commit e363195

File tree

5 files changed

+36
-15
lines changed

5 files changed

+36
-15
lines changed

Pipfile.lock

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

pythonpro/core/facade.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ def visit_member_landing_page(user: User, source: str):
113113
return UserInteraction(category=UserInteraction.MEMBER_LP, source=source, user=user).save()
114114

115115

116+
def activate_user(user: User, source: str):
117+
return UserInteraction(category=UserInteraction.ACTIVATED, source=source, user=user).save()
118+
119+
116120
def client_checkout(user: User, source: str) -> None:
117121
return UserInteraction(category=UserInteraction.CLIENT_CHECKOUT, source=source, user=user).save()
118122

pythonpro/dashboard/tests/test_interaction_creation.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
from model_mommy import mommy
44

55
from pythonpro.dashboard.models import TopicInteraction
6+
from pythonpro.domain import user_facade
67

78

89
@pytest.fixture
910
def remove_tags_mock(mocker):
10-
return mocker.patch('pythonpro.dashboard.views.remove_tags')
11+
return mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.remove_tags')
1112

1213

1314
@pytest.fixture
@@ -39,10 +40,14 @@ def resp_with_interaction(client_with_lead, topic, logged_user, remove_tags_mock
3940
)
4041

4142

42-
def test_user_first_video(resp, remove_tags_mock, logged_user):
43+
def test_user_mark_on_mainchimp(resp, remove_tags_mock, logged_user):
4344
remove_tags_mock.assert_called_once_with(logged_user.email, 'never-watched-video')
4445

4546

47+
def test_user_activation(resp, remove_tags_mock, logged_user):
48+
assert 'ACTIVATED' == user_facade.find_user_interactions(logged_user)[0].category
49+
50+
4651
def test_user_not_first_video(resp_with_interaction, remove_tags_mock):
4752
assert remove_tags_mock.call_count == 0
4853

pythonpro/dashboard/views.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pythonpro.dashboard.facade import has_watched_any_topic
77
from pythonpro.dashboard.forms import TopicInteractionForm
88
from pythonpro.dashboard.models import TopicInteraction
9-
from pythonpro.mailchimp.facade import remove_tags
9+
from pythonpro.domain import user_facade
1010

1111

1212
@login_required
@@ -24,6 +24,7 @@ def topic_interaction(request):
2424
form = TopicInteractionForm(data)
2525
if form.is_valid():
2626
if not has_watched_any_topic(user):
27-
remove_tags(user.email, 'never-watched-video')
27+
user_facade.activate_user(user, None)
28+
2829
form.save()
2930
return JsonResponse({'msg': 'ok'})

pythonpro/domain/user_facade.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,21 @@ def client_generated_boleto(user):
183183

184184
def subscribe_to_waiting_list(user: _User, source: str) -> None:
185185
"""
186-
Subscribe user to waiting list
187-
:param user:
188-
:param source:
189-
:return:
190-
"""
186+
Subscribe user to waiting list
187+
:param user:
188+
:param source:
189+
:return:
190+
"""
191191
_core_facade.subscribe_to_waiting_list(user, source)
192192
_mailchimp_facade.tag_as(user.email, 'lista-de-espera')
193+
194+
195+
def activate_user(user: _User, source: str) -> None:
196+
"""
197+
Activate user
198+
:param user:
199+
:param source:
200+
:return:
201+
"""
202+
_core_facade.activate_user(user, source)
203+
_mailchimp_facade.remove_tags(user.email, 'never-watched-video')

0 commit comments

Comments
 (0)