Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
429984ef
Commit
429984ef
authored
Mar 30, 2015
by
Usman Khalid
Committed by
Andy Armstrong
Apr 17, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Third party auth tests should check account_settings_context().
TNL-1535
parent
2667f705
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
8 deletions
+34
-8
common/djangoapps/third_party_auth/tests/specs/base.py
+34
-8
No files found.
common/djangoapps/third_party_auth/tests/specs/base.py
View file @
429984ef
...
...
@@ -19,6 +19,7 @@ from social.apps.django_app import utils as social_utils
from
social.apps.django_app
import
views
as
social_views
from
student
import
models
as
student_models
from
student
import
views
as
student_views
from
student_account.views
import
account_settings_context
from
third_party_auth
import
middleware
,
pipeline
from
third_party_auth
import
settings
as
auth_settings
...
...
@@ -146,6 +147,26 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
self
.
assertIn
(
"fa fa-unlink"
,
response
.
content
)
self
.
assertEqual
(
self
.
PROVIDER_CLASS
.
NAME
,
provider_name
)
def
assert_account_settings_context_looks_correct
(
self
,
context
,
user
,
duplicate
=
False
,
linked
=
None
):
"""Asserts the user's account settings page context is in the expected state.
If duplicate is True, we expect context['duplicate_provider'] to contain
the duplicate provider object. If linked is passed, we conditionally
check that the provider is included in context['auth']['providers'] and
its connected state is correct.
"""
if
duplicate
:
self
.
assertEqual
(
context
[
'duplicate_provider'
]
.
NAME
,
self
.
PROVIDER_CLASS
.
NAME
)
else
:
self
.
assertIsNone
(
context
[
'duplicate_provider'
])
if
linked
is
not
None
:
expected_provider
=
[
provider
for
provider
in
context
[
'auth'
][
'providers'
]
if
provider
[
'name'
]
==
self
.
PROVIDER_CLASS
.
NAME
][
0
]
self
.
assertIsNotNone
(
expected_provider
)
self
.
assertEqual
(
expected_provider
[
'connected'
],
linked
)
def
assert_exception_redirect_looks_correct
(
self
,
expected_uri
,
auth_entry
=
None
):
"""Tests middleware conditional redirection.
...
...
@@ -406,6 +427,11 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
def
test_canceling_authentication_redirects_to_login_when_auth_register_2
(
self
):
self
.
assert_exception_redirect_looks_correct
(
'/account/register/'
,
auth_entry
=
pipeline
.
AUTH_ENTRY_REGISTER_2
)
def
test_canceling_authentication_redirects_to_account_settings_when_auth_entry_account_settings
(
self
):
self
.
assert_exception_redirect_looks_correct
(
'/account/settings'
,
auth_entry
=
pipeline
.
AUTH_ENTRY_ACCOUNT_SETTINGS
)
def
test_canceling_authentication_redirects_to_root_when_auth_entry_not_set
(
self
):
self
.
assert_exception_redirect_looks_correct
(
'/'
)
...
...
@@ -432,7 +458,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
# First we expect that we're in the unlinked state, and that there
# really is no association in the backend.
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
request
.
user
,
linked
=
False
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
request
.
user
,
linked
=
False
)
self
.
assert_social_auth_does_not_exist_for_user
(
request
.
user
,
strategy
)
# We should be redirected back to the complete page, setting
...
...
@@ -452,7 +478,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
# Now we expect to be in the linked state, with a backend entry.
self
.
assert_social_auth_exists_for_user
(
request
.
user
,
strategy
)
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
request
.
user
,
linked
=
True
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
request
.
user
,
linked
=
True
)
def
test_full_pipeline_succeeds_for_unlinking_account
(
self
):
# First, create, the request and strategy that store pipeline state,
...
...
@@ -479,7 +505,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
actions
.
do_complete
(
strategy
,
social_views
.
_do_login
,
user
=
user
)
# pylint: disable-msg=protected-access
# First we expect that we're in the linked state, with a backend entry.
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
user
,
linked
=
True
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
user
,
linked
=
True
)
self
.
assert_social_auth_exists_for_user
(
request
.
user
,
strategy
)
# Fire off the disconnect pipeline to unlink.
...
...
@@ -487,7 +513,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
request
.
social_strategy
,
request
.
user
,
None
,
redirect_field_name
=
auth
.
REDIRECT_FIELD_NAME
))
# Now we expect to be in the unlinked state, with no backend entry.
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
user
,
linked
=
False
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
user
,
linked
=
False
)
self
.
assert_social_auth_does_not_exist_for_user
(
user
,
strategy
)
def
test_linking_already_associated_account_raises_auth_already_associated
(
self
):
...
...
@@ -541,8 +567,8 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
request
,
exceptions
.
AuthAlreadyAssociated
(
self
.
PROVIDER_CLASS
.
BACKEND_CLASS
.
name
,
'account is already in use.'
))
self
.
assert_
dashboard_response
_looks_correct
(
student_views
.
dashboard
(
request
),
user
,
duplicate
=
True
,
linked
=
True
)
self
.
assert_
account_settings_context
_looks_correct
(
account_settings_context
(
request
),
user
,
duplicate
=
True
,
linked
=
True
)
def
test_full_pipeline_succeeds_for_signing_in_to_existing_active_account
(
self
):
# First, create, the request and strategy that store pipeline state,
...
...
@@ -593,7 +619,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
self
.
assert_redirect_to_dashboard_looks_correct
(
actions
.
do_complete
(
strategy
,
social_views
.
_do_login
,
user
=
user
))
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
user
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
user
)
def
test_signin_fails_if_account_not_active
(
self
):
_
,
strategy
=
self
.
get_request_and_strategy
(
...
...
@@ -710,7 +736,7 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
self
.
assert_redirect_to_dashboard_looks_correct
(
actions
.
do_complete
(
strategy
,
social_views
.
_do_login
,
user
=
created_user
))
self
.
assert_social_auth_exists_for_user
(
created_user
,
strategy
)
self
.
assert_
dashboard_response_looks_correct
(
student_views
.
dashboard
(
request
),
created_user
,
linked
=
True
)
self
.
assert_
account_settings_context_looks_correct
(
account_settings_context
(
request
),
created_user
,
linked
=
True
)
def
test_new_account_registration_assigns_distinct_username_on_collision
(
self
):
original_username
=
self
.
get_username
()
...
...
Write
Preview
Markdown
is supported
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