From 0c4511b57d8948f1c59ab13183ff38f8ac670963 Mon Sep 17 00:00:00 2001 From: attiyaishaque Date: Fri, 4 May 2018 11:51:43 +0500 Subject: [PATCH] Fix that when usage key none is not raise error. --- common/lib/xmodule/xmodule/seq_module.py | 2 ++ common/lib/xmodule/xmodule/tests/test_sequence.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/common/lib/xmodule/xmodule/seq_module.py b/common/lib/xmodule/xmodule/seq_module.py index 5203d74927..31019b1b72 100644 --- a/common/lib/xmodule/xmodule/seq_module.py +++ b/common/lib/xmodule/xmodule/seq_module.py @@ -212,6 +212,8 @@ class SequenceModule(SequenceFields, ProctoringFields, XModule): completion_service = self.runtime.service(self, 'completion') usage_key = data.get('usage_key', None) + if not usage_key: + return None item = self.get_child(UsageKey.from_string(usage_key)) if not item: return None diff --git a/common/lib/xmodule/xmodule/tests/test_sequence.py b/common/lib/xmodule/xmodule/tests/test_sequence.py index 70450534c3..ea739e731d 100644 --- a/common/lib/xmodule/xmodule/tests/test_sequence.py +++ b/common/lib/xmodule/xmodule/tests/test_sequence.py @@ -296,3 +296,15 @@ class SequenceBlockTestCase(XModuleXmlImportTest): self.assertIsNot(completion_return, None) self.assertTrue('complete' in completion_return) self.assertEqual(completion_return['complete'], True) + + def test_handle_ajax_get_completion_return_none(self): + """ + Test that the completion data is returned successfully None + when usage key is None through ajax call + """ + usage_key = None + completion_return = self.sequence_3_1.handle_ajax( + 'get_completion', + {'usage_key': usage_key} + ) + self.assertIs(completion_return, None)