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