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
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@

@pytest.fixture
def tag_as_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.tag_as.delay')
return mocker.patch('pythonpro.domain.user_domain._email_marketing_facade.tag_as.delay')


@pytest.fixture
def visit_member_landing_page_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._core_facade.visit_member_landing_page')
return mocker.patch('pythonpro.domain.user_domain._core_facade.visit_member_landing_page')


@pytest.fixture
def subscribe_to_waiting_list_mock(mocker):
return mocker.patch('pythonpro.checkout.views.user_facade.subscribe_to_waiting_list')
return mocker.patch('pythonpro.checkout.views.user_domain.subscribe_to_waiting_list')


begin_and_finish = [
Expand Down Expand Up @@ -79,7 +79,7 @@ def test_post_with_user(dt, client, freezer, subscribe_to_waiting_list_mock, log

@pytest.fixture
def subscribe_anonymous_user_to_waiting_list_mock(mocker):
return mocker.patch('pythonpro.checkout.views.user_facade.subscribe_anonymous_user_to_waiting_list')
return mocker.patch('pythonpro.checkout.views.user_domain.subscribe_anonymous_user_to_waiting_list')


@pytest.mark.parametrize('dt', begin_and_finish)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

@pytest.fixture
def tag_as_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.tag_as.delay')
return mocker.patch('pythonpro.domain.user_domain._email_marketing_facade.tag_as.delay')


@pytest.fixture
Expand Down
2 changes: 1 addition & 1 deletion pythonpro/checkout/tests/test_bootcamp_redirects.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

@pytest.fixture
def tag_as_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.tag_as.delay')
return mocker.patch('pythonpro.domain.user_domain._email_marketing_facade.tag_as.delay')


def assert_redirect_with_querystring(client, from_path, tag_as_mock, to_path):
Expand Down
6 changes: 3 additions & 3 deletions pythonpro/checkout/tests/test_waiting_list_ty.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
from django.urls import reverse

from pythonpro.domain import user_facade
from pythonpro.domain import user_domain


@pytest.fixture
Expand All @@ -12,7 +12,7 @@ def subscription_closed(settings):
@pytest.fixture
def create_or_update_with_no_role_mock(mocker):
create_or_update_with_no_role = mocker.patch(
'pythonpro.domain.user_facade._email_marketing_facade.create_or_update_with_no_role.delay'
'pythonpro.domain.user_domain._email_marketing_facade.create_or_update_with_no_role.delay'
)
return create_or_update_with_no_role

Expand Down Expand Up @@ -40,7 +40,7 @@ def test_status_code(resp):


def test_user_interacton(resp, logged_user):
assert 'WAITING_LIST' == user_facade.find_user_interactions(logged_user)[0].category
assert 'WAITING_LIST' == user_domain.find_user_interactions(logged_user)[0].category


@pytest.fixture
Expand Down
16 changes: 8 additions & 8 deletions pythonpro/checkout/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pythonpro.checkout import forms as checkout_forms
from pythonpro.checkout.forms import WaitingForm
from pythonpro.core.facade import is_webdev
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain


def _redirect_to_bootcamp_lp(request):
Expand All @@ -36,17 +36,17 @@ def bootcamp_lp(request):
source = request.GET.get('utm_source', default='unknown')
data = form.cleaned_data
if request.user.is_authenticated:
user_facade.subscribe_to_waiting_list(request.user, data['phone'], source)
user_domain.subscribe_to_waiting_list(request.user, data['phone'], source)
else:
user_facade.subscribe_anonymous_user_to_waiting_list(
user_domain.subscribe_anonymous_user_to_waiting_list(
data['email'], data['first_name'], data['phone'], source
)
return redirect(reverse('checkout:waiting_list_ty'))
return render(request, 'checkout/bootcamp_lp_subscription_closed.html', {'form': form})

if not checkout_facade.is_launch_open():
if request.user.is_authenticated:
user_facade.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
user_domain.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))

form = checkout_forms.WaitingForm()
return render(request, 'checkout/bootcamp_lp_subscription_closed.html', {'form': form})
Expand All @@ -57,7 +57,7 @@ def bootcamp_lp(request):
def _no_wevdev_discount(request, discount_slug, promotion_end_date,
template_name='checkout/bootcamp_lp_subscription_open.html'):
if request.user.is_authenticated:
user_facade.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
user_domain.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))

form = facade.ContactForm()
payment_item_config = facade.find_payment_item_config(discount_slug)
Expand Down Expand Up @@ -167,7 +167,7 @@ def bootcamp_lp_d3(request):
return _redirect_to_bootcamp_lp(request)

if request.user.is_authenticated:
user_facade.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
user_domain.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))

form = facade.ContactForm()
payment_item_config = no_discount_item_config = facade.find_payment_item_config('bootcamp')
Expand Down Expand Up @@ -198,7 +198,7 @@ def bootcamp_lp_d3_webdev(request):
if not is_debug and (has_discount or not (checkout_facade.is_launch_open() and is_webdev(user))):
return _redirect_to_bootcamp_lp(request)

user_facade.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
user_domain.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
has_client_discount = True
data = {'name': request.user.first_name, 'email': request.user.email}
form = facade.ContactForm(data)
Expand Down Expand Up @@ -284,7 +284,7 @@ def _render_with_webdev_and_first_day_discounts(
request, client_discount_slug, first_day_discount_slug, promotion_end_date,
template_name='checkout/bootcamp_lp_subscription_open.html'
):
user_facade.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
user_domain.visit_member_landing_page(request.user, source=request.GET.get('utm_source', default='unknown'))
has_client_discount = True
data = {'name': request.user.first_name, 'email': request.user.email}
form = facade.ContactForm(data)
Expand Down
20 changes: 10 additions & 10 deletions pythonpro/core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,42 +56,42 @@ class UserAdmin(RolePermissionsUserAdminMixin, admin.ModelAdmin):
actions = ['make_bootcamper', 'make_webdev', 'make_member', 'make_data_scientist', 'make_pythonista']

def make_webdev(self, request, queryset):
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
for user in queryset:
try:
user_facade.promote_webdev(user, 'django_admin')
user_domain.promote_webdev(user, 'django_admin')
except UserRoleException:
pass # No need to handle on admin

def make_bootcamper(self, request, queryset):
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
for user in queryset:
try:
user_facade.promote_bootcamper(user, 'django_admin')
user_domain.promote_bootcamper(user, 'django_admin')
except UserRoleException:
pass # No need to handle on admin

def make_pythonista(self, request, queryset):
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
for user in queryset:
try:
user_facade.promote_pythonista(user, 'django_admin')
user_domain.promote_pythonista(user, 'django_admin')
except UserRoleException:
pass # No need to handle on admin

def make_data_scientist(self, request, queryset):
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
for user in queryset:
try:
user_facade.promote_data_scientist(user, 'django_admin')
user_domain.promote_data_scientist(user, 'django_admin')
except UserRoleException:
pass # No need to handle on admin

def make_member(self, request, queryset):
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
for user in queryset:
try:
user_facade.promote_member(user, 'django_admin')
user_domain.promote_member(user, 'django_admin')
except UserRoleException:
pass # No need to handle on admin

Expand Down
10 changes: 5 additions & 5 deletions pythonpro/core/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@
from rolepermissions.roles import RolesManager

from pythonpro.core.admin import UserAdmin
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain


@pytest.fixture
def sync_user_delay(mocker):
return mocker.patch('pythonpro.domain.user_facade.sync_user_on_discourse.delay')
return mocker.patch('pythonpro.domain.user_domain.sync_user_on_discourse.delay')


@pytest.fixture
def email_market_mocks(mocker):
maybe_function_names = dir(user_facade._email_marketing_facade)
maybe_function_names = dir(user_domain._email_marketing_facade)
task_function_mocks = []
for name in maybe_function_names:
maybe_task_function = getattr(user_facade._email_marketing_facade, name)
maybe_task_function = getattr(user_domain._email_marketing_facade, name)
if hasattr(maybe_task_function, 'delay'):
task_function_mocks.append(mocker.patch(
f'pythonpro.domain.user_facade._email_marketing_facade.{name}.delay', side_effeict=maybe_task_function
f'pythonpro.domain.user_domain._email_marketing_facade.{name}.delay', side_effeict=maybe_task_function
))
return task_function_mocks

Expand Down
4 changes: 2 additions & 2 deletions pythonpro/core/tests/test_lead_landing_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def test_user_with_webdev_roles_can_access_landing_page(resp_with_user_with_webd

@pytest.fixture
def create_lead_mock(mocker):
return mocker.patch('pythonpro.domain.user_facade._email_marketing_facade.create_or_update_lead.delay')
return mocker.patch('pythonpro.domain.user_domain._email_marketing_facade.create_or_update_lead.delay')


@pytest.fixture()
Expand Down Expand Up @@ -141,7 +141,7 @@ def resp_lead_change_pasword(resp_lead_creation, client):

@pytest.fixture(autouse=True)
def sync_user_delay(mocker):
return mocker.patch('pythonpro.domain.user_facade.sync_user_on_discourse.delay')
return mocker.patch('pythonpro.domain.user_domain.sync_user_on_discourse.delay')


def test_user_discourse_sync(resp_lead_creation, sync_user_delay):
Expand Down
6 changes: 3 additions & 3 deletions pythonpro/core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from pythonpro.core import facade as core_facade
from pythonpro.core.forms import LeadForm, UserEmailForm, UserSignupForm, PythonProResetForm
from pythonpro.core.models import User
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain


def index(request):
Expand Down Expand Up @@ -187,8 +187,8 @@ def _lead_form(request, *args, **kwargs):
tags.append(f"{key}={value}")

try:
user = user_facade.register_lead(first_name, email, source, tags=tags)
except user_facade.UserCreationException as e:
user = user_domain.register_lead(first_name, email, source, tags=tags)
except user_domain.UserCreationException as e:
return render(request, 'core/lead_form_errors.html', context={'form': e.form}, status=400)

login(request, user)
Expand Down
6 changes: 3 additions & 3 deletions pythonpro/dashboard/tests/test_interaction_creation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
from model_bakery import baker

from pythonpro.dashboard.models import TopicInteraction
from pythonpro.domain import user_facade
from pythonpro.domain import user_domain
from pythonpro.modules.models import Topic


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


@pytest.fixture
Expand Down Expand Up @@ -54,7 +54,7 @@ def test_user_mark_on_email_marketing(resp, remove_tags_mock, logged_user):


def test_user_activation(resp, remove_tags_mock, logged_user):
assert 'ACTIVATED' == user_facade.find_user_interactions(logged_user)[0].category
assert 'ACTIVATED' == user_domain.find_user_interactions(logged_user)[0].category


def test_topic_interaction_status_code(resp):
Expand Down
4 changes: 2 additions & 2 deletions pythonpro/dashboard/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from pythonpro.dashboard.facade import has_watched_any_topic
from pythonpro.dashboard.forms import TopicInteractionForm
from pythonpro.domain import content_statistics_domain, user_facade
from pythonpro.domain import content_statistics_domain, user_domain
from pythonpro.modules.models import Topic


Expand Down Expand Up @@ -45,7 +45,7 @@ def topic_interaction(request):
form = TopicInteractionForm(data)
if form.is_valid():
if not has_watched_any_topic(user):
user_facade.activate_user(user, None)
user_domain.activate_user(user, None)
topic_id = int(request.POST['topic'])
current_topic_duration = Topic.objects.values('duration').get(id=topic_id)['duration']
maybe_new_topic_duration = form.cleaned_data['topic_duration']
Expand Down
10 changes: 5 additions & 5 deletions pythonpro/discourse/tests/test_sync.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
import responses

import pythonpro.domain.user_facade
import pythonpro.domain.user_domain
from pythonpro.discourse import facade


Expand All @@ -15,21 +15,21 @@ def test_missing_discourse_api_key(settings, no_responses):
settings.DISCOURSE_API_KEY = ''
settings.DISCOURSE_BASE_URL = 'https://forum.python.pro.br/'
with pytest.raises(facade.MissingDiscourseAPICredentials):
pythonpro.domain.user_facade.sync_user_on_discourse(None)
pythonpro.domain.user_domain.sync_user_on_discourse(None)


def test_missing_discourse_api_user(settings, no_responses):
settings.DISCOURSE_API_USER = ''
settings.DISCOURSE_BASE_URL = 'https://forum.python.pro.br/'
with pytest.raises(facade.MissingDiscourseAPICredentials):
pythonpro.domain.user_facade.sync_user_on_discourse(None)
pythonpro.domain.user_domain.sync_user_on_discourse(None)


def test_no_integration_on_missing_url_config(settings, no_responses):
settings.DISCOURSE_API_USER = ''
settings.DISCOURSE_API_KEY = ''
settings.DISCOURSE_BASE_URL = ''
assert pythonpro.domain.user_facade.sync_user_on_discourse(None) is None
assert pythonpro.domain.user_domain.sync_user_on_discourse(None) is None


@pytest.fixture
Expand All @@ -44,7 +44,7 @@ def resps(settings):


def test_user_sync(logged_user, resps):
pythonpro.domain.user_facade.sync_user_on_discourse(logged_user)
pythonpro.domain.user_domain.sync_user_on_discourse(logged_user)


success_response = {
Expand Down
4 changes: 2 additions & 2 deletions pythonpro/domain/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from pythonpro.domain import (checkout_domain, content_statistics_domain, user_facade)
from pythonpro.domain import (checkout_domain, content_statistics_domain, user_domain)

__all__ = [
'content_statistics_domain',
'user_facade',
'user_domain',
'checkout_domain'
]
Loading