Skip to content

Commit 3f067eb

Browse files
renzonrenzon
authored andcommitted
Refactored domain package to contains business rules
1 parent d4ce4b0 commit 3f067eb

File tree

15 files changed

+68
-67
lines changed

15 files changed

+68
-67
lines changed

Pipfile.lock

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

pythonpro/core/tests/test_lead_landing_page.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def test_status_code(resp):
1818

1919
@pytest.fixture
2020
def create_lead_mock(mocker):
21-
return mocker.patch('pythonpro.facade._mailchimp_facade.create_or_update_lead')
21+
return mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.create_or_update_lead')
2222

2323

2424
@pytest.fixture

pythonpro/core/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from django_sitemaps import Sitemap
1010
from rolepermissions.checkers import has_role
1111

12-
from pythonpro import facade
12+
from pythonpro.domain import user_facade
1313
from pythonpro.core.forms import UserEmailForm, UserSignupForm
1414
from pythonpro.core.models import User
1515

@@ -129,8 +129,8 @@ def lead_form(request):
129129
first_name = request.POST.get('first_name')
130130
email = request.POST.get('email')
131131
try:
132-
user = facade.register_lead(first_name, email, source)
133-
except facade.UserCreationException as e:
132+
user = user_facade.register_lead(first_name, email, source)
133+
except user_facade.UserCreationException as e:
134134
return render(request, 'core/lead_form_errors.html', context={'form': e.form})
135135
login(request, user)
136136
return redirect(reverse('core:lead_change_password'))

pythonpro/domain/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This package contains all facades containing entire application business rules (domain)

pythonpro/domain/__init__.py

Whitespace-only changes.

pythonpro/domain/tests/__init__.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import pytest
22

3-
from pythonpro import facade
3+
from pythonpro.domain import user_facade
44

55

66
@pytest.fixture
77
def create_or_update_lead_mock(mocker):
8-
return mocker.patch('pythonpro.facade._mailchimp_facade.create_or_update_lead')
8+
return mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.create_or_update_lead')
99

1010

1111
def test_creation(db, django_user_model, create_or_update_lead_mock):
12-
user = facade.register_lead('Renzo Nuccitelli', 'renzo@python.pro.br', 'google_ads')
12+
user = user_facade.register_lead('Renzo Nuccitelli', 'renzo@python.pro.br', 'google_ads')
1313
create_or_update_lead_mock.assert_called_once_with('Renzo Nuccitelli', 'renzo@python.pro.br')
1414
assert django_user_model.objects.all().get() == user

pythonpro/tests/test_pytools_promotion.py renamed to pythonpro/domain/tests/test_pytools_promotion.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,58 +5,58 @@
55
from model_mommy import mommy
66
from rolepermissions.roles import assign_role
77

8-
from pythonpro import facade
8+
from pythonpro.domain import user_facade
99

1010

1111
def test_leads_in_promotion_period(db, django_user_model, mocker):
1212
dts = (datetime(2019, 6, day, tzinfo=pytz.utc) for day in range(3, 10))
13-
tag_as_mock = mocker.patch('pythonpro.facade._mailchimp_facade.tag_as')
13+
tag_as_mock = mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.tag_as')
1414
users_created_seven_weeks_ago = [mommy.make(django_user_model, date_joined=d) for d in dts]
1515
for user in users_created_seven_weeks_ago:
1616
assign_role(user, 'lead')
1717
with freeze_time('2019-07-22'):
18-
assert len(users_created_seven_weeks_ago) == facade.run_pytools_promotion_campaign()
18+
assert len(users_created_seven_weeks_ago) == user_facade.run_pytools_promotion_campaign()
1919
for user in users_created_seven_weeks_ago:
2020
tag_as_mock.assert_any_call(user.email, 'pytools-promotion')
2121

2222

2323
def test_clients_not_marked_in_promotion_period(db, django_user_model, mocker):
2424
dts = (datetime(2019, 6, day, tzinfo=pytz.utc) for day in range(3, 10))
25-
tag_as_mock = mocker.patch('pythonpro.facade._mailchimp_facade.tag_as')
25+
tag_as_mock = mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.tag_as')
2626
users_created_seven_weeks_ago = [mommy.make(django_user_model, date_joined=d) for d in dts]
2727
for user in users_created_seven_weeks_ago:
2828
assign_role(user, 'client')
2929
with freeze_time('2019-07-22'):
30-
assert 0 == facade.run_pytools_promotion_campaign()
30+
assert 0 == user_facade.run_pytools_promotion_campaign()
3131
assert tag_as_mock.call_count == 0
3232

3333

3434
def test_members_not_marked_in_promotion_period(db, django_user_model, mocker):
3535
dts = (datetime(2019, 6, day, tzinfo=pytz.utc) for day in range(3, 10))
36-
tag_as_mock = mocker.patch('pythonpro.facade._mailchimp_facade.tag_as')
36+
tag_as_mock = mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.tag_as')
3737
users_created_seven_weeks_ago = [mommy.make(django_user_model, date_joined=d) for d in dts]
3838
for user in users_created_seven_weeks_ago:
3939
assign_role(user, 'client')
4040
with freeze_time('2019-07-22'):
41-
assert 0 == facade.run_pytools_promotion_campaign()
41+
assert 0 == user_facade.run_pytools_promotion_campaign()
4242
assert tag_as_mock.call_count == 0
4343

4444

4545
def test_before_promotion_period(db, django_user_model, mocker):
4646
dts = (datetime(2019, 6, day, tzinfo=pytz.utc) for day in range(1, 3))
47-
tag_as_mock = mocker.patch('pythonpro.facade._mailchimp_facade.tag_as')
47+
tag_as_mock = mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.tag_as')
4848
for d in dts:
4949
mommy.make(django_user_model, date_joined=d)
5050
with freeze_time('2019-07-22'):
51-
assert 0 == facade.run_pytools_promotion_campaign()
51+
assert 0 == user_facade.run_pytools_promotion_campaign()
5252
assert tag_as_mock.call_count == 0
5353

5454

5555
def test_after_promotion_period(db, django_user_model, mocker):
5656
dts = (datetime(2019, 6, day, tzinfo=pytz.utc) for day in range(10, 13))
57-
tag_as_mock = mocker.patch('pythonpro.facade._mailchimp_facade.tag_as')
57+
tag_as_mock = mocker.patch('pythonpro.domain.user_facade._mailchimp_facade.tag_as')
5858
for d in dts:
5959
mommy.make(django_user_model, date_joined=d)
6060
with freeze_time('2019-07-22'):
61-
assert 0 == facade.run_pytools_promotion_campaign()
61+
assert 0 == user_facade.run_pytools_promotion_campaign()
6262
assert tag_as_mock.call_count == 0
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.core.management import BaseCommand
22

3-
from pythonpro import facade
3+
from pythonpro.domain import user_facade
44

55

66
class Command(BaseCommand):
@@ -10,5 +10,5 @@ def add_arguments(self, parser):
1010
pass
1111

1212
def handle(self, *args, **options):
13-
promotion_users = facade.run_pytools_promotion_campaign()
13+
promotion_users = user_facade.run_pytools_promotion_campaign()
1414
self.stdout.write(self.style.SUCCESS(f'Successfully marked {promotion_users} users for promotions'))

0 commit comments

Comments
 (0)