diff --git a/django/website/tabbed_page/templatetags/render_tab.py b/django/website/tabbed_page/templatetags/render_tab.py index e5d3c3fec28b948d80db916fd1a170781156bbcb..89c5b8ab44748d55ee77b2869899bc3c527ee703 100644 --- a/django/website/tabbed_page/templatetags/render_tab.py +++ b/django/website/tabbed_page/templatetags/render_tab.py @@ -8,4 +8,6 @@ def render_tab(tab_instance): template_name = tab.template_name - return render_to_string(template_name, {}) + context = tab.get_context_data() + + return render_to_string(template_name, context) diff --git a/django/website/tabbed_page/tests/render_tests.py b/django/website/tabbed_page/tests/render_tests.py index 02705f0dec5bcdbbaa333468191d85aa266bce58..ece92116db84c049a903570b5d5380f19b47675b 100644 --- a/django/website/tabbed_page/tests/render_tests.py +++ b/django/website/tabbed_page/tests/render_tests.py @@ -55,3 +55,21 @@ def test_uses_template_name(render_to_string_method): mock, 'template_name' ) assert template_name == 'test-tab-template' + + +@pytest.mark.django_db +def test_uses_context(render_to_string_method): + test_context = {'is_test_tab': True} + + tab = TestTab(context=test_context) + register_tab('test-tab', tab) + + page = TabbedPageFactory() + tab_instance = TabInstanceFactory(page=page, name='test-tab') + + with patch(render_to_string_method) as mock: + render_tab(tab_instance) + actual_context = get_mock_render_to_string_parameter( + mock, 'context' + ) + assert actual_context == test_context diff --git a/django/website/tabbed_page/tests/test_tab.py b/django/website/tabbed_page/tests/test_tab.py index b46f7c3a8cfaf23ac6d0efd3e6d7fdfb1920acaf..1355afab32b57a1d3f14a126a43d470f5a93d465 100644 --- a/django/website/tabbed_page/tests/test_tab.py +++ b/django/website/tabbed_page/tests/test_tab.py @@ -2,9 +2,21 @@ import pytest class TestTab(object): - def __init__(self, template_name=None): + def __init__(self, template_name=None, context=None): self.template_name = template_name + if context is None: + context = {} + + self.context = context + + def get_context_data(self, **kwargs): + context = getattr(self, 'context', {}) + + context['kwargs'] = kwargs + + return context + @pytest.fixture def tab():