From 9b20bfa12e7a7c1bef3abd2ddef6a2cc2fdb31d6 Mon Sep 17 00:00:00 2001 From: Susan Dreher Date: Wed, 27 Dec 2017 14:43:31 -0500 Subject: [PATCH 1/3] generate_request_xml: add LTI launch url option --- pylti/common.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pylti/common.py b/pylti/common.py index 62354e9..f03f286 100644 --- a/pylti/common.py +++ b/pylti/common.py @@ -306,7 +306,7 @@ def verify_request_common(consumers, url, method, headers, params): def generate_request_xml(message_identifier_id, operation, - lis_result_sourcedid, score): + lis_result_sourcedid, score, launch_url): # pylint: disable=too-many-locals """ Generates LTI 1.1 XML for posting result to LTI consumer. @@ -315,6 +315,7 @@ def generate_request_xml(message_identifier_id, operation, :param operation: :param lis_result_sourcedid: :param score: + :param launch_url: :return: XML string """ root = etree.Element(u'imsx_POXEnvelopeRequest', @@ -343,6 +344,10 @@ def generate_request_xml(message_identifier_id, operation, language.text = 'en' text_string = etree.SubElement(result_score, 'textString') text_string.text = score.__str__() + if launch_url: + result_data = etree.SubElement(result, 'resultData') + lti_launch_url = etree.SubElement(result_data, 'ltiLaunchUrl') + lti_launch_url.text = launch_url ret = "\n{}".format( etree.tostring(root, encoding='utf-8').decode('utf-8')) From f4cb5ccfc2ce3324501598b87007d6b2a8dcd425 Mon Sep 17 00:00:00 2001 From: Susan Dreher Date: Wed, 27 Dec 2017 14:56:53 -0500 Subject: [PATCH 2/3] add default parameter --- pylti/common.py | 2 +- pylti/tests/test_common.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pylti/common.py b/pylti/common.py index f03f286..a7d9de6 100644 --- a/pylti/common.py +++ b/pylti/common.py @@ -306,7 +306,7 @@ def verify_request_common(consumers, url, method, headers, params): def generate_request_xml(message_identifier_id, operation, - lis_result_sourcedid, score, launch_url): + lis_result_sourcedid, score, launch_url=None): # pylint: disable=too-many-locals """ Generates LTI 1.1 XML for posting result to LTI consumer. diff --git a/pylti/tests/test_common.py b/pylti/tests/test_common.py index 64fd90d..13f30b3 100644 --- a/pylti/tests/test_common.py +++ b/pylti/tests/test_common.py @@ -219,7 +219,20 @@ def test_generate_xml(self): \ lis_result_sourcedid\ """) - + xml = generate_request_xml('message_identifier_id', 'operation', + 'lis_result_sourcedid', 'score', + 'https://somelaunchurl/') + self.assertEqual(xml, """ +V1.0\ +message_identifier_id\ +\ +\ +lis_result_sourcedid\ +enscore\ +https://somelaunchurl/\ +\ +""") @staticmethod def generate_oauth_request(url_to_sign=None): """ From 250cc3ec7cc30bffa562116940314f6bda3a8fc5 Mon Sep 17 00:00:00 2001 From: Susan Dreher Date: Wed, 27 Dec 2017 15:14:50 -0500 Subject: [PATCH 3/3] flake8 --- pylti/tests/test_common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pylti/tests/test_common.py b/pylti/tests/test_common.py index 13f30b3..c687df0 100644 --- a/pylti/tests/test_common.py +++ b/pylti/tests/test_common.py @@ -233,6 +233,7 @@ def test_generate_xml(self): https://somelaunchurl/\ \ """) + @staticmethod def generate_oauth_request(url_to_sign=None): """