Make mixpanel dj19-compatible

Looks like django>=1.9 uses `token` somewhere for simpletags, so use
`_token` for our own to avoid it getting overwritten.
This commit is contained in:
Hugo Osvaldo Barrera 2015-12-06 13:13:11 -03:00
parent d42e6d348b
commit d7fcdb0346
2 changed files with 10 additions and 9 deletions

View file

@ -8,6 +8,7 @@ import json
import re
from django.template import Library, Node, TemplateSyntaxError
from django.utils.safestring import mark_safe
from analytical.utils import is_internal_ip, disable_html, get_identity, \
get_required_setting
@ -46,7 +47,7 @@ def mixpanel(parser, token):
class MixpanelNode(Node):
def __init__(self):
self.token = get_required_setting(
self._token = get_required_setting(
'MIXPANEL_API_TOKEN', MIXPANEL_API_TOKEN_RE,
"must be a string containing a 32-digit hexadecimal number")
@ -65,11 +66,11 @@ class MixpanelNode(Node):
'properties': json.dumps(properties, sort_keys=True)})
except KeyError:
pass
html = TRACKING_CODE % {'token': self.token,
html = TRACKING_CODE % {'token': self._token,
'commands': " ".join(commands)}
if is_internal_ip(context, 'MIXPANEL'):
html = disable_html(html, 'Mixpanel')
return html
return mark_safe(html)
def contribute_to_analytical(add_node):

View file

@ -20,15 +20,15 @@ class MixpanelTagTestCase(TagTestCase):
def test_tag(self):
r = self.render_tag('mixpanel', 'mixpanel')
self.assertTrue(
"mixpanel.init('0123456789abcdef0123456789abcdef');" in r,
r)
self.assertIn(
"mixpanel.init('0123456789abcdef0123456789abcdef');", r,
)
def test_node(self):
r = MixpanelNode().render(Context())
self.assertTrue(
"mixpanel.init('0123456789abcdef0123456789abcdef');" in r,
r)
self.assertIn(
"mixpanel.init('0123456789abcdef0123456789abcdef');", r,
)
@override_settings(MIXPANEL_API_TOKEN=None)
def test_no_token(self):