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
568f557d
Commit
568f557d
authored
12 years ago
by
Will Daly
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pep8 fixes
Changed constant to uppercase
parent
5fd1e742
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
88 additions
and
65 deletions
+88
-65
common/djangoapps/terrain/browser.py
+2
-1
common/djangoapps/terrain/factories.py
+1
-1
common/djangoapps/terrain/steps.py
+1
-0
common/lib/capa/capa/tests/response_xml_factory.py
+37
-29
lms/djangoapps/courseware/features/common.py
+8
-2
lms/djangoapps/courseware/features/courses.py
+1
-0
lms/djangoapps/courseware/features/high-level-tabs.feature
+1
-1
lms/djangoapps/courseware/features/homepage.feature
+2
-2
lms/djangoapps/courseware/features/login.py
+1
-0
lms/djangoapps/courseware/features/openended.feature
+2
-2
lms/djangoapps/courseware/features/problems.feature
+1
-1
lms/djangoapps/courseware/features/problems.py
+29
-24
lms/djangoapps/courseware/features/registration.py
+1
-0
lms/djangoapps/courseware/features/smart-accordion.feature
+1
-2
No files found.
common/djangoapps/terrain/browser.py
View file @
568f557d
...
@@ -6,7 +6,7 @@ import time
...
@@ -6,7 +6,7 @@ import time
# Let the LMS and CMS do their one-time setup
# Let the LMS and CMS do their one-time setup
# For example, setting up mongo caches
# For example, setting up mongo caches
from
lms
import
one_time_startup
from
lms
import
one_time_startup
from
cms
import
one_time_startup
from
cms
import
one_time_startup
logger
=
getLogger
(
__name__
)
logger
=
getLogger
(
__name__
)
logger
.
info
(
"Loading the lettuce acceptance testing terrain file..."
)
logger
.
info
(
"Loading the lettuce acceptance testing terrain file..."
)
...
@@ -21,6 +21,7 @@ def initial_setup(server):
...
@@ -21,6 +21,7 @@ def initial_setup(server):
# world.browser = Browser('phantomjs')
# world.browser = Browser('phantomjs')
# world.browser = Browser('firefox')
# world.browser = Browser('firefox')
@before.each_scenario
@before.each_scenario
def
reset_data
(
scenario
):
def
reset_data
(
scenario
):
# Clean out the django test database defined in the
# Clean out the django test database defined in the
...
...
This diff is collapsed.
Click to expand it.
common/djangoapps/terrain/factories.py
View file @
568f557d
...
@@ -154,7 +154,7 @@ class XModuleItemFactory(Factory):
...
@@ -154,7 +154,7 @@ class XModuleItemFactory(Factory):
# If a display name is set, use that
# If a display name is set, use that
dest_name
=
display_name
.
replace
(
" "
,
"_"
)
if
display_name
is
not
None
else
uuid4
()
.
hex
dest_name
=
display_name
.
replace
(
" "
,
"_"
)
if
display_name
is
not
None
else
uuid4
()
.
hex
dest_location
=
parent_location
.
_replace
(
category
=
template
.
category
,
dest_location
=
parent_location
.
_replace
(
category
=
template
.
category
,
name
=
dest_name
)
name
=
dest_name
)
new_item
=
store
.
clone_item
(
template
,
dest_location
)
new_item
=
store
.
clone_item
(
template
,
dest_location
)
...
...
This diff is collapsed.
Click to expand it.
common/djangoapps/terrain/steps.py
View file @
568f557d
...
@@ -101,6 +101,7 @@ def i_am_an_edx_user(step):
...
@@ -101,6 +101,7 @@ def i_am_an_edx_user(step):
#### helper functions
#### helper functions
@world.absorb
@world.absorb
def
scroll_to_bottom
():
def
scroll_to_bottom
():
# Maximize the browser
# Maximize the browser
...
...
This diff is collapsed.
Click to expand it.
common/lib/capa/capa/tests/response_xml_factory.py
View file @
568f557d
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/common.py
View file @
568f557d
...
@@ -89,6 +89,7 @@ TEST_COURSE_ORG = 'edx'
...
@@ -89,6 +89,7 @@ TEST_COURSE_ORG = 'edx'
TEST_COURSE_NAME
=
'Test Course'
TEST_COURSE_NAME
=
'Test Course'
TEST_SECTION_NAME
=
"Problem"
TEST_SECTION_NAME
=
"Problem"
@step
(
u'The course "([^"]*)" exists$'
)
@step
(
u'The course "([^"]*)" exists$'
)
def
create_course
(
step
,
course
):
def
create_course
(
step
,
course
):
...
@@ -100,7 +101,7 @@ def create_course(step, course):
...
@@ -100,7 +101,7 @@ def create_course(step, course):
# Create the course
# Create the course
# We always use the same org and display name,
# We always use the same org and display name,
# but vary the course identifier (e.g. 600x or 191x)
# but vary the course identifier (e.g. 600x or 191x)
course
=
CourseFactory
.
create
(
org
=
TEST_COURSE_ORG
,
course
=
CourseFactory
.
create
(
org
=
TEST_COURSE_ORG
,
number
=
course
,
number
=
course
,
display_name
=
TEST_COURSE_NAME
)
display_name
=
TEST_COURSE_NAME
)
...
@@ -112,6 +113,7 @@ def create_course(step, course):
...
@@ -112,6 +113,7 @@ def create_course(step, course):
template
=
'i4x://edx/templates/sequential/Empty'
,
template
=
'i4x://edx/templates/sequential/Empty'
,
display_name
=
TEST_SECTION_NAME
)
display_name
=
TEST_SECTION_NAME
)
@step
(
u'I am registered for the course "([^"]*)"$'
)
@step
(
u'I am registered for the course "([^"]*)"$'
)
def
i_am_registered_for_the_course
(
step
,
course
):
def
i_am_registered_for_the_course
(
step
,
course
):
# Create the course
# Create the course
...
@@ -126,6 +128,7 @@ def i_am_registered_for_the_course(step, course):
...
@@ -126,6 +128,7 @@ def i_am_registered_for_the_course(step, course):
world
.
log_in
(
'robot@edx.org'
,
'test'
)
world
.
log_in
(
'robot@edx.org'
,
'test'
)
@step
(
u'The course "([^"]*)" has extra tab "([^"]*)"$'
)
@step
(
u'The course "([^"]*)" has extra tab "([^"]*)"$'
)
def
add_tab_to_course
(
step
,
course
,
extra_tab_name
):
def
add_tab_to_course
(
step
,
course
,
extra_tab_name
):
section_item
=
ItemFactory
.
create
(
parent_location
=
course_location
(
course
),
section_item
=
ItemFactory
.
create
(
parent_location
=
course_location
(
course
),
...
@@ -155,10 +158,12 @@ def flush_xmodule_store():
...
@@ -155,10 +158,12 @@ def flush_xmodule_store():
modulestore
()
.
collection
.
drop
()
modulestore
()
.
collection
.
drop
()
update_templates
()
update_templates
()
def
course_id
(
course_num
):
def
course_id
(
course_num
):
return
"
%
s/
%
s/
%
s"
%
(
TEST_COURSE_ORG
,
course_num
,
return
"
%
s/
%
s/
%
s"
%
(
TEST_COURSE_ORG
,
course_num
,
TEST_COURSE_NAME
.
replace
(
" "
,
"_"
))
TEST_COURSE_NAME
.
replace
(
" "
,
"_"
))
def
course_location
(
course_num
):
def
course_location
(
course_num
):
return
Location
(
loc_or_tag
=
"i4x"
,
return
Location
(
loc_or_tag
=
"i4x"
,
org
=
TEST_COURSE_ORG
,
org
=
TEST_COURSE_ORG
,
...
@@ -166,6 +171,7 @@ def course_location(course_num):
...
@@ -166,6 +171,7 @@ def course_location(course_num):
category
=
'course'
,
category
=
'course'
,
name
=
TEST_COURSE_NAME
.
replace
(
" "
,
"_"
))
name
=
TEST_COURSE_NAME
.
replace
(
" "
,
"_"
))
def
section_location
(
course_num
):
def
section_location
(
course_num
):
return
Location
(
loc_or_tag
=
"i4x"
,
return
Location
(
loc_or_tag
=
"i4x"
,
org
=
TEST_COURSE_ORG
,
org
=
TEST_COURSE_ORG
,
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/courses.py
View file @
568f557d
...
@@ -9,6 +9,7 @@ logger = getLogger(__name__)
...
@@ -9,6 +9,7 @@ logger = getLogger(__name__)
## support functions
## support functions
def
get_courses
():
def
get_courses
():
'''
'''
Returns dict of lists of courses available, keyed by course.org (ie university).
Returns dict of lists of courses available, keyed by course.org (ie university).
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/high-level-tabs.feature
View file @
568f557d
...
@@ -3,7 +3,7 @@ Feature: All the high level tabs should work
...
@@ -3,7 +3,7 @@ Feature: All the high level tabs should work
As a student
As a student
I want to navigate through the high level tabs
I want to navigate through the high level tabs
Scenario
:
I
can navigate to all high-level tabs in a course
Scenario
:
I
can navigate to all high
-level tabs in a course
Given
:
I
am registered for the course
"6.002x"
Given
:
I
am registered for the course
"6.002x"
And
The course
"6.002x"
has extra tab
"Custom Tab"
And
The course
"6.002x"
has extra tab
"Custom Tab"
And
I log in
And
I log in
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/homepage.feature
View file @
568f557d
...
@@ -39,9 +39,9 @@ Feature: Homepage for web users
...
@@ -39,9 +39,9 @@ Feature: Homepage for web users
|
MITx
|
|
MITx
|
|
HarvardX
|
|
HarvardX
|
|
BerkeleyX
|
|
BerkeleyX
|
|
UTx
|
|
UTx
|
|
WellesleyX
|
|
WellesleyX
|
|
GeorgetownX
|
|
GeorgetownX
|
# # TODO: Add scenario that tests the courses available
# # TODO: Add scenario that tests the courses available
# # using a policy or a configuration file
# # using a policy or a configuration file
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/login.py
View file @
568f557d
...
@@ -34,6 +34,7 @@ def click_the_dropdown(step):
...
@@ -34,6 +34,7 @@ def click_the_dropdown(step):
#### helper functions
#### helper functions
def
user_is_an_unactivated_user
(
uname
):
def
user_is_an_unactivated_user
(
uname
):
u
=
User
.
objects
.
get
(
username
=
uname
)
u
=
User
.
objects
.
get
(
username
=
uname
)
u
.
is_active
=
False
u
.
is_active
=
False
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/openended.feature
View file @
568f557d
...
@@ -3,10 +3,10 @@ Feature: Open ended grading
...
@@ -3,10 +3,10 @@ Feature: Open ended grading
In order to complete the courseware questions
In order to complete the courseware questions
I want the machine learning grading to be functional
I want the machine learning grading to be functional
# Commenting these all out right now until we can
# Commenting these all out right now until we can
# make a reference implementation for a course with
# make a reference implementation for a course with
# an open ended grading problem that is always available
# an open ended grading problem that is always available
#
#
# Scenario: An answer that is too short is rejected
# Scenario: An answer that is too short is rejected
# Given I navigate to an openended question
# Given I navigate to an openended question
# And I enter the answer "z"
# And I enter the answer "z"
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/problems.feature
View file @
568f557d
...
@@ -35,7 +35,7 @@ Feature: Answer choice problems
...
@@ -35,7 +35,7 @@ Feature: Answer choice problems
Scenario
:
I
can submit a blank answer
Scenario
:
I
can submit a blank answer
Given
I am viewing a
"<ProblemType>"
problem
Given
I am viewing a
"<ProblemType>"
problem
When
I check a problem
When
I check a problem
Then
My
"<ProblemType>"
answer is marked
"incorrect"
Then
My
"<ProblemType>"
answer is marked
"incorrect"
Examples
:
Examples
:
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/problems.py
View file @
568f557d
...
@@ -13,7 +13,7 @@ from capa.tests.response_xml_factory import OptionResponseXMLFactory, \
...
@@ -13,7 +13,7 @@ from capa.tests.response_xml_factory import OptionResponseXMLFactory, \
# Factories from capa.tests.response_xml_factory that we will use
# Factories from capa.tests.response_xml_factory that we will use
# to generate the problem XML, with the keyword args used to configure
# to generate the problem XML, with the keyword args used to configure
# the output.
# the output.
problem_factory_dict
=
{
PROBLEM_FACTORY_DICT
=
{
'drop down'
:
{
'drop down'
:
{
'factory'
:
OptionResponseXMLFactory
(),
'factory'
:
OptionResponseXMLFactory
(),
'kwargs'
:
{
'kwargs'
:
{
...
@@ -32,8 +32,8 @@ problem_factory_dict = {
...
@@ -32,8 +32,8 @@ problem_factory_dict = {
'factory'
:
ChoiceResponseXMLFactory
(),
'factory'
:
ChoiceResponseXMLFactory
(),
'kwargs'
:
{
'kwargs'
:
{
'question_text'
:
'The correct answer is Choices 1 and 3'
,
'question_text'
:
'The correct answer is Choices 1 and 3'
,
'choice_type'
:
'checkbox'
,
'choice_type'
:
'checkbox'
,
'choices'
:[
True
,
False
,
True
,
False
,
False
],
'choices'
:
[
True
,
False
,
True
,
False
,
False
],
'choice_names'
:
[
'Choice 1'
,
'Choice 2'
,
'Choice 3'
,
'Choice 4'
]}},
'choice_names'
:
[
'Choice 1'
,
'Choice 2'
,
'Choice 3'
,
'Choice 4'
]}},
'string'
:
{
'string'
:
{
...
@@ -41,7 +41,7 @@ problem_factory_dict = {
...
@@ -41,7 +41,7 @@ problem_factory_dict = {
'kwargs'
:
{
'kwargs'
:
{
'question_text'
:
'The answer is "correct string"'
,
'question_text'
:
'The answer is "correct string"'
,
'case_sensitive'
:
False
,
'case_sensitive'
:
False
,
'answer'
:
'correct string'
}},
'answer'
:
'correct string'
}},
'numerical'
:
{
'numerical'
:
{
'factory'
:
NumericalResponseXMLFactory
(),
'factory'
:
NumericalResponseXMLFactory
(),
...
@@ -49,13 +49,13 @@ problem_factory_dict = {
...
@@ -49,13 +49,13 @@ problem_factory_dict = {
'question_text'
:
'The answer is pi + 1'
,
'question_text'
:
'The answer is pi + 1'
,
'answer'
:
'4.14159'
,
'answer'
:
'4.14159'
,
'tolerance'
:
'0.00001'
,
'tolerance'
:
'0.00001'
,
'math_display'
:
True
}},
'math_display'
:
True
}},
'formula'
:
{
'formula'
:
{
'factory'
:
FormulaResponseXMLFactory
(),
'factory'
:
FormulaResponseXMLFactory
(),
'kwargs'
:
{
'kwargs'
:
{
'question_text'
:
'The solution is [mathjax]x^2+2x+y[/mathjax]'
,
'question_text'
:
'The solution is [mathjax]x^2+2x+y[/mathjax]'
,
'sample_dict'
:
{
'x'
:
(
-
100
,
100
),
'y'
:
(
-
100
,
100
)
},
'sample_dict'
:
{
'x'
:
(
-
100
,
100
),
'y'
:
(
-
100
,
100
)},
'num_samples'
:
10
,
'num_samples'
:
10
,
'tolerance'
:
0.00001
,
'tolerance'
:
0.00001
,
'math_display'
:
True
,
'math_display'
:
True
,
...
@@ -77,15 +77,16 @@ problem_factory_dict = {
...
@@ -77,15 +77,16 @@ problem_factory_dict = {
a1=0
a1=0
a2=0
a2=0
return (a1+a2)==int(expect)
return (a1+a2)==int(expect)
"""
)
}},
"""
)}},
}
}
def
add_problem_to_course
(
course
,
problem_type
):
def
add_problem_to_course
(
course
,
problem_type
):
assert
(
problem_type
in
problem_factory_dict
)
assert
(
problem_type
in
PROBLEM_FACTORY_DICT
)
# Generate the problem XML using capa.tests.response_xml_factory
# Generate the problem XML using capa.tests.response_xml_factory
factory_dict
=
problem_factory_dict
[
problem_type
]
factory_dict
=
PROBLEM_FACTORY_DICT
[
problem_type
]
problem_xml
=
factory_dict
[
'factory'
]
.
build_xml
(
**
factory_dict
[
'kwargs'
])
problem_xml
=
factory_dict
[
'factory'
]
.
build_xml
(
**
factory_dict
[
'kwargs'
])
# Create a problem item using our generated XML
# Create a problem item using our generated XML
...
@@ -95,7 +96,8 @@ def add_problem_to_course(course, problem_type):
...
@@ -95,7 +96,8 @@ def add_problem_to_course(course, problem_type):
template
=
"i4x://edx/templates/problem/Blank_Common_Problem"
,
template
=
"i4x://edx/templates/problem/Blank_Common_Problem"
,
display_name
=
str
(
problem_type
),
display_name
=
str
(
problem_type
),
data
=
problem_xml
,
data
=
problem_xml
,
metadata
=
{
'rerandomize'
:
'always'
})
metadata
=
{
'rerandomize'
:
'always'
})
@step
(
u'I am viewing a "([^"]*)" problem'
)
@step
(
u'I am viewing a "([^"]*)" problem'
)
def
view_problem
(
step
,
problem_type
):
def
view_problem
(
step
,
problem_type
):
...
@@ -108,9 +110,9 @@ def view_problem(step, problem_type):
...
@@ -108,9 +110,9 @@ def view_problem(step, problem_type):
# which should be loaded with the correct problem
# which should be loaded with the correct problem
chapter_name
=
TEST_SECTION_NAME
.
replace
(
" "
,
"_"
)
chapter_name
=
TEST_SECTION_NAME
.
replace
(
" "
,
"_"
)
section_name
=
chapter_name
section_name
=
chapter_name
url
=
django_url
(
'/courses/edx/model_course/Test_Course/courseware/
%
s/
%
s'
%
url
=
django_url
(
'/courses/edx/model_course/Test_Course/courseware/
%
s/
%
s'
%
(
chapter_name
,
section_name
))
(
chapter_name
,
section_name
))
world
.
browser
.
visit
(
url
)
world
.
browser
.
visit
(
url
)
...
@@ -147,7 +149,7 @@ def answer_problem(step, problem_type, correctness):
...
@@ -147,7 +149,7 @@ def answer_problem(step, problem_type, correctness):
inputfield
(
'string'
)
.
fill
(
textvalue
)
inputfield
(
'string'
)
.
fill
(
textvalue
)
elif
problem_type
==
'numerical'
:
elif
problem_type
==
'numerical'
:
textvalue
=
"pi + 1"
if
correctness
==
'correct'
else
str
(
random
.
randint
(
-
2
,
2
))
textvalue
=
"pi + 1"
if
correctness
==
'correct'
else
str
(
random
.
randint
(
-
2
,
2
))
inputfield
(
'numerical'
)
.
fill
(
textvalue
)
inputfield
(
'numerical'
)
.
fill
(
textvalue
)
elif
problem_type
==
'formula'
:
elif
problem_type
==
'formula'
:
...
@@ -170,14 +172,17 @@ def answer_problem(step, problem_type, correctness):
...
@@ -170,14 +172,17 @@ def answer_problem(step, problem_type, correctness):
# Submit the problem
# Submit the problem
check_problem
(
step
)
check_problem
(
step
)
@step
(
u'I check a problem'
)
@step
(
u'I check a problem'
)
def
check_problem
(
step
):
def
check_problem
(
step
):
world
.
browser
.
find_by_css
(
"input.check"
)
.
click
()
world
.
browser
.
find_by_css
(
"input.check"
)
.
click
()
@step
(
u'I reset the problem'
)
@step
(
u'I reset the problem'
)
def
reset_problem
(
step
):
def
reset_problem
(
step
):
world
.
browser
.
find_by_css
(
'input.reset'
)
.
click
()
world
.
browser
.
find_by_css
(
'input.reset'
)
.
click
()
@step
(
u'My "([^"]*)" answer is marked "([^"]*)"'
)
@step
(
u'My "([^"]*)" answer is marked "([^"]*)"'
)
def
assert_answer_mark
(
step
,
problem_type
,
correctness
):
def
assert_answer_mark
(
step
,
problem_type
,
correctness
):
""" Assert that the expected answer mark is visible for a given problem type.
""" Assert that the expected answer mark is visible for a given problem type.
...
@@ -190,28 +195,28 @@ def assert_answer_mark(step, problem_type, correctness):
...
@@ -190,28 +195,28 @@ def assert_answer_mark(step, problem_type, correctness):
This can occur, for example, if the user has reset the problem. """
This can occur, for example, if the user has reset the problem. """
# Dictionaries that map problem types to the css selectors
# Dictionaries that map problem types to the css selectors
# for correct/incorrect marks.
# for correct/incorrect marks.
# The elements are lists of selectors because a particular problem type
# The elements are lists of selectors because a particular problem type
# might be marked in multiple ways.
# might be marked in multiple ways.
# For example, multiple choice is marked incorrect differently
# For example, multiple choice is marked incorrect differently
# depending on whether the user selects an incorrect
# depending on whether the user selects an incorrect
# item or submits without selecting any item)
# item or submits without selecting any item)
correct_selectors
=
{
'drop down'
:
[
'span.correct'
],
correct_selectors
=
{
'drop down'
:
[
'span.correct'
],
'multiple choice'
:
[
'label.choicegroup_correct'
],
'multiple choice'
:
[
'label.choicegroup_correct'
],
'checkbox'
:
[
'span.correct'
],
'checkbox'
:
[
'span.correct'
],
'string'
:
[
'div.correct'
],
'string'
:
[
'div.correct'
],
'numerical'
:
[
'div.correct'
],
'numerical'
:
[
'div.correct'
],
'formula'
:
[
'div.correct'
],
'formula'
:
[
'div.correct'
],
'script'
:
[
'div.correct'
],
}
'script'
:
[
'div.correct'
],
}
incorrect_selectors
=
{
'drop down'
:
[
'span.incorrect'
],
incorrect_selectors
=
{
'drop down'
:
[
'span.incorrect'
],
'multiple choice'
:
[
'label.choicegroup_incorrect'
,
'multiple choice'
:
[
'label.choicegroup_incorrect'
,
'span.incorrect'
],
'span.incorrect'
],
'checkbox'
:
[
'span.incorrect'
],
'checkbox'
:
[
'span.incorrect'
],
'string'
:
[
'div.incorrect'
],
'string'
:
[
'div.incorrect'
],
'numerical'
:
[
'div.incorrect'
],
'numerical'
:
[
'div.incorrect'
],
'formula'
:
[
'div.incorrect'
],
'formula'
:
[
'div.incorrect'
],
'script'
:
[
'div.incorrect'
]
}
'script'
:
[
'div.incorrect'
]}
assert
(
correctness
in
[
'correct'
,
'incorrect'
,
'unanswered'
])
assert
(
correctness
in
[
'correct'
,
'incorrect'
,
'unanswered'
])
assert
(
problem_type
in
correct_selectors
and
problem_type
in
incorrect_selectors
)
assert
(
problem_type
in
correct_selectors
and
problem_type
in
incorrect_selectors
)
...
@@ -252,7 +257,7 @@ def inputfield(problem_type, choice=None, input_num=1):
...
@@ -252,7 +257,7 @@ def inputfield(problem_type, choice=None, input_num=1):
*choice* is the name of the checkbox input in a group
*choice* is the name of the checkbox input in a group
of checkboxes. """
of checkboxes. """
sel
=
(
"input#input_i4x-edx-model_course-problem-
%
s_2_
%
s"
%
sel
=
(
"input#input_i4x-edx-model_course-problem-
%
s_2_
%
s"
%
(
problem_type
.
replace
(
" "
,
"_"
),
str
(
input_num
)))
(
problem_type
.
replace
(
" "
,
"_"
),
str
(
input_num
)))
if
choice
is
not
None
:
if
choice
is
not
None
:
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/registration.py
View file @
568f557d
...
@@ -2,6 +2,7 @@ from lettuce import world, step
...
@@ -2,6 +2,7 @@ from lettuce import world, step
from
lettuce.django
import
django_url
from
lettuce.django
import
django_url
from
common
import
TEST_COURSE_ORG
,
TEST_COURSE_NAME
from
common
import
TEST_COURSE_ORG
,
TEST_COURSE_NAME
@step
(
'I register for the course "([^"]*)"$'
)
@step
(
'I register for the course "([^"]*)"$'
)
def
i_register_for_the_course
(
step
,
course
):
def
i_register_for_the_course
(
step
,
course
):
cleaned_name
=
TEST_COURSE_NAME
.
replace
(
' '
,
'_'
)
cleaned_name
=
TEST_COURSE_NAME
.
replace
(
' '
,
'_'
)
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/courseware/features/smart-accordion.feature
View file @
568f557d
...
@@ -60,4 +60,4 @@ Feature: There are courses on the homepage
...
@@ -60,4 +60,4 @@ Feature: There are courses on the homepage
# Scenario: Navigate through course BerkeleyX/CS184.1x/2012_Fall
# Scenario: Navigate through course BerkeleyX/CS184.1x/2012_Fall
# Given I am registered for course "BerkeleyX/CS184.1x/2012_Fall"
# Given I am registered for course "BerkeleyX/CS184.1x/2012_Fall"
# And I log in
# And I log in
# Then I verify all the content of each course
# Then I verify all the content of each course
\ No newline at end of file
This diff is collapsed.
Click to expand it.
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