Skip to content

Commit

Permalink
fix: wrap into try/except block getting icon for xblock
Browse files Browse the repository at this point in the history
  • Loading branch information
ruzniaievdm committed Mar 6, 2024
1 parent d8dc9a8 commit 0557c26
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,6 @@

CREATE_IF_NOT_FOUND = ["course_info"]

# List of categories to check for presence in the children of the XBlock.
# This list is used to determine if all of the specified categories are absent
# in the categories of the children XBlock instances otherwise icon class variable will be set to `None`.
CATEGORIES_WITH_ABSENT_ICON = ["split_test"]

# Useful constants for defining predicates
NEVER = lambda x: False
ALWAYS = lambda x: True
Expand Down Expand Up @@ -1068,10 +1063,6 @@ def create_xblock_info( # lint-amnesty, pylint: disable=too-many-statements
)
else:
user_partitions = get_user_partition_info(xblock, course=course)
all_excluded_categories_absent = all(
category not in [child.category for child in xblock.get_children()]
for category in CATEGORIES_WITH_ABSENT_ICON
)
xblock_info.update(
{
"edited_on": get_default_time_display(xblock.subtree_edited_on)
Expand Down Expand Up @@ -1099,7 +1090,7 @@ def create_xblock_info( # lint-amnesty, pylint: disable=too-many-statements
"group_access": xblock.group_access,
"user_partitions": user_partitions,
"show_correctness": xblock.show_correctness,
"xblock_type": get_icon(xblock) if is_xblock_unit and all_excluded_categories_absent else None,
"xblock_type": get_icon(xblock),
}
)

Expand Down
19 changes: 16 additions & 3 deletions xmodule/split_test_block.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from web_fragments.fragment import Fragment
from webob import Response
from xblock.core import XBlock
from xblock.exceptions import NoSuchServiceError
from xblock.fields import Integer, ReferenceValueDict, Scope, String
from xmodule.mako_block import MakoTemplateBlockBase
from xmodule.modulestore.inheritance import UserPartitionList
Expand Down Expand Up @@ -172,10 +173,14 @@ def child_block(self):
def child(self):
"""
Return the user bound child block for the partition or None.
We are using try/except block here because we ran into issues with
CachingDescriptorSystem has no attribute when we get an icon for the split_test xblock.
"""
if self.child_block is not None:
try:
return self.runtime.get_block_for_descriptor(self.child_block)
else:
except AttributeError:
log.warning("Error while getting block for descriptor")
return None

def get_child_block_by_location(self, location):
Expand Down Expand Up @@ -212,8 +217,16 @@ def get_content_titles(self):
def get_child_blocks(self):
"""
For grading--return just the chosen child.
We are using try/except block here because we ran into issues with
User service being undefined when we get an icon for the split_test xblock.
"""
group_id = self.get_group_id()
try:
group_id = self.get_group_id()
except NoSuchServiceError:
log.warning("Error while getting user service in runtime")
return []

if group_id is None:
return []

Expand Down

0 comments on commit 0557c26

Please sign in to comment.