From c42d7dd379f708e341cfa5e5497c5cb3fa68f2ef Mon Sep 17 00:00:00 2001 From: ruzniaievdm Date: Wed, 6 Mar 2024 14:02:51 +0200 Subject: [PATCH] fix: revision after review --- xmodule/split_test_block.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/xmodule/split_test_block.py b/xmodule/split_test_block.py index d9d0de2dd7fa..05ca3a5db454 100644 --- a/xmodule/split_test_block.py +++ b/xmodule/split_test_block.py @@ -174,13 +174,19 @@ 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. + Handles the AttributeError exception that may occur when attempting to retrieve + an icon for the split_test xblock within the CMS. """ try: - return self.runtime.get_block_for_descriptor(self.child_block) + if self.child_block is not None: + return self.runtime.get_block_for_descriptor(self.child_block) + else: + return None except AttributeError: - log.warning("Error while getting block for descriptor") + log.warning( + "Error while getting block instance for descriptor with location: [%s]", + self.location + ) return None def get_child_block_by_location(self, location): @@ -218,13 +224,22 @@ 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. + Handles the NoSuchServiceError and ValueError exception that may occur when attempting to retrieve + an icon for the split_test xblock within the CMS. """ try: group_id = self.get_group_id() except NoSuchServiceError: - log.warning("Error while getting user service in runtime") + log.warning( + "Error while getting user service in runtime with location: [%s]", + self.location + ) + return [] + except ValueError: + log.warning( + "Error while getting group ID for partition with location: [%s]", + self.location + ) return [] if group_id is None: @@ -232,6 +247,7 @@ def get_child_blocks(self): # group_id_to_child comes from json, so it has to have string keys str_group_id = str(group_id) + child_block = None if str_group_id in self.group_id_to_child: child_location = self.group_id_to_child[str_group_id] child_block = self.get_child_block_by_location(child_location)