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
290e8641
Commit
290e8641
authored
Oct 31, 2013
by
Jason Bau
Committed by
Joe Blaylock
Nov 01, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add error handling for update_score for OEE when no child_history
parent
69d6119d
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 @
290e8641
...
...
@@ -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 @
290e8641
...
...
@@ -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