Fakultas Ilmu Komputer UI
Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
PMPL
Collection of Practice
2019
1606875806-practice
Commits
4a5697b4
Commit
4a5697b4
authored
Dec 24, 2019
by
Izzan Fakhril Islam
Browse files
change from self to context on functional test
parent
aa175c92
Pipeline
#28557
failed with stages
in 13 minutes and 26 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
tutorial_7/functional_tests/test_login.py
View file @
4a5697b4
...
...
@@ -11,40 +11,40 @@ SUBJECT = 'Your Login Link for Tutorial 7 PMPL'
class
LoginTest
(
FunctionalTest
):
def
test_can_get_email_link_to_log_in
(
self
):
selenium_host
=
self
.
get_host_from_selenium
(
self
.
host
)
def
test_can_get_email_link_to_log_in
(
context
):
selenium_host
=
context
.
get_host_from_selenium
(
context
.
host
)
email_form
=
selenium_host
.
find_element_by_name
(
'email'
)
email_form
.
send_keys
(
TEST_EMAIL
)
email_form
.
send_keys
(
Keys
.
ENTER
)
# A message appears telling her an email has been sent
self
.
wait_for
(
lambda
:
self
.
assertIn
(
context
.
wait_for
(
lambda
:
context
.
assertIn
(
"Check your email, you'll find a message with a link that will log you into the site."
,
selenium_host
.
find_element_by_tag_name
(
'body'
).
text
))
# She checks her email and finds a message
email
=
mail
.
outbox
[
0
]
self
.
assertIn
(
TEST_EMAIL
,
email
.
to
)
self
.
assertEqual
(
SUBJECT
,
email
.
subject
)
context
.
assertIn
(
TEST_EMAIL
,
email
.
to
)
context
.
assertEqual
(
SUBJECT
,
email
.
subject
)
# It has a url link in it
self
.
assertIn
(
'Use this link to log in'
,
email
.
body
)
context
.
assertIn
(
'Use this link to log in'
,
email
.
body
)
url_search
=
re
.
search
(
r
'http://.+/.+$'
,
email
.
body
)
if
not
url_search
:
self
.
fail
(
f
'Could not find url in email body:
\n
{
email
.
body
}
'
)
context
.
fail
(
f
'Could not find url in email body:
\n
{
email
.
body
}
'
)
url
=
url_search
.
group
(
0
)
self
.
assertIn
(
self
.
host
,
url
)
context
.
assertIn
(
context
.
host
,
url
)
# she clicks it
logged_in_account
=
self
.
get_host_from_selenium
(
url
)
logged_in_account
=
context
.
get_host_from_selenium
(
url
)
# she is logged in!
self
.
wait_for
(
context
.
wait_for
(
lambda
:
logged_in_account
.
find_element_by_link_text
(
'Log out'
)
)
self
.
assertIn
(
TEST_EMAIL
,
selenium_host
.
find_element_by_tag_name
(
'body'
).
text
)
context
.
assertIn
(
TEST_EMAIL
,
selenium_host
.
find_element_by_tag_name
(
'body'
).
text
)
self
.
wait_to_be_logged_in
(
email
=
TEST_EMAIL
)
self
.
selenium
.
find_element_by_link_text
(
'Log out'
).
click
()
self
.
wait_to_be_logged_out
(
email
=
TEST_EMAIL
)
context
.
wait_to_be_logged_in
(
email
=
TEST_EMAIL
)
context
.
selenium
.
find_element_by_link_text
(
'Log out'
).
click
()
context
.
wait_to_be_logged_out
(
email
=
TEST_EMAIL
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment