From 29c72529d85f0611a55329c70f60c1870e6e57a5 Mon Sep 17 00:00:00 2001 From: Martin Burchell <martinb@aptivate.org> Date: Wed, 5 Aug 2015 16:58:39 +0100 Subject: [PATCH] Fixed tab rendering to use context --- .../tabbed_page/templatetags/render_tab.py | 4 +++- .../website/tabbed_page/tests/render_tests.py | 18 ++++++++++++++++++ django/website/tabbed_page/tests/test_tab.py | 14 +++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/django/website/tabbed_page/templatetags/render_tab.py b/django/website/tabbed_page/templatetags/render_tab.py index e5d3c3fe..89c5b8ab 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 02705f0d..ece92116 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 b46f7c3a..1355afab 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(): -- GitLab