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
f69778b3
Commit
f69778b3
authored
Mar 20, 2013
by
Will Daly
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed lettuce test log_in step to log in programatically
rather than using the login dialog.
parent
93eebdcd
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
28 deletions
+43
-28
common/djangoapps/terrain/steps.py
+39
-25
lms/djangoapps/courseware/features/common.py
+3
-2
lms/djangoapps/courseware/features/high-level-tabs.feature
+1
-1
No files found.
common/djangoapps/terrain/steps.py
View file @
f69778b3
from
lettuce
import
world
,
step
from
.factories
import
*
from
lettuce.django
import
django_url
from
django.conf
import
settings
from
django.http
import
HttpRequest
from
django.contrib.auth.models
import
User
from
django.contrib.auth
import
authenticate
,
login
from
django.contrib.auth.middleware
import
AuthenticationMiddleware
from
django.contrib.sessions.middleware
import
SessionMiddleware
from
student.models
import
CourseEnrollment
from
urllib
import
quote_plus
from
nose.tools
import
assert_equals
...
...
@@ -78,7 +83,7 @@ def the_page_title_should_contain(step, title):
@step
(
'I am a logged in user$'
)
def
i_am_logged_in_user
(
step
):
create_user
(
'robot'
)
log_in
(
'robot
@edx.org
'
,
'test'
)
log_in
(
'robot'
,
'test'
)
@step
(
'I am not logged in$'
)
...
...
@@ -93,7 +98,7 @@ def i_am_staff_for_course_by_id(step, course_id):
@step
(
'I log in$'
)
def
i_log_in
(
step
):
log_in
(
'robot
@edx.org
'
,
'test'
)
log_in
(
'robot'
,
'test'
)
@step
(
u'I am an edX user$'
)
...
...
@@ -128,30 +133,38 @@ def create_user(uname):
@world.absorb
def
log_in
(
email
,
password
):
world
.
browser
.
cookies
.
delete
()
world
.
browser
.
visit
(
django_url
(
'/'
))
world
.
browser
.
is_element_present_by_css
(
'header.global'
,
10
)
world
.
browser
.
click_link_by_href
(
'#login-modal'
)
# Wait for the login dialog to load
# This is complicated by the fact that sometimes a second #login_form
# dialog loads, while the first one remains hidden.
# We give them both time to load, starting with the second one.
world
.
browser
.
is_element_present_by_css
(
'section.content-wrapper form#login_form'
,
wait_time
=
4
)
world
.
browser
.
is_element_present_by_css
(
'form#login_form'
,
wait_time
=
2
)
# For some reason, the page sometimes includes two #login_form
# elements, the first of which is not visible.
# To avoid this, we always select the last of the two #login_form dialogs
login_form
=
world
.
browser
.
find_by_css
(
'form#login_form'
)
.
last
login_form
.
find_by_name
(
'email'
)
.
fill
(
email
)
login_form
.
find_by_name
(
'password'
)
.
fill
(
password
)
login_form
.
find_by_name
(
'submit'
)
.
click
()
def
log_in
(
username
,
password
):
'''
Log the user in programatically
'''
# Authenticate the user
user
=
authenticate
(
username
=
username
,
password
=
password
)
assert
(
user
is
not
None
and
user
.
is_active
)
# Send a fake HttpRequest to log the user in
# We need to process the request using
# Session middleware and Authentication middleware
# to ensure that session state can be stored
request
=
HttpRequest
()
SessionMiddleware
()
.
process_request
(
request
)
AuthenticationMiddleware
()
.
process_request
(
request
)
login
(
request
,
user
)
# Save the session
request
.
session
.
save
()
# Retrieve the sessionid and add it to the browser's cookies
cookie_dict
=
{
settings
.
SESSION_COOKIE_NAME
:
request
.
session
.
session_key
}
try
:
world
.
browser
.
cookies
.
add
(
cookie_dict
)
# wait for the page to redraw
assert
world
.
browser
.
is_element_present_by_css
(
'.content-wrapper'
,
wait_time
=
10
)
# WebDriver has an issue where we cannot set cookies
# before we make a GET request, so if we get an error,
# we load the '/' page and try again
except
:
world
.
browser
.
visit
(
django_url
(
'/'
))
world
.
browser
.
cookies
.
add
(
cookie_dict
)
@world.absorb
...
...
@@ -208,6 +221,7 @@ def save_the_course_content(path='/tmp'):
u
=
world
.
browser
.
url
section_url
=
u
[
u
.
find
(
'courseware/'
)
+
11
:]
if
not
os
.
path
.
exists
(
path
):
os
.
makedirs
(
path
)
...
...
lms/djangoapps/courseware/features/common.py
View file @
f69778b3
...
...
@@ -77,7 +77,8 @@ def should_see_in_the_page(step, text):
@step
(
'I am logged in$'
)
def
i_am_logged_in
(
step
):
world
.
create_user
(
'robot'
)
world
.
log_in
(
'robot@edx.org'
,
'test'
)
world
.
log_in
(
'robot'
,
'test'
)
world
.
browser
.
visit
(
django_url
(
'/'
))
@step
(
'I am not logged in$'
)
...
...
@@ -126,7 +127,7 @@ def i_am_registered_for_the_course(step, course):
# If the user is not already enrolled, enroll the user.
CourseEnrollment
.
objects
.
get_or_create
(
user
=
u
,
course_id
=
course_id
(
course
))
world
.
log_in
(
'robot
@edx.org
'
,
'test'
)
world
.
log_in
(
'robot'
,
'test'
)
@step
(
u'The course "([^"]*)" has extra tab "([^"]*)"$'
)
...
...
lms/djangoapps/courseware/features/high-level-tabs.feature
View file @
f69778b3
...
...
@@ -6,7 +6,7 @@ Feature: All the high level tabs should work
Scenario
:
I
can navigate to all high -level tabs in a course
Given
:
I
am registered for the course
"6.002x"
And
The course
"6.002x"
has extra tab
"Custom Tab"
And
I
log
in
And
I
am logged
in
And
I click on View Courseware
When
I click on the
"<TabName>"
tab
Then
the page title should contain
"<PageTitle>"
...
...
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