From a631acb591a34728c7f0ba75c42cd2c78f091d26 Mon Sep 17 00:00:00 2001 From: Walter Renner Date: Fri, 5 Apr 2013 14:23:34 +0200 Subject: [PATCH] Added tests for Clickmap integration --- analytical/templatetags/clickmap.py | 17 +++++----- analytical/tests/test_tag_clickmap.py | 46 +++++++++++++++++++++++++++ docs/services/clickmap.rst | 2 +- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/analytical/templatetags/clickmap.py b/analytical/templatetags/clickmap.py index 8c2e63d..fafe8d7 100644 --- a/analytical/templatetags/clickmap.py +++ b/analytical/templatetags/clickmap.py @@ -17,16 +17,14 @@ TRACKING_CODE = """ """ - - register = Library() @@ -45,9 +43,10 @@ def clickmap(parser, token): raise TemplateSyntaxError("'%s' takes no arguments" % bits[0]) return ClickmapNode() + class ClickmapNode(Node): def __init__(self): - self.tracker_id = get_required_setting('CLICKMAP_TRACKER_ID', + self.tracker_id = get_required_setting('CLICKMAP_TRACKER_ID', CLICKMAP_TRACKER_ID_RE, "must be a (string containing) a number") @@ -70,10 +69,10 @@ class ClickmapNode(Node): """ html = TRACKING_CODE % {'portal_id': self.portal_id, 'domain': self.domain} - if is_internal_ip(context, 'HUBSPOT'): - html = disable_html(html, 'HubSpot') + if is_internal_ip(context, 'CLICKMAP'): + html = disable_html(html, 'Clickmap') return html - + def contribute_to_analytical(add_node): ClickmapNode() # ensure properly configured diff --git a/analytical/tests/test_tag_clickmap.py b/analytical/tests/test_tag_clickmap.py index e69de29..bdfc566 100644 --- a/analytical/tests/test_tag_clickmap.py +++ b/analytical/tests/test_tag_clickmap.py @@ -0,0 +1,46 @@ +""" +Tests for the Clickmap template tags and filters. +""" + +import re + +from django.contrib.auth.models import User, AnonymousUser +from django.http import HttpRequest +from django.template import Context + +from analytical.templatetags.clicky import ClickmapNode +from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED +from analytical.utils import AnalyticalException + + +@override_settings(CLICKMAP_TRACKER_ID='12345') +class ClickyTagTestCase(TagTestCase): + """ + Tests for the ``clickmap`` template tag. + """ + + def test_tag(self): + r = self.render_tag('clicjmap', 'clickmap') + self.assertTrue("tracker: '12345', version:'2'};" in r, r) + + def test_node(self): + r = ClickmapNode().render(Context({})) + self.assertTrue("tracker: '12345', version:'2'};" in r, r) + + @override_settings(CLICKMAP_TRACKER_ID=SETTING_DELETED) + def test_no_site_id(self): + self.assertRaises(AnalyticalException, ClickmapNode) + + @override_settings(CLICKMAP_TRACKER_ID='abc') + def test_wrong_site_id(self): + self.assertRaises(AnalyticalException, ClickyNode) + + @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) + def test_render_internal_ip(self): + req = HttpRequest() + req.META['REMOTE_ADDR'] = '1.1.1.1' + context = Context({'request': req}) + r = ClickmapNode().render(context) + self.assertTrue(r.startswith( + ''), r) diff --git a/docs/services/clickmap.rst b/docs/services/clickmap.rst index 6862cf1..5ee0192 100644 --- a/docs/services/clickmap.rst +++ b/docs/services/clickmap.rst @@ -41,7 +41,7 @@ Configuration ============= Before you can use the Clickmap integration, you must first set your -Clickmap Tracker Code ID. If you don't have a Clickmap account yet, +Clickmap Tracker ID. If you don't have a Clickmap account yet, `sign up`_ to get your Tracker ID. .. _`sign up`: http://www.getclickmap.com/