Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
problem-builder
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
OpenEdx
problem-builder
Commits
644dc432
Commit
644dc432
authored
Jul 29, 2015
by
Braden MacDonald
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Don't cause a 500 error in the LMS if get_block unexpectedly returns None
parent
86d0611b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
1 deletions
+17
-1
problem_builder/mentoring.py
+3
-1
problem_builder/tests/unit/test_mentoring.py
+14
-0
No files found.
problem_builder/mentoring.py
View file @
644dc432
...
@@ -236,7 +236,9 @@ class MentoringBlock(XBlock, StepParentMixin, StudioEditableXBlockMixin, StudioC
...
@@ -236,7 +236,9 @@ class MentoringBlock(XBlock, StepParentMixin, StudioEditableXBlockMixin, StudioC
for
child_id
in
self
.
children
:
for
child_id
in
self
.
children
:
child
=
self
.
runtime
.
get_block
(
child_id
)
child
=
self
.
runtime
.
get_block
(
child_id
)
if
not
isinstance
(
child
,
MentoringMessageBlock
):
if
child
is
None
:
# child should not be None but it can happen due to bugs or permission issues
child_content
+=
u"<p>[{}]</p>"
.
format
(
self
.
_
(
u"Error: Unable to load child component."
))
elif
not
isinstance
(
child
,
MentoringMessageBlock
):
try
:
try
:
if
self
.
is_assessment
and
isinstance
(
child
,
StepMixin
):
if
self
.
is_assessment
and
isinstance
(
child
,
StepMixin
):
child_fragment
=
child
.
render
(
'assessment_step_view'
,
context
)
child_fragment
=
child
.
render
(
'assessment_step_view'
,
context
)
...
...
problem_builder/tests/unit/test_mentoring.py
View file @
644dc432
...
@@ -31,6 +31,20 @@ class TestMentoringBlock(unittest.TestCase):
...
@@ -31,6 +31,20 @@ class TestMentoringBlock(unittest.TestCase):
self
.
assertFalse
(
patched_runtime
.
publish
.
called
)
self
.
assertFalse
(
patched_runtime
.
publish
.
called
)
def
test_does_not_crash_when_get_child_is_broken
(
self
):
block
=
MentoringBlock
(
MagicMock
(),
DictFieldData
({
'children'
:
[
'invalid_id'
],
}),
Mock
())
with
patch
.
object
(
block
,
'runtime'
)
as
patched_runtime
:
patched_runtime
.
publish
=
Mock
()
patched_runtime
.
service
()
.
ugettext
=
lambda
str
:
str
patched_runtime
.
get_block
=
lambda
block_id
:
None
fragment
=
block
.
student_view
(
context
=
{})
self
.
assertIn
(
'Unable to load child component'
,
fragment
.
content
)
@ddt.ddt
@ddt.ddt
class
TestMentoringBlockTheming
(
unittest
.
TestCase
):
class
TestMentoringBlockTheming
(
unittest
.
TestCase
):
...
...
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