From d14d4727eec30d75b5d56810dcaeff2b4896d3f1 Mon Sep 17 00:00:00 2001 From: Marc Bourqui Date: Wed, 24 Oct 2018 16:41:57 +0200 Subject: [PATCH] Add tests for new Google Analytics gtag, #108 --- .../tests/test_tag_google_analytics_gtag.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 analytical/tests/test_tag_google_analytics_gtag.py diff --git a/analytical/tests/test_tag_google_analytics_gtag.py b/analytical/tests/test_tag_google_analytics_gtag.py new file mode 100644 index 0000000..723bc34 --- /dev/null +++ b/analytical/tests/test_tag_google_analytics_gtag.py @@ -0,0 +1,48 @@ +""" +Tests for the Google Analytics template tags and filters, using the new gtag.js library. +""" + +from django.http import HttpRequest +from django.template import Context +from django.test.utils import override_settings + +from analytical.templatetags.google_analytics_gtag import GoogleAnalyticsGTagNode +from analytical.tests.utils import TagTestCase +from analytical.utils import AnalyticalException + + +@override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='UA-123456-7') +class GoogleAnalyticsTagTestCase(TagTestCase): + """ + Tests for the ``google_analytics_js`` template tag. + """ + + def test_tag(self): + r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') + self.assertTrue("""""" in r, r) + self.assertTrue("gtag('js', new Date());" in r, r) + self.assertTrue("gtag('config', 'UA-123456-7');" in r, r) + + def test_node(self): + r = GoogleAnalyticsGTagNode().render(Context()) + self.assertTrue("""""" in r, r) + self.assertTrue("gtag('js', new Date());" in r, r) + self.assertTrue("gtag('config', 'UA-123456-7');" in r, r) + + @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID=None) + def test_no_property_id(self): + self.assertRaises(AnalyticalException, GoogleAnalyticsGTagNode) + + @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='wrong') + def test_wrong_property_id(self): + self.assertRaises(AnalyticalException, GoogleAnalyticsGTagNode) + + @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 = GoogleAnalyticsGTagNode().render(context) + self.assertTrue(r.startswith( + ''), r)