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
ec7d9578
Commit
ec7d9578
authored
Oct 31, 2013
by
Jason Bau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add error handling for update_score for OEE when no child_history
parent
944c4336
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
52 deletions
+70
-52
common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
+17
-3
common/lib/xmodule/xmodule/tests/test_combined_open_ended.py
+53
-49
No files found.
common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
View file @
ec7d9578
...
...
@@ -281,9 +281,23 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
if
not
new_score_msg
[
'valid'
]:
new_score_msg
[
'feedback'
]
=
'Invalid grader reply. Please contact the course staff.'
self
.
record_latest_score
(
new_score_msg
[
'score'
])
self
.
record_latest_post_assessment
(
score_msg
)
self
.
child_state
=
self
.
POST_ASSESSMENT
if
self
.
child_history
:
self
.
record_latest_score
(
new_score_msg
[
'score'
])
self
.
record_latest_post_assessment
(
score_msg
)
self
.
child_state
=
self
.
POST_ASSESSMENT
else
:
log
.
error
((
"Trying to update score without existing studentmodule child_history:
\n
"
" location: {location}
\n
"
" score: {score}
\n
"
" grader_ids: {grader_ids}
\n
"
" submission_ids: {submission_ids}"
)
.
format
(
location
=
self
.
location_string
,
score
=
new_score_msg
[
'score'
],
grader_ids
=
new_score_msg
[
'grader_ids'
],
submission_ids
=
new_score_msg
[
'submission_ids'
]
)
)
return
True
...
...
common/lib/xmodule/xmodule/tests/test_combined_open_ended.py
View file @
ec7d9578
...
...
@@ -212,6 +212,39 @@ class OpenEndedModuleTest(unittest.TestCase):
definition
=
{
'oeparam'
:
oeparam
}
descriptor
=
Mock
()
feedback
=
{
"success"
:
True
,
"feedback"
:
"Grader Feedback"
}
single_score_msg
=
{
'correct'
:
True
,
'score'
:
4
,
'msg'
:
'Grader Message'
,
'feedback'
:
json
.
dumps
(
feedback
),
'grader_type'
:
'IN'
,
'grader_id'
:
'1'
,
'submission_id'
:
'1'
,
'success'
:
True
,
'rubric_scores'
:
[
0
],
'rubric_scores_complete'
:
True
,
'rubric_xml'
:
etree
.
tostring
(
rubric
)
}
multiple_score_msg
=
{
'correct'
:
True
,
'score'
:
[
0
,
1
],
'msg'
:
'Grader Message'
,
'feedback'
:
[
json
.
dumps
(
feedback
),
json
.
dumps
(
feedback
)],
'grader_type'
:
'PE'
,
'grader_id'
:
[
'1'
,
'2'
],
'submission_id'
:
'1'
,
'success'
:
True
,
'rubric_scores'
:
[[
0
],
[
0
]],
'rubric_scores_complete'
:
[
True
,
True
],
'rubric_xml'
:
[
etree
.
tostring
(
rubric
),
etree
.
tostring
(
rubric
)]
}
def
setUp
(
self
):
self
.
test_system
=
get_test_system
()
self
.
test_system
.
open_ended_grading_interface
=
None
...
...
@@ -269,63 +302,16 @@ class OpenEndedModuleTest(unittest.TestCase):
def
update_score_single
(
self
):
self
.
openendedmodule
.
new_history_entry
(
"New Entry"
)
score_msg
=
{
'correct'
:
True
,
'score'
:
4
,
'msg'
:
'Grader Message'
,
'feedback'
:
"Grader Feedback"
}
get
=
{
'queuekey'
:
"abcd"
,
'xqueue_body'
:
score_msg
}
self
.
openendedmodule
.
update_score
(
get
,
self
.
test_system
)
def
update_score_single
(
self
):
self
.
openendedmodule
.
new_history_entry
(
"New Entry"
)
feedback
=
{
"success"
:
True
,
"feedback"
:
"Grader Feedback"
}
score_msg
=
{
'correct'
:
True
,
'score'
:
4
,
'msg'
:
'Grader Message'
,
'feedback'
:
json
.
dumps
(
feedback
),
'grader_type'
:
'IN'
,
'grader_id'
:
'1'
,
'submission_id'
:
'1'
,
'success'
:
True
,
'rubric_scores'
:
[
0
],
'rubric_scores_complete'
:
True
,
'rubric_xml'
:
etree
.
tostring
(
self
.
rubric
)
}
get
=
{
'queuekey'
:
"abcd"
,
'xqueue_body'
:
json
.
dumps
(
score_msg
)}
'xqueue_body'
:
json
.
dumps
(
s
elf
.
single_s
core_msg
)}
self
.
openendedmodule
.
update_score
(
get
,
self
.
test_system
)
def
update_score_multiple
(
self
):
self
.
openendedmodule
.
new_history_entry
(
"New Entry"
)
feedback
=
{
"success"
:
True
,
"feedback"
:
"Grader Feedback"
}
score_msg
=
{
'correct'
:
True
,
'score'
:
[
0
,
1
],
'msg'
:
'Grader Message'
,
'feedback'
:
[
json
.
dumps
(
feedback
),
json
.
dumps
(
feedback
)],
'grader_type'
:
'PE'
,
'grader_id'
:
[
'1'
,
'2'
],
'submission_id'
:
'1'
,
'success'
:
True
,
'rubric_scores'
:
[[
0
],
[
0
]],
'rubric_scores_complete'
:
[
True
,
True
],
'rubric_xml'
:
[
etree
.
tostring
(
self
.
rubric
),
etree
.
tostring
(
self
.
rubric
)]
}
get
=
{
'queuekey'
:
"abcd"
,
'xqueue_body'
:
json
.
dumps
(
score_msg
)}
'xqueue_body'
:
json
.
dumps
(
s
elf
.
multiple_s
core_msg
)}
self
.
openendedmodule
.
update_score
(
get
,
self
.
test_system
)
def
test_latest_post_assessment
(
self
):
self
.
update_score_single
()
assessment
=
self
.
openendedmodule
.
latest_post_assessment
(
self
.
test_system
)
...
...
@@ -346,6 +332,24 @@ class OpenEndedModuleTest(unittest.TestCase):
score
=
self
.
openendedmodule
.
latest_score
()
self
.
assertEquals
(
score
,
1
)
@patch
(
'xmodule.open_ended_grading_classes.open_ended_module.log.error'
)
def
test_update_score_nohistory
(
self
,
error_logger
):
"""
Tests error handling when there is no child_history
"""
# NOTE that we are not creating any history items
get
=
{
'queuekey'
:
"abcd"
,
'xqueue_body'
:
json
.
dumps
(
self
.
multiple_score_msg
)}
error_msg
=
(
"Trying to update score without existing studentmodule child_history:
\n
"
" location: i4x://edX/sa_test/selfassessment/SampleQuestion
\n
"
" score: 1
\n
"
" grader_ids: [u'1', u'2']
\n
"
" submission_ids: [u'1', u'1']"
)
self
.
openendedmodule
.
update_score
(
get
,
self
.
test_system
)
(
msg
,),
_
=
error_logger
.
call_args
self
.
assertTrue
(
error_logger
.
called
)
self
.
assertEqual
(
msg
,
error_msg
)
def
test_open_ended_display
(
self
):
"""
Test storing answer with the open ended module.
...
...
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