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
d9716a72
Commit
d9716a72
authored
Jul 01, 2013
by
Peter Fogg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update acceptance tests for course settings.
parent
ec13349a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
80 additions
and
39 deletions
+80
-39
cms/djangoapps/contentstore/features/common.py
+20
-14
cms/djangoapps/contentstore/features/course-settings.feature
+15
-2
cms/djangoapps/contentstore/features/course-settings.py
+28
-12
cms/djangoapps/contentstore/features/grading.feature
+9
-11
cms/djangoapps/contentstore/features/grading.py
+8
-0
No files found.
cms/djangoapps/contentstore/features/common.py
View file @
d9716a72
...
...
@@ -56,34 +56,40 @@ def i_press_the_category_delete_icon(_step, category):
def
i_have_opened_a_new_course
(
_step
):
open_new_course
()
@step
(
u'I press the "([^"]*)" notification button$'
)
def
press_the_notification_button
(
step
,
name
):
def
press_the_notification_button
(
_
step
,
name
):
css
=
'a.action-
%
s'
%
name
.
lower
()
#
Save was clicked if either the save notification bar is gone, or we have a error notification
# o
verlaying it (expected in the case of typing Object into display_name
).
def
save
_clicked
():
#
The button was clicked if either the notification bar is gone,
# o
r we see an error overlaying it (expected for invalid inputs
).
def
button
_clicked
():
confirmation_dismissed
=
world
.
is_css_not_present
(
'.is-shown.wrapper-notification-warning'
)
error_showing
=
world
.
is_css_present
(
'.is-shown.wrapper-notification-error'
)
return
confirmation_dismissed
or
error_showing
assert_true
(
world
.
css_click
(
css
,
success_condition
=
save_clicked
),
'Save button not clicked after 5 attempts.'
)
assert_true
(
world
.
css_click
(
css
,
success_condition
=
button_clicked
),
'
%
s button not clicked after 5 attempts.'
%
name
)
@step
(
'I change the "(.*)" field to "(.*)"$'
)
def
i_change_field_to_value
(
step
,
field
,
value
):
# Special casing this because we should type into CodeMirror
def
i_change_field_to_value
(
_step
,
field
,
value
):
field_css
=
'#
%
s'
%
'-'
.
join
([
s
.
lower
()
for
s
in
field
.
split
()])
if
field_css
==
'#course-overview'
:
type_in_codemirror
(
0
,
value
)
else
:
ele
=
world
.
css_find
(
field_css
)
.
first
ele
.
fill
(
value
)
ele
.
_element
.
send_keys
(
Keys
.
ENTER
)
ele
=
world
.
css_find
(
field_css
)
.
first
ele
.
fill
(
value
)
ele
.
_element
.
send_keys
(
Keys
.
ENTER
)
@step
(
'I reset the database'
)
def
reset_the_db
(
step
):
def
reset_the_db
(
_step
):
"""
When running Lettuce tests using examples (i.e. "Confirmation is
shown on save" in course-settings.feature), the normal hooks
aren't called between examples. reset_data should run before each
scenario to flush the test database. When this doesn't happen we
get errors due to trying to insert a non-unique entry. So instead,
we delete the database manually. This has the effect of removing
any users and courses that have been created during the test run.
"""
reset_data
(
None
)
...
...
cms/djangoapps/contentstore/features/course-settings.feature
View file @
d9716a72
...
...
@@ -32,9 +32,15 @@ Feature: Course Settings
Given
I have set course dates
And
I press the
"Save"
notification button
When
I change fields
And
I press the
"Cancel"
notification button
Then
I do not see the new changes persisted on refresh
Scenario
:
Settings are reset on cancel
Given
I have set course dates
And
I press the
"Save"
notification button
When
I change fields
And
I press the
"Cancel"
notification button
Then
I do not see the changes
Scenario
:
Confirmation is shown on save
Given
I have opened a new course in Studio
When
I select Schedule and Details
...
...
@@ -49,6 +55,13 @@ Feature: Course Settings
Examples
:
|
field
|
value
|
|
Course
Start
Time
|
11:00
|
|
Course
Overview
|
<h1>Overview</h1>
|
|
Course
Introduction
Video
|
4r7wHMg5Yjg
|
|
Course
Effort
|
200:00
|
# Special case because we have to type in code mirror
Scenario
:
Changes in Course Overview show a confirmation
Given
I have opened a new course in Studio
When
I select Schedule and Details
And
I change the course overview
And
I press the
"Save"
notification button
Then
I see a confirmation that my changes have been saved
cms/djangoapps/contentstore/features/course-settings.py
View file @
d9716a72
...
...
@@ -5,7 +5,6 @@ from lettuce import world, step
from
terrain.steps
import
reload_the_page
from
selenium.webdriver.common.keys
import
Keys
from
common
import
type_in_codemirror
import
time
from
nose.tools
import
assert_true
,
assert_false
,
assert_equal
...
...
@@ -52,16 +51,7 @@ def test_and_i_set_course_dates(step):
@step
(
'Then I see the set dates on refresh$'
)
def
test_then_i_see_the_set_dates_on_refresh
(
step
):
reload_the_page
(
step
)
verify_date_or_time
(
COURSE_START_DATE_CSS
,
'12/20/2013'
)
verify_date_or_time
(
COURSE_END_DATE_CSS
,
'12/26/2013'
)
verify_date_or_time
(
ENROLLMENT_START_DATE_CSS
,
'12/01/2013'
)
verify_date_or_time
(
ENROLLMENT_END_DATE_CSS
,
'12/10/2013'
)
verify_date_or_time
(
COURSE_START_TIME_CSS
,
DUMMY_TIME
)
# Unset times get set to 12 AM once the corresponding date has been set.
verify_date_or_time
(
COURSE_END_TIME_CSS
,
DEFAULT_TIME
)
verify_date_or_time
(
ENROLLMENT_START_TIME_CSS
,
DEFAULT_TIME
)
verify_date_or_time
(
ENROLLMENT_END_TIME_CSS
,
DUMMY_TIME
)
i_see_the_set_dates
()
@step
(
'And I clear all the dates except start$'
)
...
...
@@ -143,10 +133,20 @@ def test_i_change_fields(step):
@step
(
'I do not see the new changes persisted on refresh$'
)
def
test_changes_not_shown_on_refresh
(
step
):
reload_the_page
(
step
)
step
.
then
(
'Then I see the set dates on refresh'
)
@step
(
'I do not see the changes'
)
def
test_i_do_not_see_changes
(
_step
):
i_see_the_set_dates
()
@step
(
'I change the course overview'
)
def
test_change_course_overview
(
_step
):
type_in_codemirror
(
0
,
"<h1>Overview</h1>"
)
############### HELPER METHODS ####################
def
set_date_or_time
(
css
,
date_or_time
):
"""
...
...
@@ -163,3 +163,19 @@ def verify_date_or_time(css, date_or_time):
Verifies date or time field.
"""
assert_equal
(
date_or_time
,
world
.
css_find
(
css
)
.
first
.
value
)
def
i_see_the_set_dates
():
"""
Ensure that each field has the value set in `test_and_i_set_course_dates`.
"""
verify_date_or_time
(
COURSE_START_DATE_CSS
,
'12/20/2013'
)
verify_date_or_time
(
COURSE_END_DATE_CSS
,
'12/26/2013'
)
verify_date_or_time
(
ENROLLMENT_START_DATE_CSS
,
'12/01/2013'
)
verify_date_or_time
(
ENROLLMENT_END_DATE_CSS
,
'12/10/2013'
)
verify_date_or_time
(
COURSE_START_TIME_CSS
,
DUMMY_TIME
)
# Unset times get set to 12 AM once the corresponding date has been set.
verify_date_or_time
(
COURSE_END_TIME_CSS
,
DEFAULT_TIME
)
verify_date_or_time
(
ENROLLMENT_START_TIME_CSS
,
DEFAULT_TIME
)
verify_date_or_time
(
ENROLLMENT_END_TIME_CSS
,
DUMMY_TIME
)
cms/djangoapps/contentstore/features/grading.feature
View file @
d9716a72
...
...
@@ -60,22 +60,20 @@ Feature: Course Grading
And
I have populated the course
And
I am viewing the grading settings
When
I change assignment type
"Homework"
to
"New Type"
And
I press the
"Cancel"
notification button
Then
I do not see the changes persisted on refresh
Scenario
:
Settings are reset on cancel
Given
I have opened a new course in Studio
And
I have populated the course
And
I am viewing the grading settings
When
I change assignment type
"Homework"
to
"New Type"
And
I press the
"Cancel"
notification button
Then
I see the assignment type
"Homework"
Scenario
:
Confirmation is shown on save
Given
I have opened a new course in Studio
And
I have populated the course
And
I am viewing the grading settings
When
I change
the
"<field>"
field to
"<value>
"
When
I change
assignment type
"Homework"
to
"New Type
"
And
I press the
"Save"
notification button
Then
I see a confirmation that my changes have been saved
# Lettuce hooks don't get called between each example, so we need
# to run the before.each_scenario hook manually to avoid database
# errors.
And
I reset the database
Examples
:
|
field
|
value
|
|
Course
Grading
Graceperiod
|
1:00
|
|
Course
Grading
Assignment
Name
|
New
Assignment
Name
|
cms/djangoapps/contentstore/features/grading.py
View file @
d9716a72
...
...
@@ -112,6 +112,14 @@ def changes_not_persisted(step):
assert
(
ele
.
value
==
'Homework'
)
@step
(
u'I see the assignment type "(.*)"$'
)
def
i_see_the_assignment_type
(
_step
,
name
):
assignment_css
=
'#course-grading-assignment-name'
assignments
=
world
.
css_find
(
assignment_css
)
types
=
[
ele
[
'value'
]
for
ele
in
assignments
]
assert
name
in
types
def
get_type_index
(
name
):
name_id
=
'#course-grading-assignment-name'
f
=
world
.
css_find
(
name_id
)
...
...
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