Skip to content

Commit 80b25de

Browse files
committed
testing views
1 parent 434a6ea commit 80b25de

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

app/ch14_testing/final/.idea/dictionaries/screencaster.xml

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

app/ch14_testing/final/tests/account_tests.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from flask import Response
2+
13
from pypi_org.data.users import User
24
from pypi_org.viewmodels.account.register_viewmodel import RegisterViewModel
35
from tests.test_client import flask_app
@@ -53,3 +55,28 @@ def test_register_validation_for_existing_user():
5355
# Assert
5456
assert vm.error is not None
5557
assert 'already exists' in vm.error
58+
59+
60+
def test_register_view_new_user():
61+
# 3 A's of test: Arrange, Act, then Assert
62+
63+
# Arrange
64+
from pypi_org.views.account_views import register_post
65+
form_data = {
66+
'name': 'Michael',
67+
'email': '[email protected]',
68+
'password': 'a' * 6
69+
}
70+
71+
target = 'pypi_org.services.user_service.find_user_by_email'
72+
find_user = unittest.mock.patch(target, return_value=None)
73+
target = 'pypi_org.services.user_service.create_user'
74+
create_user = unittest.mock.patch(target, return_value=User())
75+
request = flask_app.test_request_context(path='/account/register', data=form_data)
76+
77+
with find_user, create_user, request:
78+
# Act
79+
resp: Response = register_post()
80+
81+
# Assert
82+
assert resp.___location == '/account'

0 commit comments

Comments
 (0)