1
1
# -*- coding: utf-8 -*-
2
2
from __future__ import absolute_import
3
3
from __future__ import unicode_literals
4
- from django .template import Template , Context
4
+ from django .template import Template , Context , RequestContext
5
5
import pytest
6
6
7
+ from stagesetting .context_processors import runtime_settings
8
+ from stagesetting .middleware import ApplyRuntimeSettings
9
+
10
+
11
+ @pytest .fixture
12
+ def stagesetting_mw ():
13
+ return ApplyRuntimeSettings ().process_view
14
+
7
15
8
16
def test_loading ():
9
17
assert Template ("{% load stagesetting %}" ).render (Context ()) == ''
@@ -12,3 +20,27 @@ def test_loading():
12
20
@pytest .mark .django_db
13
21
def test_works ():
14
22
assert Template ("{% load stagesetting %}{% stagesetting as LOL %}{{ LOL|length }}" ).render (Context ()) == '2'
23
+
24
+
25
+ @pytest .mark .django_db
26
+ def test_reuses_existing_context_variable_if_set_via_context_processor (rf ):
27
+ request = rf .get ('/' )
28
+ context = Context ()
29
+ context .update (runtime_settings (request = request ))
30
+ assert Template ("{% load stagesetting %}{% stagesetting as LOL %}{{ LOL|length }}" ).render (context ) == '2'
31
+
32
+
33
+ @pytest .mark .django_db
34
+ def test_reuses_existing_context_variable_if_set_via_middleware_and_request_in_context (rf , stagesetting_mw ):
35
+ request = rf .get ('/' )
36
+ stagesetting_mw (request = request , view_func = None , view_args = None , view_kwargs = None )
37
+ context = Context ({'request' : request })
38
+ assert Template ("{% load stagesetting %}{% stagesetting as LOL %}{{ LOL|length }}" ).render (context ) == '2'
39
+
40
+
41
+ @pytest .mark .django_db
42
+ def test_reuses_existing_context_variable_if_set_via_middleware_is_requestcontext (rf , stagesetting_mw ):
43
+ request = rf .get ('/' )
44
+ stagesetting_mw (request = request , view_func = None , view_args = None , view_kwargs = None )
45
+ context = RequestContext (request , {})
46
+ assert Template ("{% load stagesetting %}{% stagesetting as LOL %}{{ LOL|length }}" ).render (context ) == '2'
0 commit comments