From b232a70dfb7bfb4f3a6e67915e89fff76b03e3b9 Mon Sep 17 00:00:00 2001 From: Tim Krones Date: Wed, 2 Sep 2015 17:40:00 +0200 Subject: [PATCH 1/2] Make sure jump_to_id links in table column headers are translated correctly in the LMS. --- problem_builder/table.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/problem_builder/table.py b/problem_builder/table.py index 1bd49912..fbe135c7 100644 --- a/problem_builder/table.py +++ b/problem_builder/table.py @@ -113,7 +113,11 @@ def table_render(self, data, suffix=''): for child_id in self.children: child = self.runtime.get_block(child_id) # Child should be an instance of MentoringTableColumn - header_values.append(child.header) + header = child.header + # Make sure /jump_to_id/ URLs are expanded correctly + if getattr(self.runtime, 'replace_jump_to_id_urls', None): + header = self.runtime.replace_jump_to_id_urls(header) + header_values.append(header) child_frag = child.render('mentoring_view', context) content_values.append(child_frag.content) context['header_values'] = header_values if any(header_values) else None From 07586e6dd4c6f6d5737709fa36f024482be66969 Mon Sep 17 00:00:00 2001 From: Tim Krones Date: Thu, 3 Sep 2015 13:59:52 +0200 Subject: [PATCH 2/2] Extend integration test to make sure table block tries to translate URLs in column headers. --- problem_builder/tests/integration/test_table.py | 15 +++++++++++++++ problem_builder/tests/integration/xml/table_3.xml | 9 +++++++++ 2 files changed, 24 insertions(+) create mode 100644 problem_builder/tests/integration/xml/table_3.xml diff --git a/problem_builder/tests/integration/test_table.py b/problem_builder/tests/integration/test_table.py index de70a164..34546adf 100644 --- a/problem_builder/tests/integration/test_table.py +++ b/problem_builder/tests/integration/test_table.py @@ -20,6 +20,8 @@ # Imports ########################################################### +from mock import patch +from workbench.runtime import WorkbenchRuntime from .base_test import MentoringBaseTest @@ -54,3 +56,16 @@ def test_mentoring_table(self): self.assertEqual(len(rows), 2) self.assertEqual(rows[0].text, 'This is the answer #1') self.assertEqual(rows[1].text, 'This is the answer #2') + + # Ensure that table block makes an effort to translate URLs in column headers + link_template = "{} in a column header." + original_contents = link_template.format('Link') + updated_contents = link_template.format('Updated link') + + with patch.object(WorkbenchRuntime, 'replace_jump_to_id_urls', create=True) as patched_method: + patched_method.return_value = updated_contents + + table = self.go_to_page('Table 3', css_selector='.mentoring-table') + patched_method.assert_called_once_with(original_contents) + link = table.find_element_by_css_selector('a') + self.assertEquals(link.text, 'Updated link') diff --git a/problem_builder/tests/integration/xml/table_3.xml b/problem_builder/tests/integration/xml/table_3.xml new file mode 100644 index 00000000..1983c1cb --- /dev/null +++ b/problem_builder/tests/integration/xml/table_3.xml @@ -0,0 +1,9 @@ + + + + + + + + +