From f0e7ebe7313e96e8bb95383378635263f4ec3a44 Mon Sep 17 00:00:00 2001 From: David Smith Date: Wed, 9 Dec 2020 21:14:39 +0000 Subject: [PATCH] Converted remaining tests to Pytest style --- tests/unit/test_tag_chartbeat.py | 8 +- tests/unit/test_tag_clickmap.py | 8 +- tests/unit/test_tag_clicky.py | 8 +- tests/unit/test_tag_crazy_egg.py | 7 +- tests/unit/test_tag_facebook_pixel.py | 52 ++++---- tests/unit/test_tag_gauges.py | 19 +-- tests/unit/test_tag_google_analytics.py | 88 +++++++------ tests/unit/test_tag_google_analytics_gtag.py | 64 ++++----- tests/unit/test_tag_google_analytics_js.py | 88 +++++++------ tests/unit/test_tag_gosquared.py | 23 ++-- tests/unit/test_tag_hotjar.py | 26 ++-- tests/unit/test_tag_hubspot.py | 24 ++-- tests/unit/test_tag_intercom.py | 53 ++++---- tests/unit/test_tag_kiss_insights.py | 24 ++-- tests/unit/test_tag_kiss_metrics.py | 35 ++--- tests/unit/test_tag_luckyorange.py | 26 ++-- tests/unit/test_tag_matomo.py | 70 +++++----- tests/unit/test_tag_mixpanel.py | 28 ++-- tests/unit/test_tag_olark.py | 32 ++--- tests/unit/test_tag_optimizely.py | 23 ++-- tests/unit/test_tag_performable.py | 29 ++--- tests/unit/test_tag_piwik.py | 71 +++++----- tests/unit/test_tag_rating_mailru.py | 17 ++- tests/unit/test_tag_snapengage.py | 129 +++++++------------ tests/unit/test_tag_spring_metrics.py | 25 ++-- tests/unit/test_tag_uservoice.py | 32 +++-- tests/unit/test_tag_woopra.py | 34 ++--- tests/unit/test_tag_yandex_metrica.py | 17 ++- tests/unit/test_utils.py | 28 ++-- 29 files changed, 564 insertions(+), 524 deletions(-) diff --git a/tests/unit/test_tag_chartbeat.py b/tests/unit/test_tag_chartbeat.py index 01363bb..c5e6493 100644 --- a/tests/unit/test_tag_chartbeat.py +++ b/tests/unit/test_tag_chartbeat.py @@ -14,6 +14,8 @@ from analytical.templatetags.chartbeat import ChartbeatTopNode, \ from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(CHARTBEAT_USER_ID='12345') class ChartbeatTagTestCaseNoSites(TestCase): @@ -83,11 +85,13 @@ class ChartbeatTagTestCase(TagTestCase): @override_settings(CHARTBEAT_USER_ID=None) def test_no_user_id(self): - self.assertRaises(AnalyticalException, ChartbeatBottomNode) + with pytest.raises(AnalyticalException): + ChartbeatBottomNode() @override_settings(CHARTBEAT_USER_ID='123abc') def test_wrong_user_id(self): - self.assertRaises(AnalyticalException, ChartbeatBottomNode) + with pytest.raises(AnalyticalException): + ChartbeatBottomNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): diff --git a/tests/unit/test_tag_clickmap.py b/tests/unit/test_tag_clickmap.py index 180f0af..b6049eb 100644 --- a/tests/unit/test_tag_clickmap.py +++ b/tests/unit/test_tag_clickmap.py @@ -10,6 +10,8 @@ from analytical.templatetags.clickmap import ClickmapNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(CLICKMAP_TRACKER_ID='12345ABC') class ClickmapTagTestCase(TagTestCase): @@ -27,11 +29,13 @@ class ClickmapTagTestCase(TagTestCase): @override_settings(CLICKMAP_TRACKER_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, ClickmapNode) + with pytest.raises(AnalyticalException): + ClickmapNode() @override_settings(CLICKMAP_TRACKER_ID='ab#c') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, ClickmapNode) + with pytest.raises(AnalyticalException): + ClickmapNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): diff --git a/tests/unit/test_tag_clicky.py b/tests/unit/test_tag_clicky.py index 837b65f..2be16c8 100644 --- a/tests/unit/test_tag_clicky.py +++ b/tests/unit/test_tag_clicky.py @@ -13,6 +13,8 @@ from analytical.templatetags.clicky import ClickyNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(CLICKY_SITE_ID='12345678') class ClickyTagTestCase(TagTestCase): @@ -32,11 +34,13 @@ class ClickyTagTestCase(TagTestCase): @override_settings(CLICKY_SITE_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, ClickyNode) + with pytest.raises(AnalyticalException): + ClickyNode() @override_settings(CLICKY_SITE_ID='123abc') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, ClickyNode) + with pytest.raises(AnalyticalException): + ClickyNode() @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): diff --git a/tests/unit/test_tag_crazy_egg.py b/tests/unit/test_tag_crazy_egg.py index 521066a..f2cab47 100644 --- a/tests/unit/test_tag_crazy_egg.py +++ b/tests/unit/test_tag_crazy_egg.py @@ -5,6 +5,7 @@ Tests for the Crazy Egg template tags and filters. from django.http import HttpRequest from django.template import Context from django.test.utils import override_settings +import pytest from analytical.templatetags.crazy_egg import CrazyEggNode from utils import TagTestCase @@ -27,11 +28,13 @@ class CrazyEggTagTestCase(TagTestCase): @override_settings(CRAZY_EGG_ACCOUNT_NUMBER=None) def test_no_account_number(self): - self.assertRaises(AnalyticalException, CrazyEggNode) + with pytest.raises(AnalyticalException): + CrazyEggNode() @override_settings(CRAZY_EGG_ACCOUNT_NUMBER='123abc') def test_wrong_account_number(self): - self.assertRaises(AnalyticalException, CrazyEggNode) + with pytest.raises(AnalyticalException): + CrazyEggNode() def test_uservars(self): context = Context({'crazy_egg_var1': 'foo', 'crazy_egg_var2': 'bar'}) diff --git a/tests/unit/test_tag_facebook_pixel.py b/tests/unit/test_tag_facebook_pixel.py index 1bbdfad..2020257 100644 --- a/tests/unit/test_tag_facebook_pixel.py +++ b/tests/unit/test_tag_facebook_pixel.py @@ -10,6 +10,7 @@ from analytical.templatetags.facebook_pixel import FacebookPixelHeadNode, Facebo from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest expected_head_html = """\ -""", self.render_tag('gauges', 'gauges')) +""" def test_node(self): - self.assertEqual( - """ + assert GaugesNode().render(Context()) == """ -""", GaugesNode().render(Context())) +""" @override_settings(GAUGES_SITE_ID=None) def test_no_account_number(self): - self.assertRaises(AnalyticalException, GaugesNode) + with pytest.raises(AnalyticalException): + GaugesNode() @override_settings(GAUGES_SITE_ID='123abQ') def test_wrong_account_number(self): @@ -66,6 +68,5 @@ class GaugesTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = GaugesNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_google_analytics.py b/tests/unit/test_tag_google_analytics.py index da73996..28488c7 100644 --- a/tests/unit/test_tag_google_analytics.py +++ b/tests/unit/test_tag_google_analytics.py @@ -12,6 +12,8 @@ from analytical.templatetags.google_analytics import GoogleAnalyticsNode, \ from utils import TestCase, TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(GOOGLE_ANALYTICS_PROPERTY_ID='UA-123456-7', GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_SINGLE_DOMAIN) @@ -22,36 +24,38 @@ class GoogleAnalyticsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('google_analytics', 'google_analytics') - self.assertTrue("_gaq.push(['_setAccount', 'UA-123456-7']);" in r, r) - self.assertTrue("_gaq.push(['_trackPageview']);" in r, r) + assert "_gaq.push(['_setAccount', 'UA-123456-7']);" in r + assert "_gaq.push(['_trackPageview']);" in r def test_node(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setAccount', 'UA-123456-7']);" in r, r) - self.assertTrue("_gaq.push(['_trackPageview']);" in r, r) + assert "_gaq.push(['_setAccount', 'UA-123456-7']);" in r + assert "_gaq.push(['_trackPageview']);" in r @override_settings(GOOGLE_ANALYTICS_PROPERTY_ID=None) def test_no_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode() @override_settings(GOOGLE_ANALYTICS_PROPERTY_ID='wrong') def test_wrong_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode() @override_settings(GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_MULTIPLE_SUBDOMAINS, GOOGLE_ANALYTICS_DOMAIN='example.com') def test_track_multiple_subdomains(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setDomainName', 'example.com']);" in r, r) - self.assertTrue("_gaq.push(['_setAllowHash', false]);" in r, r) + assert "_gaq.push(['_setDomainName', 'example.com']);" in r + assert "_gaq.push(['_setAllowHash', false]);" in r @override_settings(GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_MULTIPLE_DOMAINS, GOOGLE_ANALYTICS_DOMAIN='example.com') def test_track_multiple_domains(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setDomainName', 'example.com']);" in r, r) - self.assertTrue("_gaq.push(['_setAllowHash', false]);" in r, r) - self.assertTrue("_gaq.push(['_setAllowLinker', true]);" in r, r) + assert "_gaq.push(['_setDomainName', 'example.com']);" in r + assert "_gaq.push(['_setAllowHash', false]);" in r + assert "_gaq.push(['_setAllowLinker', true]);" in r def test_custom_vars(self): context = Context({ @@ -61,23 +65,23 @@ class GoogleAnalyticsTagTestCase(TagTestCase): 'google_analytics_var5': ('test5', 'qux', SCOPE_PAGE), }) r = GoogleAnalyticsNode().render(context) - self.assertTrue("_gaq.push(['_setCustomVar', 1, 'test1', 'foo', 3]);" in r, r) - self.assertTrue("_gaq.push(['_setCustomVar', 2, 'test2', 'bar', 1]);" in r, r) - self.assertTrue("_gaq.push(['_setCustomVar', 4, 'test4', 'baz', 2]);" in r, r) - self.assertTrue("_gaq.push(['_setCustomVar', 5, 'test5', 'qux', 3]);" in r, r) + assert "_gaq.push(['_setCustomVar', 1, 'test1', 'foo', 3]);" in r + assert "_gaq.push(['_setCustomVar', 2, 'test2', 'bar', 1]);" in r + assert "_gaq.push(['_setCustomVar', 4, 'test4', 'baz', 2]);" in r + assert "_gaq.push(['_setCustomVar', 5, 'test5', 'qux', 3]);" in r @override_settings(GOOGLE_ANALYTICS_SITE_SPEED=True) def test_track_page_load_time(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_trackPageLoadTime']);" in r, r) + assert "_gaq.push(['_trackPageLoadTime']);" in r def test_display_advertising(self): with override_settings(GOOGLE_ANALYTICS_DISPLAY_ADVERTISING=False): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("google-analytics.com/ga.js" in r, r) + assert "google-analytics.com/ga.js" in r with override_settings(GOOGLE_ANALYTICS_DISPLAY_ADVERTISING=True): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("stats.g.doubleclick.net/dc.js" in r, r) + assert "stats.g.doubleclick.net/dc.js" in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -85,90 +89,95 @@ class GoogleAnalyticsTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = GoogleAnalyticsNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') @override_settings(GOOGLE_ANALYTICS_ANONYMIZE_IP=True) def test_anonymize_ip(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_gat._anonymizeIp']);" in r, r) - self.assertTrue(r.index('_gat._anonymizeIp') < r.index('_trackPageview'), r) + assert "_gaq.push(['_gat._anonymizeIp']);" in r + assert r.index('_gat._anonymizeIp') < r.index('_trackPageview') @override_settings(GOOGLE_ANALYTICS_ANONYMIZE_IP=False) def test_anonymize_ip_not_present(self): r = GoogleAnalyticsNode().render(Context()) - self.assertFalse("_gaq.push(['_gat._anonymizeIp']);" in r, r) + assert "_gaq.push(['_gat._anonymizeIp']);" not in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=0.0) def test_set_sample_rate_min(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSampleRate', '0.00']);" in r, r) + assert "_gaq.push(['_setSampleRate', '0.00']);" in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE='100.00') def test_set_sample_rate_max(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSampleRate', '100.00']);" in r, r) + assert "_gaq.push(['_setSampleRate', '100.00']);" in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=-1) def test_exception_whenset_sample_rate_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=101) def test_exception_when_set_sample_rate_too_large(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=0.0) def test_set_site_speed_sample_rate_min(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSiteSpeedSampleRate', '0.00']);" in r, r) + assert "_gaq.push(['_setSiteSpeedSampleRate', '0.00']);" in r @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE='100.00') def test_set_site_speed_sample_rate_max(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSiteSpeedSampleRate', '100.00']);" in r, r) + assert "_gaq.push(['_setSiteSpeedSampleRate', '100.00']);" in r @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=-1) def test_exception_whenset_site_speed_sample_rate_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=101) def test_exception_when_set_site_speed_sample_rate_too_large(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SESSION_COOKIE_TIMEOUT=0) def test_set_session_cookie_timeout_min(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSessionCookieTimeout', '0']);" in r, r) + assert "_gaq.push(['_setSessionCookieTimeout', '0']);" in r @override_settings(GOOGLE_ANALYTICS_SESSION_COOKIE_TIMEOUT='10000') def test_set_session_cookie_timeout_as_string(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setSessionCookieTimeout', '10000']);" in r, r) + assert "_gaq.push(['_setSessionCookieTimeout', '10000']);" in r @override_settings(GOOGLE_ANALYTICS_SESSION_COOKIE_TIMEOUT=-1) def test_exception_when_set_session_cookie_timeout_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_VISITOR_COOKIE_TIMEOUT=0) def test_set_visitor_cookie_timeout_min(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setVisitorCookieTimeout', '0']);" in r, r) + assert "_gaq.push(['_setVisitorCookieTimeout', '0']);" in r @override_settings(GOOGLE_ANALYTICS_VISITOR_COOKIE_TIMEOUT='10000') def test_set_visitor_cookie_timeout_as_string(self): r = GoogleAnalyticsNode().render(Context()) - self.assertTrue("_gaq.push(['_setVisitorCookieTimeout', '10000']);" in r, r) + assert "_gaq.push(['_setVisitorCookieTimeout', '10000']);" in r @override_settings(GOOGLE_ANALYTICS_VISITOR_COOKIE_TIMEOUT=-1) def test_exception_when_set_visitor_cookie_timeout_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) @override_settings(GOOGLE_ANALYTICS_PROPERTY_ID='UA-123456-7', @@ -178,4 +187,5 @@ class GoogleAnalyticsTagTestCase(TagTestCase): class NoDomainTestCase(TestCase): def test_exception_without_domain(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsNode().render(context) diff --git a/tests/unit/test_tag_google_analytics_gtag.py b/tests/unit/test_tag_google_analytics_gtag.py index c81368f..57f4531 100644 --- a/tests/unit/test_tag_google_analytics_gtag.py +++ b/tests/unit/test_tag_google_analytics_gtag.py @@ -11,6 +11,8 @@ from analytical.templatetags.google_analytics_gtag import GoogleAnalyticsGTagNod from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='UA-123456-7') class GoogleAnalyticsTagTestCase(TagTestCase): @@ -20,27 +22,29 @@ class GoogleAnalyticsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') - self.assertTrue( + assert ( '' - in r, r) - self.assertTrue("gtag('js', new Date());" in r, r) - self.assertTrue("gtag('config', 'UA-123456-7');" in r, r) + ) in r + assert "gtag('js', new Date());" in r + assert "gtag('config', 'UA-123456-7');" in r def test_node(self): r = GoogleAnalyticsGTagNode().render(Context()) - self.assertTrue( + assert ( '' - in r, r) - self.assertTrue("gtag('js', new Date());" in r, r) - self.assertTrue("gtag('config', 'UA-123456-7');" in r, r) + ) in r + assert "gtag('js', new Date());" in r + assert "gtag('config', 'UA-123456-7');" in r @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID=None) def test_no_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsGTagNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsGTagNode() @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='wrong') def test_wrong_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsGTagNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsGTagNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -48,41 +52,37 @@ class GoogleAnalyticsTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = GoogleAnalyticsGTagNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = GoogleAnalyticsGTagNode().render(Context({'user': User(username='test')})) - self.assertTrue("gtag('set', {'user_id': 'test'});" in r, r) + assert "gtag('set', {'user_id': 'test'});" in r @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='G-12345678') def test_tag_with_measurement_id(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', 'G-12345678');" in r, r) + assert ( + '' + ) in r + assert "gtag('js', new Date());" in r + assert "gtag('config', 'G-12345678');" in r @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='AW-1234567890') def test_tag_with_conversion_id(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', 'AW-1234567890');" in r, r) + assert ( + '') - in r, r) - self.assertTrue("gtag('js', new Date());" in r, r) - self.assertTrue("gtag('config', 'DC-12345678');" in r, r) + assert ( + '' + ) in r + assert "gtag('js', new Date());" in r + assert "gtag('config', 'DC-12345678');" in r diff --git a/tests/unit/test_tag_google_analytics_js.py b/tests/unit/test_tag_google_analytics_js.py index 1009fbb..1856e4a 100644 --- a/tests/unit/test_tag_google_analytics_js.py +++ b/tests/unit/test_tag_google_analytics_js.py @@ -11,6 +11,8 @@ from analytical.templatetags.google_analytics_js import GoogleAnalyticsJsNode, \ from utils import TestCase, TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(GOOGLE_ANALYTICS_JS_PROPERTY_ID='UA-123456-7', GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_SINGLE_DOMAIN) @@ -21,44 +23,45 @@ class GoogleAnalyticsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('google_analytics_js', 'google_analytics_js') - self.assertTrue("""(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + assert """(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) -})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');""" in r, r) - self.assertTrue("ga('create', 'UA-123456-7', 'auto', {});" in r, r) - self.assertTrue("ga('send', 'pageview');" in r, r) +})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');""" in r + assert "ga('create', 'UA-123456-7', 'auto', {});" in r + assert "ga('send', 'pageview');" in r def test_node(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("""(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + assert """(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) -})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');""" in r, r) - self.assertTrue("ga('create', 'UA-123456-7', 'auto', {});" in r, r) - self.assertTrue("ga('send', 'pageview');" in r, r) +})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');""" in r + assert "ga('create', 'UA-123456-7', 'auto', {});" in r + assert "ga('send', 'pageview');" in r @override_settings(GOOGLE_ANALYTICS_JS_PROPERTY_ID=None) def test_no_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode() @override_settings(GOOGLE_ANALYTICS_JS_PROPERTY_ID='wrong') def test_wrong_property_id(self): - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode() @override_settings(GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_MULTIPLE_SUBDOMAINS, GOOGLE_ANALYTICS_DOMAIN='example.com') def test_track_multiple_subdomains(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue( - """ga('create', 'UA-123456-7', 'auto', {"legacyCookieDomain": "example.com"}""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"legacyCookieDomain": "example.com"}""" in r @override_settings(GOOGLE_ANALYTICS_TRACKING_STYLE=TRACK_MULTIPLE_DOMAINS, GOOGLE_ANALYTICS_DOMAIN='example.com') def test_track_multiple_domains(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("ga('create', 'UA-123456-7', 'auto', {" in r, r) - self.assertTrue('"legacyCookieDomain": "example.com"' in r, r) - self.assertTrue('"allowLinker\": true' in r, r) + assert "ga('create', 'UA-123456-7', 'auto', {" in r + assert '"legacyCookieDomain": "example.com"' in r + assert '"allowLinker\": true' in r def test_custom_vars(self): context = Context({ @@ -68,17 +71,17 @@ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 'google_analytics_var5': ('test5', 2.2), }) r = GoogleAnalyticsJsNode().render(context) - self.assertTrue("ga('set', 'test1', 'foo');" in r, r) - self.assertTrue("ga('set', 'test2', 'bar');" in r, r) - self.assertTrue("ga('set', 'test4', 1);" in r, r) - self.assertTrue("ga('set', 'test5', 2.2);" in r, r) + assert "ga('set', 'test1', 'foo');" in r + assert "ga('set', 'test2', 'bar');" in r + assert "ga('set', 'test4', 1);" in r + assert "ga('set', 'test5', 2.2);" in r def test_display_advertising(self): with override_settings(GOOGLE_ANALYTICS_DISPLAY_ADVERTISING=True): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("""ga('create', 'UA-123456-7', 'auto', {}); + assert """ga('create', 'UA-123456-7', 'auto', {}); ga('require', 'displayfeatures'); -ga('send', 'pageview');""" in r, r) +ga('send', 'pageview');""" in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -86,77 +89,79 @@ ga('send', 'pageview');""" in r, r) req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = GoogleAnalyticsJsNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith( + '') @override_settings(GOOGLE_ANALYTICS_ANONYMIZE_IP=True) def test_anonymize_ip(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("ga('set', 'anonymizeIp', true);" in r, r) + assert "ga('set', 'anonymizeIp', true);" in r @override_settings(GOOGLE_ANALYTICS_ANONYMIZE_IP=False) def test_anonymize_ip_not_present(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertFalse("ga('set', 'anonymizeIp', true);" in r, r) + assert "ga('set', 'anonymizeIp', true);" not in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=0.0) def test_set_sample_rate_min(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("""ga('create', 'UA-123456-7', 'auto', {"sampleRate": 0});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"sampleRate": 0});""" in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE='100.00') def test_set_sample_rate_max(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("""ga('create', 'UA-123456-7', 'auto', {"sampleRate": 100});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"sampleRate": 100});""" in r @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=-1) def test_exception_whenset_sample_rate_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SAMPLE_RATE=101) def test_exception_when_set_sample_rate_too_large(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=0.0) def test_set_site_speed_sample_rate_min(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue( - """ga('create', 'UA-123456-7', 'auto', {"siteSpeedSampleRate": 0});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"siteSpeedSampleRate": 0});""" in r @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE='100.00') def test_set_site_speed_sample_rate_max(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue( - """ga('create', 'UA-123456-7', 'auto', {"siteSpeedSampleRate": 100});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"siteSpeedSampleRate": 100});""" in r @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=-1) def test_exception_whenset_site_speed_sample_rate_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) @override_settings(GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE=101) def test_exception_when_set_site_speed_sample_rate_too_large(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) @override_settings(GOOGLE_ANALYTICS_COOKIE_EXPIRATION=0) def test_set_cookie_expiration_min(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue("""ga('create', 'UA-123456-7', 'auto', {"cookieExpires": 0});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"cookieExpires": 0});""" in r @override_settings(GOOGLE_ANALYTICS_COOKIE_EXPIRATION='10000') def test_set_cookie_expiration_as_string(self): r = GoogleAnalyticsJsNode().render(Context()) - self.assertTrue( - """ga('create', 'UA-123456-7', 'auto', {"cookieExpires": 10000});""" in r, r) + assert """ga('create', 'UA-123456-7', 'auto', {"cookieExpires": 10000});""" in r @override_settings(GOOGLE_ANALYTICS_COOKIE_EXPIRATION=-1) def test_exception_when_set_cookie_expiration_too_small(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) @override_settings(GOOGLE_ANALYTICS_JS_PROPERTY_ID='UA-123456-7', @@ -166,4 +171,5 @@ ga('send', 'pageview');""" in r, r) class NoDomainTestCase(TestCase): def test_exception_without_domain(self): context = Context() - self.assertRaises(AnalyticalException, GoogleAnalyticsJsNode().render, context) + with pytest.raises(AnalyticalException): + GoogleAnalyticsJsNode().render(context) diff --git a/tests/unit/test_tag_gosquared.py b/tests/unit/test_tag_gosquared.py index 444420f..0fa008d 100644 --- a/tests/unit/test_tag_gosquared.py +++ b/tests/unit/test_tag_gosquared.py @@ -11,6 +11,8 @@ from analytical.templatetags.gosquared import GoSquaredNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(GOSQUARED_SITE_TOKEN='ABC-123456-D') class GoSquaredTagTestCase(TagTestCase): @@ -20,26 +22,28 @@ class GoSquaredTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('gosquared', 'gosquared') - self.assertTrue('GoSquared.acct = "ABC-123456-D";' in r, r) + assert 'GoSquared.acct = "ABC-123456-D";' in r def test_node(self): r = GoSquaredNode().render(Context({})) - self.assertTrue('GoSquared.acct = "ABC-123456-D";' in r, r) + assert 'GoSquared.acct = "ABC-123456-D";' in r @override_settings(GOSQUARED_SITE_TOKEN=None) def test_no_token(self): - self.assertRaises(AnalyticalException, GoSquaredNode) + with pytest.raises(AnalyticalException): + GoSquaredNode() @override_settings(GOSQUARED_SITE_TOKEN='this is not a token') def test_wrong_token(self): - self.assertRaises(AnalyticalException, GoSquaredNode) + with pytest.raises(AnalyticalException): + GoSquaredNode() @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_auto_identify(self): r = GoSquaredNode().render(Context({ 'user': User(username='test', first_name='Test', last_name='User'), })) - self.assertTrue('GoSquared.UserName = "Test User";' in r, r) + assert 'GoSquared.UserName = "Test User";' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_manual_identify(self): @@ -47,12 +51,12 @@ class GoSquaredTagTestCase(TagTestCase): 'user': User(username='test', first_name='Test', last_name='User'), 'gosquared_identity': 'test_identity', })) - self.assertTrue('GoSquared.UserName = "test_identity";' in r, r) + assert 'GoSquared.UserName = "test_identity";' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = GoSquaredNode().render(Context({'user': AnonymousUser()})) - self.assertFalse('GoSquared.UserName = ' in r, r) + assert 'GoSquared.UserName = ' not in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -60,6 +64,5 @@ class GoSquaredTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = GoSquaredNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_hotjar.py b/tests/unit/test_tag_hotjar.py index d5978b8..3c0ff6b 100644 --- a/tests/unit/test_tag_hotjar.py +++ b/tests/unit/test_tag_hotjar.py @@ -10,6 +10,7 @@ from analytical.templatetags.hotjar import HotjarNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest expected_html = """\ -""" % {'user_id': user.pk}, rendered_tag) # noqa +""" % {'user_id': user.pk} # noqa @override_settings(INTERCOM_APP_ID=None) def test_no_account_number(self): - self.assertRaises(AnalyticalException, IntercomNode) + with pytest.raises(AnalyticalException): + IntercomNode() @override_settings(INTERCOM_APP_ID='123abQ') def test_wrong_account_number(self): - self.assertRaises(AnalyticalException, IntercomNode) + with pytest.raises(AnalyticalException): + IntercomNode() def test_identify_name_email_and_created_at(self): now = datetime.datetime(2014, 4, 9, 15, 15, 0) @@ -62,18 +66,17 @@ class IntercomTagTestCase(TagTestCase): r = IntercomNode().render(Context({ 'user': user, })) - self.assertTrue('window.intercomSettings = {' - '"app_id": "abc123xyz", "created_at": 1397074500, ' - '"email": "test@example.com", "name": "Firstname Lastname", ' - '"user_id": %(user_id)s' - '};' % {'user_id': user.pk} in r, msg=r) + assert ( + 'window.intercomSettings = {"app_id": "abc123xyz", "created_at": 1397074500, ' + f'"email": "test@example.com", "name": "Firstname Lastname", "user_id": {user.pk}}};' + ) in r def test_custom(self): r = IntercomNode().render(Context({ 'intercom_var1': 'val1', 'intercom_var2': 'val2' })) - self.assertTrue('var1": "val1", "var2": "val2"' in r) + assert 'var1": "val1", "var2": "val2"' in r def test_identify_name_and_email(self): r = IntercomNode().render(Context({ @@ -83,25 +86,25 @@ class IntercomTagTestCase(TagTestCase): last_name='Lastname', email="test@example.com"), })) - self.assertTrue('"email": "test@example.com", "name": "Firstname Lastname"' in r) + assert '"email": "test@example.com", "name": "Firstname Lastname"' in r def test_identify_username_no_email(self): r = IntercomNode().render(Context({'user': User(username='test')})) - self.assertTrue('"name": "test"' in r, r) + assert '"name": "test"' in r, r def test_no_identify_when_explicit_name(self): r = IntercomNode().render(Context({ 'intercom_name': 'explicit', 'user': User(username='implicit'), })) - self.assertTrue('"name": "explicit"' in r, r) + assert '"name": "explicit"' in r, r def test_no_identify_when_explicit_email(self): r = IntercomNode().render(Context({ 'intercom_email': 'explicit', 'user': User(username='implicit'), })) - self.assertTrue('"email": "explicit"' in r, r) + assert '"email": "explicit"' in r, r @override_settings(INTERCOM_HMAC_SECRET_KEY='secret') def test_user_hash__without_user_details(self): @@ -109,9 +112,7 @@ class IntercomTagTestCase(TagTestCase): No `user_hash` without `user_id` or `email`. """ attrs = IntercomNode()._get_custom_attrs(Context()) - self.assertEqual({ - 'created_at': None, - }, attrs) + assert {'created_at': None} == attrs @override_settings(INTERCOM_HMAC_SECRET_KEY='secret') def test_user_hash__with_user(self): @@ -122,13 +123,13 @@ class IntercomTagTestCase(TagTestCase): email='test@example.com', ) # type: User attrs = IntercomNode()._get_custom_attrs(Context({'user': user})) - self.assertEqual({ + assert attrs == { 'created_at': int(user.date_joined.timestamp()), 'email': 'test@example.com', 'name': '', 'user_hash': intercom_user_hash(str(user.pk)), 'user_id': user.pk, - }, attrs) + } @override_settings(INTERCOM_HMAC_SECRET_KEY='secret') def test_user_hash__with_explicit_user_id(self): @@ -139,13 +140,13 @@ class IntercomTagTestCase(TagTestCase): 'intercom_email': 'test@example.com', 'intercom_user_id': '5', })) - self.assertEqual({ + assert attrs == { 'created_at': None, 'email': 'test@example.com', # HMAC for user_id: 'user_hash': 'd3123a7052b42272d9b520235008c248a5aff3221cc0c530b754702ad91ab102', 'user_id': '5', - }, attrs) + } @override_settings(INTERCOM_HMAC_SECRET_KEY='secret') def test_user_hash__with_explicit_email(self): @@ -155,12 +156,12 @@ class IntercomTagTestCase(TagTestCase): attrs = IntercomNode()._get_custom_attrs(Context({ 'intercom_email': 'test@example.com', })) - self.assertEqual({ + assert attrs == { 'created_at': None, 'email': 'test@example.com', # HMAC for email: 'user_hash': '49e43229ee99dca2565241719b8341b04e71dd4de0628f991b5bea30a526e153', - }, attrs) + } @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -168,5 +169,5 @@ class IntercomTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = IntercomNode().render(context) - self.assertTrue(r.startswith(''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_kiss_insights.py b/tests/unit/test_tag_kiss_insights.py index dc627d1..a2e6d18 100644 --- a/tests/unit/test_tag_kiss_insights.py +++ b/tests/unit/test_tag_kiss_insights.py @@ -10,6 +10,8 @@ from analytical.templatetags.kiss_insights import KissInsightsNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER='12345', KISS_INSIGHTS_SITE_CODE='abc') class KissInsightsTagTestCase(TagTestCase): @@ -19,38 +21,42 @@ class KissInsightsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('kiss_insights', 'kiss_insights') - self.assertTrue("//s3.amazonaws.com/ki.js/12345/abc.js" in r, r) + assert "//s3.amazonaws.com/ki.js/12345/abc.js" in r def test_node(self): r = KissInsightsNode().render(Context()) - self.assertTrue("//s3.amazonaws.com/ki.js/12345/abc.js" in r, r) + assert "//s3.amazonaws.com/ki.js/12345/abc.js" in r @override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER=None) def test_no_account_number(self): - self.assertRaises(AnalyticalException, KissInsightsNode) + with pytest.raises(AnalyticalException): + KissInsightsNode() @override_settings(KISS_INSIGHTS_SITE_CODE=None) def test_no_site_code(self): - self.assertRaises(AnalyticalException, KissInsightsNode) + with pytest.raises(AnalyticalException): + KissInsightsNode() @override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER='abcde') def test_wrong_account_number(self): - self.assertRaises(AnalyticalException, KissInsightsNode) + with pytest.raises(AnalyticalException): + KissInsightsNode() @override_settings(KISS_INSIGHTS_SITE_CODE='abc def') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, KissInsightsNode) + with pytest.raises(AnalyticalException): + KissInsightsNode() @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = KissInsightsNode().render(Context({'user': User(username='test')})) - self.assertTrue("_kiq.push(['identify', 'test']);" in r, r) + assert "_kiq.push(['identify', 'test']);" in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = KissInsightsNode().render(Context({'user': AnonymousUser()})) - self.assertFalse("_kiq.push(['identify', " in r, r) + assert "_kiq.push(['identify', " not in r def test_show_survey(self): r = KissInsightsNode().render(Context({'kiss_insights_show_survey': 1234})) - self.assertTrue("_kiq.push(['showSurvey', 1234]);" in r, r) + assert "_kiq.push(['showSurvey', 1234]);" in r diff --git a/tests/unit/test_tag_kiss_metrics.py b/tests/unit/test_tag_kiss_metrics.py index d3e885f..bb30b29 100644 --- a/tests/unit/test_tag_kiss_metrics.py +++ b/tests/unit/test_tag_kiss_metrics.py @@ -11,6 +11,8 @@ from analytical.templatetags.kiss_metrics import KissMetricsNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef01234567') class KissMetricsTagTestCase(TagTestCase): @@ -20,55 +22,55 @@ class KissMetricsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('kiss_metrics', 'kiss_metrics') - self.assertTrue("//doug1izaerwt3.cloudfront.net/" - "0123456789abcdef0123456789abcdef01234567.1.js" in r, r) + assert "//doug1izaerwt3.cloudfront.net/0123456789abcdef0123456789abcdef01234567.1.js" in r def test_node(self): r = KissMetricsNode().render(Context()) - self.assertTrue("//doug1izaerwt3.cloudfront.net/" - "0123456789abcdef0123456789abcdef01234567.1.js" in r, r) + assert "//doug1izaerwt3.cloudfront.net/0123456789abcdef0123456789abcdef01234567.1.js" in r @override_settings(KISS_METRICS_API_KEY=None) def test_no_api_key(self): - self.assertRaises(AnalyticalException, KissMetricsNode) + with pytest.raises(AnalyticalException): + KissMetricsNode() @override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef0123456') def test_api_key_too_short(self): - self.assertRaises(AnalyticalException, KissMetricsNode) + with pytest.raises(AnalyticalException): + KissMetricsNode() @override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef012345678') def test_api_key_too_long(self): - self.assertRaises(AnalyticalException, KissMetricsNode) + with pytest.raises(AnalyticalException): + KissMetricsNode() @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = KissMetricsNode().render(Context({'user': User(username='test')})) - self.assertTrue("_kmq.push(['identify', 'test']);" in r, r) + assert "_kmq.push(['identify', 'test']);" in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = KissMetricsNode().render(Context({'user': AnonymousUser()})) - self.assertFalse("_kmq.push(['identify', " in r, r) + assert "_kmq.push(['identify', " not in r def test_event(self): r = KissMetricsNode().render(Context({ 'kiss_metrics_event': ('test_event', {'prop1': 'val1', 'prop2': 'val2'}), })) - self.assertTrue("_kmq.push(['record', 'test_event', " - '{"prop1": "val1", "prop2": "val2"}]);' in r, r) + assert "_kmq.push(['record', 'test_event', " + '{"prop1": "val1", "prop2": "val2"}]);' in r def test_property(self): r = KissMetricsNode().render(Context({ 'kiss_metrics_properties': {'prop1': 'val1', 'prop2': 'val2'}, })) - self.assertTrue("_kmq.push([\'set\', " - '{"prop1": "val1", "prop2": "val2"}]);' in r, r) + assert '_kmq.push([\'set\', {"prop1": "val1", "prop2": "val2"}]);' in r def test_alias(self): r = KissMetricsNode().render(Context({ 'kiss_metrics_alias': {'test': 'test_alias'}, })) - self.assertTrue("_kmq.push(['alias', 'test', 'test_alias']);" in r, r) + assert "_kmq.push(['alias', 'test', 'test_alias']);" in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -76,6 +78,5 @@ class KissMetricsTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = KissMetricsNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_luckyorange.py b/tests/unit/test_tag_luckyorange.py index a4e082b..26538fd 100644 --- a/tests/unit/test_tag_luckyorange.py +++ b/tests/unit/test_tag_luckyorange.py @@ -10,6 +10,7 @@ from analytical.templatetags.luckyorange import LuckyOrangeNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest expected_html = """\ ', - self.render_tag('optimizely', 'optimizely')) + expected = '' + assert self.render_tag('optimizely', 'optimizely') == expected def test_node(self): - self.assertEqual( - '', - OptimizelyNode().render(Context())) + expected = '' + assert OptimizelyNode().render(Context()) == expected @override_settings(OPTIMIZELY_ACCOUNT_NUMBER=None) def test_no_account_number(self): - self.assertRaises(AnalyticalException, OptimizelyNode) + with pytest.raises(AnalyticalException): + OptimizelyNode() @override_settings(OPTIMIZELY_ACCOUNT_NUMBER='123abc') def test_wrong_account_number(self): - self.assertRaises(AnalyticalException, OptimizelyNode) + with pytest.raises(AnalyticalException): + OptimizelyNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -41,6 +43,5 @@ class OptimizelyTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = OptimizelyNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_performable.py b/tests/unit/test_tag_performable.py index 24e20c8..c1e83db 100644 --- a/tests/unit/test_tag_performable.py +++ b/tests/unit/test_tag_performable.py @@ -11,6 +11,8 @@ from analytical.templatetags.performable import PerformableNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(PERFORMABLE_API_KEY='123ABC') class PerformableTagTestCase(TagTestCase): @@ -20,19 +22,21 @@ class PerformableTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('performable', 'performable') - self.assertTrue('/performable/pax/123ABC.js' in r, r) + assert '/performable/pax/123ABC.js' in r def test_node(self): r = PerformableNode().render(Context()) - self.assertTrue('/performable/pax/123ABC.js' in r, r) + assert '/performable/pax/123ABC.js' in r @override_settings(PERFORMABLE_API_KEY=None) def test_no_api_key(self): - self.assertRaises(AnalyticalException, PerformableNode) + with pytest.raises(AnalyticalException): + PerformableNode() @override_settings(PERFORMABLE_API_KEY='123 ABC') def test_wrong_account_number(self): - self.assertRaises(AnalyticalException, PerformableNode) + with pytest.raises(AnalyticalException): + PerformableNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -40,19 +44,18 @@ class PerformableTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = PerformableNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = PerformableNode().render(Context({'user': User(username='test')})) - self.assertTrue('_paq.push(["identify", {identity: "test"}]);' in r, r) + assert '_paq.push(["identify", {identity: "test"}]);' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = PerformableNode().render(Context({'user': AnonymousUser()})) - self.assertFalse('_paq.push(["identify", ' in r, r) + assert '_paq.push(["identify", ' not in r class PerformableEmbedTagTestCase(TagTestCase): @@ -63,9 +66,5 @@ class PerformableEmbedTagTestCase(TagTestCase): def test_tag(self): domain = 'example.com' page = 'test' - tag = self.render_tag( - 'performable', 'performable_embed "%s" "%s"' % (domain, page) - ) - self.assertIn( - "$f.initialize({'host': 'example.com', 'page': 'test'});", tag - ) + tag = self.render_tag('performable', f'performable_embed "{domain}" "{page}"') + assert "$f.initialize({'host': 'example.com', 'page': 'test'});" in tag diff --git a/tests/unit/test_tag_piwik.py b/tests/unit/test_tag_piwik.py index 38aa317..2306da2 100644 --- a/tests/unit/test_tag_piwik.py +++ b/tests/unit/test_tag_piwik.py @@ -11,6 +11,8 @@ from analytical.templatetags.piwik import PiwikNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(PIWIK_DOMAIN_PATH='example.com', PIWIK_SITE_ID='345') class PiwikTagTestCase(TagTestCase): @@ -20,71 +22,78 @@ class PiwikTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('piwik', 'piwik') - self.assertTrue('"//example.com/"' in r, r) - self.assertTrue("_paq.push(['setSiteId', 345]);" in r, r) - self.assertTrue('img src="//example.com/piwik.php?idsite=345"' - in r, r) + assert '"//example.com/"' in r + assert "_paq.push(['setSiteId', 345]);" in r + assert 'img src="//example.com/piwik.php?idsite=345"' in r def test_node(self): r = PiwikNode().render(Context({})) - self.assertTrue('"//example.com/";' in r, r) - self.assertTrue("_paq.push(['setSiteId', 345]);" in r, r) - self.assertTrue('img src="//example.com/piwik.php?idsite=345"' - in r, r) + assert '"//example.com/";' in r + assert "_paq.push(['setSiteId', 345]);" in r + assert 'img src="//example.com/piwik.php?idsite=345"' in r @override_settings(PIWIK_DOMAIN_PATH='example.com/piwik', PIWIK_SITE_ID='345') def test_domain_path_valid(self): r = self.render_tag('piwik', 'piwik') - self.assertTrue('"//example.com/piwik/"' in r, r) + assert '"//example.com/piwik/"' in r @override_settings(PIWIK_DOMAIN_PATH='example.com:1234', PIWIK_SITE_ID='345') def test_domain_port_valid(self): r = self.render_tag('piwik', 'piwik') - self.assertTrue('"//example.com:1234/";' in r, r) + assert '"//example.com:1234/";' in r @override_settings(PIWIK_DOMAIN_PATH='example.com:1234/piwik', PIWIK_SITE_ID='345') def test_domain_port_path_valid(self): r = self.render_tag('piwik', 'piwik') - self.assertTrue('"//example.com:1234/piwik/"' in r, r) + assert '"//example.com:1234/piwik/"' in r @override_settings(PIWIK_DOMAIN_PATH=None) def test_no_domain(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_SITE_ID=None) def test_no_siteid(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_SITE_ID='x') def test_siteid_not_a_number(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='http://www.example.com') def test_domain_protocol_invalid(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='example.com/') def test_domain_slash_invalid(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='example.com:123:456') def test_domain_multi_port(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='example.com:') def test_domain_incomplete_port(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='example.com:/piwik') def test_domain_uri_incomplete_port(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(PIWIK_DOMAIN_PATH='example.com:12df') def test_domain_port_invalid(self): - self.assertRaises(AnalyticalException, PiwikNode) + with pytest.raises(AnalyticalException): + PiwikNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -92,20 +101,18 @@ class PiwikTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = PiwikNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') def test_uservars(self): context = Context({'piwik_vars': [(1, 'foo', 'foo_val'), (2, 'bar', 'bar_val', 'page'), (3, 'spam', 'spam_val', 'visit')]}) r = PiwikNode().render(context) - msg = 'Incorrect Piwik custom variable rendering. Expected:\n%s\nIn:\n%s' for var_code in ['_paq.push(["setCustomVariable", 1, "foo", "foo_val", "page"]);', '_paq.push(["setCustomVariable", 2, "bar", "bar_val", "page"]);', '_paq.push(["setCustomVariable", 3, "spam", "spam_val", "visit"]);']: - self.assertIn(var_code, r, msg % (var_code, r)) + assert var_code in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_default_usertrack(self): @@ -113,27 +120,24 @@ class PiwikTagTestCase(TagTestCase): 'user': User(username='BDFL', first_name='Guido', last_name='van Rossum') }) r = PiwikNode().render(context) - msg = 'Incorrect Piwik user tracking rendering.\nNot found:\n%s\nIn:\n%s' var_code = '_paq.push(["setUserId", "BDFL"]);' - self.assertIn(var_code, r, msg % (var_code, r)) + assert var_code in r def test_piwik_usertrack(self): context = Context({ 'piwik_identity': 'BDFL' }) r = PiwikNode().render(context) - msg = 'Incorrect Piwik user tracking rendering.\nNot found:\n%s\nIn:\n%s' var_code = '_paq.push(["setUserId", "BDFL"]);' - self.assertIn(var_code, r, msg % (var_code, r)) + assert var_code in r def test_analytical_usertrack(self): context = Context({ 'analytical_identity': 'BDFL' }) r = PiwikNode().render(context) - msg = 'Incorrect Piwik user tracking rendering.\nNot found:\n%s\nIn:\n%s' var_code = '_paq.push(["setUserId", "BDFL"]);' - self.assertIn(var_code, r, msg % (var_code, r)) + assert var_code in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_disable_usertrack(self): @@ -142,11 +146,10 @@ class PiwikTagTestCase(TagTestCase): 'piwik_identity': None }) r = PiwikNode().render(context) - msg = 'Incorrect Piwik user tracking rendering.\nFound:\n%s\nIn:\n%s' var_code = '_paq.push(["setUserId", "BDFL"]);' - self.assertNotIn(var_code, r, msg % (var_code, r)) + assert var_code not in r @override_settings(PIWIK_DISABLE_COOKIES=True) def test_disable_cookies(self): r = PiwikNode().render(Context({})) - self.assertTrue("_paq.push(['disableCookies']);" in r, r) + assert "_paq.push(['disableCookies']);" in r diff --git a/tests/unit/test_tag_rating_mailru.py b/tests/unit/test_tag_rating_mailru.py index d8f9459..5f7cf8b 100644 --- a/tests/unit/test_tag_rating_mailru.py +++ b/tests/unit/test_tag_rating_mailru.py @@ -10,6 +10,8 @@ from analytical.templatetags.rating_mailru import RatingMailruNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(RATING_MAILRU_COUNTER_ID='1234567') class RatingMailruTagTestCase(TagTestCase): @@ -19,19 +21,21 @@ class RatingMailruTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('rating_mailru', 'rating_mailru') - self.assertTrue("counter?id=1234567;js=na" in r, r) + assert "counter?id=1234567;js=na" in r def test_node(self): r = RatingMailruNode().render(Context({})) - self.assertTrue("counter?id=1234567;js=na" in r, r) + assert "counter?id=1234567;js=na" in r @override_settings(RATING_MAILRU_COUNTER_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, RatingMailruNode) + with pytest.raises(AnalyticalException): + RatingMailruNode() @override_settings(RATING_MAILRU_COUNTER_ID='1234abc') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, RatingMailruNode) + with pytest.raises(AnalyticalException): + RatingMailruNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -39,6 +43,5 @@ class RatingMailruTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = RatingMailruNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_snapengage.py b/tests/unit/test_tag_snapengage.py index 215ebe2..a85d812 100644 --- a/tests/unit/test_tag_snapengage.py +++ b/tests/unit/test_tag_snapengage.py @@ -14,6 +14,7 @@ from analytical.templatetags.snapengage import SnapEngageNode, \ from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest WIDGET_ID = 'ec329c69-0bf0-4db8-9b77-3f8150fb977e' @@ -31,246 +32,216 @@ class SnapEngageTestCase(TagTestCase): def test_tag(self): r = self.render_tag('snapengage', 'snapengage') - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%");' in r def test_node(self): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%");' in r @override_settings(SNAPENGAGE_WIDGET_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, SnapEngageNode) + with pytest.raises(AnalyticalException): + SnapEngageNode() @override_settings(SNAPENGAGE_WIDGET_ID='abc') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, SnapEngageNode) + with pytest.raises(AnalyticalException): + SnapEngageNode() def test_no_button(self): r = SnapEngageNode().render(Context({ 'snapengage_button': BUTTON_STYLE_NONE, })) - self.assertTrue('SnapABug.init("ec329c69-0bf0-4db8-9b77-3f8150fb977e")' in r, r) + assert 'SnapABug.init("ec329c69-0bf0-4db8-9b77-3f8150fb977e")' in r with override_settings(SNAPENGAGE_BUTTON=BUTTON_STYLE_NONE): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.init("ec329c69-0bf0-4db8-9b77-3f8150fb977e")' in r, r) + assert 'SnapABug.init("ec329c69-0bf0-4db8-9b77-3f8150fb977e")' in r def test_live_button(self): r = SnapEngageNode().render(Context({ 'snapengage_button': BUTTON_STYLE_LIVE, })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%",true);' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%",true);' in r with override_settings(SNAPENGAGE_BUTTON=BUTTON_STYLE_LIVE): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%",true);' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%",true);' in r def test_custom_button(self): r = SnapEngageNode().render(Context({ 'snapengage_button': "http://www.example.com/button.png", })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%");' in r, r) - self.assertTrue( - 'SnapABug.setButton("http://www.example.com/button.png");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%");' in r + assert 'SnapABug.setButton("http://www.example.com/button.png");' in r with override_settings( SNAPENGAGE_BUTTON="http://www.example.com/button.png"): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"55%");' in r, r) - self.assertTrue( - 'SnapABug.setButton("http://www.example.com/button.png");' in r, - r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","55%");' in r + assert 'SnapABug.setButton("http://www.example.com/button.png");' in r def test_button_location_right(self): r = SnapEngageNode().render(Context({ 'snapengage_button_location': BUTTON_LOCATION_RIGHT, })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","1",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","1","55%");' in r with override_settings(SNAPENGAGE_BUTTON_LOCATION=BUTTON_LOCATION_RIGHT): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","1",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","1","55%");' in r def test_button_location_top(self): r = SnapEngageNode().render(Context({ 'snapengage_button_location': BUTTON_LOCATION_TOP, })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","2",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","2","55%");' in r with override_settings(SNAPENGAGE_BUTTON_LOCATION=BUTTON_LOCATION_TOP): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","2",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","2","55%");' in r def test_button_location_bottom(self): r = SnapEngageNode().render(Context({ 'snapengage_button_location': BUTTON_LOCATION_BOTTOM, })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","3",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","3","55%");' in r with override_settings( SNAPENGAGE_BUTTON_LOCATION=BUTTON_LOCATION_BOTTOM): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","3",' - '"55%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","3","55%");' in r def test_button_offset(self): r = SnapEngageNode().render(Context({ 'snapengage_button_location_offset': "30%", })) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"30%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","30%");' in r with override_settings(SNAPENGAGE_BUTTON_LOCATION_OFFSET="30%"): r = SnapEngageNode().render(Context()) - self.assertTrue( - 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0",' - '"30%");' in r, r) + assert 'SnapABug.addButton("ec329c69-0bf0-4db8-9b77-3f8150fb977e","0","30%");' in r def test_button_effect(self): r = SnapEngageNode().render(Context({ 'snapengage_button_effect': "-4px", })) - self.assertTrue('SnapABug.setButtonEffect("-4px");' in r, r) + assert 'SnapABug.setButtonEffect("-4px");' in r with override_settings(SNAPENGAGE_BUTTON_EFFECT="-4px"): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setButtonEffect("-4px");' in r, r) + assert 'SnapABug.setButtonEffect("-4px");' in r def test_form_position(self): r = SnapEngageNode().render(Context({ 'snapengage_form_position': FORM_POSITION_TOP_LEFT, })) - self.assertTrue('SnapABug.setChatFormPosition("tl");' in r, r) + assert 'SnapABug.setChatFormPosition("tl");' in r with override_settings(SNAPENGAGE_FORM_POSITION=FORM_POSITION_TOP_LEFT): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setChatFormPosition("tl");' in r, r) + assert 'SnapABug.setChatFormPosition("tl");' in r def test_form_top_position(self): r = SnapEngageNode().render(Context({ 'snapengage_form_top_position': 40, })) - self.assertTrue('SnapABug.setFormTopPosition(40);' in r, r) + assert 'SnapABug.setFormTopPosition(40);' in r with override_settings(SNAPENGAGE_FORM_TOP_POSITION=40): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setFormTopPosition(40);' in r, r) + assert 'SnapABug.setFormTopPosition(40);' in r def test_domain(self): r = SnapEngageNode().render(Context({ 'snapengage_domain': "example.com"})) - self.assertTrue('SnapABug.setDomain("example.com");' in r, r) + assert 'SnapABug.setDomain("example.com");' in r with override_settings(SNAPENGAGE_DOMAIN="example.com"): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setDomain("example.com");' in r, r) + assert 'SnapABug.setDomain("example.com");' in r def test_secure_connection(self): r = SnapEngageNode().render(Context({ 'snapengage_secure_connection': True})) - self.assertTrue('SnapABug.setSecureConnexion();' in r, r) + assert 'SnapABug.setSecureConnexion();' in r with override_settings(SNAPENGAGE_SECURE_CONNECTION=True): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setSecureConnexion();' in r, r) + assert 'SnapABug.setSecureConnexion();' in r def test_show_offline(self): r = SnapEngageNode().render(Context({ 'snapengage_show_offline': False, })) - self.assertTrue('SnapABug.allowOffline(false);' in r, r) + assert 'SnapABug.allowOffline(false);' in r with override_settings(SNAPENGAGE_SHOW_OFFLINE=False): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.allowOffline(false);' in r, r) + assert 'SnapABug.allowOffline(false);' in r def test_proactive_chat(self): r = SnapEngageNode().render(Context({ 'snapengage_proactive_chat': False})) - self.assertTrue('SnapABug.allowProactiveChat(false);' in r, r) + assert 'SnapABug.allowProactiveChat(false);' in r def test_screenshot(self): r = SnapEngageNode().render(Context({ 'snapengage_screenshots': False, })) - self.assertTrue('SnapABug.allowScreenshot(false);' in r, r) + assert 'SnapABug.allowScreenshot(false);' in r with override_settings(SNAPENGAGE_SCREENSHOTS=False): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.allowScreenshot(false);' in r, r) + assert 'SnapABug.allowScreenshot(false);' in r def test_offline_screenshots(self): r = SnapEngageNode().render(Context({ 'snapengage_offline_screenshots': False, })) - self.assertTrue('SnapABug.showScreenshotOption(false);' in r, r) + assert 'SnapABug.showScreenshotOption(false);' in r with override_settings(SNAPENGAGE_OFFLINE_SCREENSHOTS=False): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.showScreenshotOption(false);' in r, r) + assert 'SnapABug.showScreenshotOption(false);' in r def test_sounds(self): r = SnapEngageNode().render(Context({'snapengage_sounds': False})) - self.assertTrue('SnapABug.allowChatSound(false);' in r, r) + assert 'SnapABug.allowChatSound(false);' in r with override_settings(SNAPENGAGE_SOUNDS=False): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.allowChatSound(false);' in r, r) + assert 'SnapABug.allowChatSound(false);' in r @override_settings(SNAPENGAGE_READONLY_EMAIL=False) def test_email(self): r = SnapEngageNode().render(Context({ 'snapengage_email': 'test@example.com', })) - self.assertTrue('SnapABug.setUserEmail("test@example.com");' in r, r) + assert 'SnapABug.setUserEmail("test@example.com");' in r def test_email_readonly(self): r = SnapEngageNode().render(Context({ 'snapengage_email': 'test@example.com', 'snapengage_readonly_email': True, })) - self.assertTrue('SnapABug.setUserEmail("test@example.com",true);' in r, r) + assert 'SnapABug.setUserEmail("test@example.com",true);' in r with override_settings(SNAPENGAGE_READONLY_EMAIL=True): r = SnapEngageNode().render(Context({ 'snapengage_email': 'test@example.com', })) - self.assertTrue('SnapABug.setUserEmail("test@example.com",true);' in r, r) + assert 'SnapABug.setUserEmail("test@example.com",true);' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = SnapEngageNode().render(Context({ 'user': User(username='test', email='test@example.com'), })) - self.assertTrue('SnapABug.setUserEmail("test@example.com");' in r, r) + assert 'SnapABug.setUserEmail("test@example.com");' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = SnapEngageNode().render(Context({ 'user': AnonymousUser(), })) - self.assertFalse('SnapABug.setUserEmail(' in r, r) + assert 'SnapABug.setUserEmail(' not in r def test_language(self): r = SnapEngageNode().render(Context({'snapengage_locale': 'fr'})) - self.assertTrue('SnapABug.setLocale("fr");' in r, r) + assert 'SnapABug.setLocale("fr");' in r with override_settings(SNAPENGAGE_LOCALE='fr'): r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setLocale("fr");' in r, r) + assert 'SnapABug.setLocale("fr");' in r def test_automatic_language(self): real_get_language = translation.get_language try: translation.get_language = lambda: 'fr-ca' r = SnapEngageNode().render(Context()) - self.assertTrue('SnapABug.setLocale("fr_CA");' in r, r) + assert 'SnapABug.setLocale("fr_CA");' in r finally: translation.get_language = real_get_language diff --git a/tests/unit/test_tag_spring_metrics.py b/tests/unit/test_tag_spring_metrics.py index ca00e71..6eee86d 100644 --- a/tests/unit/test_tag_spring_metrics.py +++ b/tests/unit/test_tag_spring_metrics.py @@ -11,6 +11,8 @@ from analytical.templatetags.spring_metrics import SpringMetricsNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(SPRING_METRICS_TRACKING_ID='12345678') class SpringMetricsTagTestCase(TagTestCase): @@ -20,39 +22,41 @@ class SpringMetricsTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('spring_metrics', 'spring_metrics') - self.assertTrue("_springMetq.push(['id', '12345678']);" in r, r) + assert "_springMetq.push(['id', '12345678']);" in r def test_node(self): r = SpringMetricsNode().render(Context({})) - self.assertTrue("_springMetq.push(['id', '12345678']);" in r, r) + assert "_springMetq.push(['id', '12345678']);" in r @override_settings(SPRING_METRICS_TRACKING_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, SpringMetricsNode) + with pytest.raises(AnalyticalException): + SpringMetricsNode() @override_settings(SPRING_METRICS_TRACKING_ID='123xyz') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, SpringMetricsNode) + with pytest.raises(AnalyticalException): + SpringMetricsNode() @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify(self): r = SpringMetricsNode().render(Context({ 'user': User(email='test@test.com'), })) - self.assertTrue("_springMetq.push(['setdata', {'email': 'test@test.com'}]);" in r, r) + assert "_springMetq.push(['setdata', {'email': 'test@test.com'}]);" in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = SpringMetricsNode().render(Context({'user': AnonymousUser()})) - self.assertFalse("_springMetq.push(['setdata', {'email':" in r, r) + assert "_springMetq.push(['setdata', {'email':" not in r def test_custom(self): r = SpringMetricsNode().render(Context({ 'spring_metrics_var1': 'val1', 'spring_metrics_var2': 'val2', })) - self.assertTrue("_springMetq.push(['setdata', {'var1': 'val1'}]);" in r, r) - self.assertTrue("_springMetq.push(['setdata', {'var2': 'val2'}]);" in r, r) + assert "_springMetq.push(['setdata', {'var1': 'val1'}]);" in r + assert "_springMetq.push(['setdata', {'var2': 'val2'}]);" in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -60,6 +64,5 @@ class SpringMetricsTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = SpringMetricsNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_uservoice.py b/tests/unit/test_tag_uservoice.py index c740311..fcacbf9 100644 --- a/tests/unit/test_tag_uservoice.py +++ b/tests/unit/test_tag_uservoice.py @@ -4,6 +4,7 @@ Tests for the UserVoice tags and filters. from django.template import Context from django.test.utils import override_settings +import pytest from analytical.templatetags.uservoice import UserVoiceNode from utils import TagTestCase @@ -16,58 +17,55 @@ class UserVoiceTagTestCase(TagTestCase): Tests for the ``uservoice`` template tag. """ - def assertIn(self, element, container): - try: - super(TagTestCase, self).assertIn(element, container) - except AttributeError: - self.assertTrue(element in container) - def test_node(self): r = UserVoiceNode().render(Context()) - self.assertIn("widget.uservoice.com/abcdefghijklmnopqrst.js", r) + assert "widget.uservoice.com/abcdefghijklmnopqrst.js" in r def test_tag(self): r = self.render_tag('uservoice', 'uservoice') - self.assertIn("widget.uservoice.com/abcdefghijklmnopqrst.js", r) + assert "widget.uservoice.com/abcdefghijklmnopqrst.js" in r @override_settings(USERVOICE_WIDGET_KEY=None) def test_no_key(self): - self.assertRaises(AnalyticalException, UserVoiceNode) + with pytest.raises(AnalyticalException): + UserVoiceNode() @override_settings(USERVOICE_WIDGET_KEY='abcdefgh ijklmnopqrst') def test_invalid_key(self): - self.assertRaises(AnalyticalException, UserVoiceNode) + with pytest.raises(AnalyticalException): + UserVoiceNode() @override_settings(USERVOICE_WIDGET_KEY='') def test_empty_key(self): - self.assertRaises(AnalyticalException, UserVoiceNode) + with pytest.raises(AnalyticalException): + UserVoiceNode() def test_overridden_key(self): vars = {'uservoice_widget_key': 'defghijklmnopqrstuvw'} r = UserVoiceNode().render(Context(vars)) - self.assertIn("widget.uservoice.com/defghijklmnopqrstuvw.js", r) + assert "widget.uservoice.com/defghijklmnopqrstuvw.js" in r @override_settings(USERVOICE_WIDGET_OPTIONS={'key1': 'val1'}) def test_options(self): r = UserVoiceNode().render(Context()) - self.assertIn("""UserVoice.push(['set', {"key1": "val1"}]);""", r) + assert """UserVoice.push(['set', {"key1": "val1"}]);""" in r @override_settings(USERVOICE_WIDGET_OPTIONS={'key1': 'val1'}) def test_override_options(self): data = {'uservoice_widget_options': {'key1': 'val2'}} r = UserVoiceNode().render(Context(data)) - self.assertIn("""UserVoice.push(['set', {"key1": "val2"}]);""", r) + assert """UserVoice.push(['set', {"key1": "val2"}]);""" in r def test_auto_trigger_default(self): r = UserVoiceNode().render(Context()) - self.assertTrue("UserVoice.push(['addTrigger', {}]);" in r, r) + assert "UserVoice.push(['addTrigger', {}]);" in r @override_settings(USERVOICE_ADD_TRIGGER=False) def test_auto_trigger(self): r = UserVoiceNode().render(Context()) - self.assertFalse("UserVoice.push(['addTrigger', {}]);" in r, r) + assert "UserVoice.push(['addTrigger', {}]);" not in r @override_settings(USERVOICE_ADD_TRIGGER=False) def test_auto_trigger_custom_win(self): r = UserVoiceNode().render(Context({'uservoice_add_trigger': True})) - self.assertTrue("UserVoice.push(['addTrigger', {}]);" in r, r) + assert "UserVoice.push(['addTrigger', {}]);" in r diff --git a/tests/unit/test_tag_woopra.py b/tests/unit/test_tag_woopra.py index 9dca7e9..0bfbf36 100644 --- a/tests/unit/test_tag_woopra.py +++ b/tests/unit/test_tag_woopra.py @@ -11,6 +11,8 @@ from analytical.templatetags.woopra import WoopraNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(WOOPRA_DOMAIN='example.com') class WoopraTagTestCase(TagTestCase): @@ -20,32 +22,33 @@ class WoopraTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('woopra', 'woopra') - self.assertTrue('var woo_settings = {"domain": "example.com"};' in r, r) + assert 'var woo_settings = {"domain": "example.com"};' in r def test_node(self): r = WoopraNode().render(Context({})) - self.assertTrue('var woo_settings = {"domain": "example.com"};' in r, r) + assert 'var woo_settings = {"domain": "example.com"};' in r @override_settings(WOOPRA_DOMAIN=None) def test_no_domain(self): - self.assertRaises(AnalyticalException, WoopraNode) + with pytest.raises(AnalyticalException): + WoopraNode() @override_settings(WOOPRA_DOMAIN='this is not a domain') def test_wrong_domain(self): - self.assertRaises(AnalyticalException, WoopraNode) + with pytest.raises(AnalyticalException): + WoopraNode() @override_settings(WOOPRA_IDLE_TIMEOUT=1234) def test_idle_timeout(self): r = WoopraNode().render(Context({})) - self.assertTrue('var woo_settings = ' - '{"domain": "example.com", "idle_timeout": "1234"};' in r, r) + assert 'var woo_settings = {"domain": "example.com", "idle_timeout": "1234"};' in r def test_custom(self): r = WoopraNode().render(Context({ 'woopra_var1': 'val1', 'woopra_var2': 'val2', })) - self.assertTrue('var woo_visitor = {"var1": "val1", "var2": "val2"};' in r, r) + assert 'var woo_visitor = {"var1": "val1", "var2": "val2"};' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_name_and_email(self): @@ -55,13 +58,13 @@ class WoopraTagTestCase(TagTestCase): last_name='Lastname', email="test@example.com"), })) - self.assertTrue('var woo_visitor = ' - '{"email": "test@example.com", "name": "Firstname Lastname"};' in r, r) + assert 'var woo_visitor = ' + '{"email": "test@example.com", "name": "Firstname Lastname"};' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_username_no_email(self): r = WoopraNode().render(Context({'user': User(username='test')})) - self.assertTrue('var woo_visitor = {"name": "test"};' in r, r) + assert 'var woo_visitor = {"name": "test"};' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_no_identify_when_explicit_name(self): @@ -69,7 +72,7 @@ class WoopraTagTestCase(TagTestCase): 'woopra_name': 'explicit', 'user': User(username='implicit'), })) - self.assertTrue('var woo_visitor = {"name": "explicit"};' in r, r) + assert 'var woo_visitor = {"name": "explicit"};' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_no_identify_when_explicit_email(self): @@ -77,12 +80,12 @@ class WoopraTagTestCase(TagTestCase): 'woopra_email': 'explicit', 'user': User(username='implicit'), })) - self.assertTrue('var woo_visitor = {"email": "explicit"};' in r, r) + assert 'var woo_visitor = {"email": "explicit"};' in r @override_settings(ANALYTICAL_AUTO_IDENTIFY=True) def test_identify_anonymous_user(self): r = WoopraNode().render(Context({'user': AnonymousUser()})) - self.assertTrue('var woo_visitor = {};' in r, r) + assert 'var woo_visitor = {};' in r @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -90,6 +93,5 @@ class WoopraTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = WoopraNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_tag_yandex_metrica.py b/tests/unit/test_tag_yandex_metrica.py index 3b0619e..d9956d8 100644 --- a/tests/unit/test_tag_yandex_metrica.py +++ b/tests/unit/test_tag_yandex_metrica.py @@ -11,6 +11,8 @@ from analytical.templatetags.yandex_metrica import YandexMetricaNode from utils import TagTestCase from analytical.utils import AnalyticalException +import pytest + @override_settings(YANDEX_METRICA_COUNTER_ID='12345678') class YandexMetricaTagTestCase(TagTestCase): @@ -20,19 +22,21 @@ class YandexMetricaTagTestCase(TagTestCase): def test_tag(self): r = self.render_tag('yandex_metrica', 'yandex_metrica') - self.assertTrue("w.yaCounter12345678 = new Ya.Metrika" in r, r) + assert "w.yaCounter12345678 = new Ya.Metrika" in r def test_node(self): r = YandexMetricaNode().render(Context({})) - self.assertTrue("w.yaCounter12345678 = new Ya.Metrika" in r, r) + assert "w.yaCounter12345678 = new Ya.Metrika" in r @override_settings(YANDEX_METRICA_COUNTER_ID=None) def test_no_site_id(self): - self.assertRaises(AnalyticalException, YandexMetricaNode) + with pytest.raises(AnalyticalException): + YandexMetricaNode() @override_settings(YANDEX_METRICA_COUNTER_ID='1234abcd') def test_wrong_site_id(self): - self.assertRaises(AnalyticalException, YandexMetricaNode) + with pytest.raises(AnalyticalException): + YandexMetricaNode() @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip(self): @@ -40,6 +44,5 @@ class YandexMetricaTagTestCase(TagTestCase): req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) r = YandexMetricaNode().render(context) - self.assertTrue(r.startswith( - ''), r) + assert r.startswith('') diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 22b2a88..4ba8d33 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -18,6 +18,8 @@ from analytical.utils import ( ) from utils import TestCase +import pytest + class SettingDeletedTestCase(TestCase): @@ -27,7 +29,7 @@ class SettingDeletedTestCase(TestCase): Make sure using get_required_setting fails in the right place. """ - with self.assertRaisesRegex(AnalyticalException, "^USER_ID setting is not set$"): + with pytest.raises(AnalyticalException, match="USER_ID setting is not set"): get_required_setting("USER_ID", r"\d+", "invalid USER_ID") @@ -43,27 +45,27 @@ class MyUser(AbstractBaseUser): class GetIdentityTestCase(TestCase): def test_custom_username_field(self): get_id = get_identity(Context({}), user=MyUser(identity='fake_id')) - self.assertEqual(get_id, 'fake_id') + assert get_id == 'fake_id' @override_settings(ANALYTICAL_DOMAIN="example.org") class GetDomainTestCase(TestCase): def test_get_service_domain_from_context(self): context = Context({'test_domain': 'example.com'}) - self.assertEqual(get_domain(context, 'test'), 'example.com') + assert get_domain(context, 'test') == 'example.com' def test_get_analytical_domain_from_context(self): context = Context({'analytical_domain': 'example.com'}) - self.assertEqual(get_domain(context, 'test'), 'example.com') + assert get_domain(context, 'test') == 'example.com' @override_settings(TEST_DOMAIN="example.net") def test_get_service_domain_from_settings(self): context = Context() - self.assertEqual(get_domain(context, 'test'), 'example.net') + assert get_domain(context, 'test') == 'example.net' def test_get_analytical_domain_from_settings(self): context = Context() - self.assertEqual(get_domain(context, 'test'), 'example.org') + assert get_domain(context, 'test') == 'example.org' # FIXME: enable Django apps dynamically and enable test again @@ -82,7 +84,7 @@ class InternalIpTestCase(TestCase): @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_no_internal_ip(self): context = Context() - self.assertFalse(is_internal_ip(context)) + assert not is_internal_ip(context) @override_settings(INTERNAL_IPS=['1.1.1.1']) @override_settings(ANALYTICAL_INTERNAL_IPS=[]) @@ -90,39 +92,39 @@ class InternalIpTestCase(TestCase): req = HttpRequest() req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) - self.assertFalse(is_internal_ip(context)) + assert not is_internal_ip(context) @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}) - self.assertTrue(is_internal_ip(context)) + assert is_internal_ip(context) @override_settings(TEST_INTERNAL_IPS=['1.1.1.1']) def test_render_prefix_internal_ip(self): req = HttpRequest() req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) - self.assertTrue(is_internal_ip(context, 'TEST')) + assert is_internal_ip(context, 'TEST') @override_settings(INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip_fallback(self): req = HttpRequest() req.META['REMOTE_ADDR'] = '1.1.1.1' context = Context({'request': req}) - self.assertTrue(is_internal_ip(context)) + assert is_internal_ip(context) @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_internal_ip_forwarded_for(self): req = HttpRequest() req.META['HTTP_X_FORWARDED_FOR'] = '1.1.1.1' context = Context({'request': req}) - self.assertTrue(is_internal_ip(context)) + assert is_internal_ip(context) @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1']) def test_render_different_internal_ip(self): req = HttpRequest() req.META['REMOTE_ADDR'] = '2.2.2.2' context = Context({'request': req}) - self.assertFalse(is_internal_ip(context)) + assert not is_internal_ip(context)