mirror of
https://github.com/jazzband/django-analytical.git
synced 2026-05-19 04:31:14 +00:00
Merge branch 'master' of github.com:jcassee/django-analytical
Remove settings manager from testcase
This commit is contained in:
commit
13d4051592
16 changed files with 148 additions and 152 deletions
|
|
@ -100,9 +100,14 @@ def contribute_to_analytical(add_node):
|
|||
|
||||
def _get_domain(context):
|
||||
domain = context.get(DOMAIN_CONTEXT_KEY)
|
||||
if domain is None and getattr(settings, 'CHARTBEAT_AUTO_DOMAIN', True):
|
||||
try:
|
||||
domain = Site.objects.get_current().domain
|
||||
except (ImproperlyConfigured, Site.DoesNotExist): #pylint: disable=E1101
|
||||
pass
|
||||
return domain
|
||||
|
||||
if domain is not None:
|
||||
return domain
|
||||
else:
|
||||
if 'django.contrib.sites' not in settings.INSTALLED_APPS:
|
||||
return
|
||||
elif getattr(settings, 'CHARTBEAT_AUTO_DOMAIN', True):
|
||||
try:
|
||||
return Site.objects.get_current().domain
|
||||
except (ImproperlyConfigured, Site.DoesNotExist): #pylint: disable=E1101
|
||||
return
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from django.conf import settings
|
|||
from django.contrib.sites.models import Site
|
||||
from django.http import HttpRequest
|
||||
from django.template import Context
|
||||
from django.test import TestCase
|
||||
|
||||
from analytical.templatetags.chartbeat import ChartbeatTopNode, \
|
||||
ChartbeatBottomNode
|
||||
|
|
@ -17,23 +18,41 @@ from analytical.utils import AnalyticalException
|
|||
|
||||
|
||||
@without_apps('django.contrib.sites')
|
||||
class ChartbeatTagTestCaseNoSites(TagTestCase):
|
||||
@override_settings(CHARTBEAT_USER_ID='12345')
|
||||
class ChartbeatTagTestCaseNoSites(TestCase):
|
||||
def test_rendering_setup_no_site(self):
|
||||
r = ChartbeatBottomNode().render(Context())
|
||||
self.assertTrue('var _sf_async_config={"uid": "12345"};' in r, r)
|
||||
|
||||
|
||||
@with_apps('django.contrib.sites')
|
||||
class ChartbeatTagTestCaseWithSites(TagTestCase):
|
||||
@override_settings(CHARTBEAT_USER_ID='12345')
|
||||
class ChartbeatTagTestCaseWithSites(TestCase):
|
||||
def setUp(self):
|
||||
from django.core.management import call_command
|
||||
from django.db.models import loading
|
||||
loading.cache.loaded = False
|
||||
call_command("syncdb", verbosity=0)
|
||||
|
||||
def test_rendering_setup_site(self):
|
||||
site = Site.objects.create(domain="test.com", name="test")
|
||||
with override_settings(SITE_ID=site.id, CHARTBEAT_USER_ID="12345"):
|
||||
with override_settings(SITE_ID=site.id):
|
||||
r = ChartbeatBottomNode().render(Context())
|
||||
self.assertTrue(re.search(
|
||||
'var _sf_async_config={.*"uid": "12345".*};', r), r)
|
||||
self.assertTrue(re.search(
|
||||
'var _sf_async_config={.*"domain": "test.com".*};', r), r)
|
||||
|
||||
@override_settings(CHARTBEAT_AUTO_DOMAIN=False)
|
||||
def test_auto_domain_false(self):
|
||||
"""
|
||||
Even if 'django.contrib.sites' is in INSTALLED_APPS, if
|
||||
CHARTBEAT_AUTO_DOMAIN is False, ensure there is no 'domain'
|
||||
in _sf_async_config.
|
||||
"""
|
||||
r = ChartbeatBottomNode().render(Context())
|
||||
self.assertTrue('var _sf_async_config={"uid": "12345"};' in r, r)
|
||||
|
||||
|
||||
@override_settings(CHARTBEAT_USER_ID='12345')
|
||||
class ChartbeatTagTestCase(TagTestCase):
|
||||
|
|
|
|||
|
|
@ -9,19 +9,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.clicky import ClickyNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(CLICKY_SITE_ID='12345678')
|
||||
class ClickyTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``clicky`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(ClickyTagTestCase, self).setUp()
|
||||
self.settings_manager.set(CLICKY_SITE_ID='12345678')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('clicky', 'clicky')
|
||||
self.assertTrue('clicky_site_ids.push(12345678);' in r, r)
|
||||
|
|
@ -34,16 +31,16 @@ class ClickyTagTestCase(TagTestCase):
|
|||
self.assertTrue('src="//in.getclicky.com/12345678ns.gif"' in r,
|
||||
r)
|
||||
|
||||
@override_settings(CLICKY_SITE_ID=SETTING_DELETED)
|
||||
def test_no_site_id(self):
|
||||
self.settings_manager.delete('CLICKY_SITE_ID')
|
||||
self.assertRaises(AnalyticalException, ClickyNode)
|
||||
|
||||
@override_settings(CLICKY_SITE_ID='123abc')
|
||||
def test_wrong_site_id(self):
|
||||
self.settings_manager.set(CLICKY_SITE_ID='123abc')
|
||||
self.assertRaises(AnalyticalException, ClickyNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = ClickyNode().render(Context({'user': User(username='test')}))
|
||||
self.assertTrue(
|
||||
'var clicky_custom = {"session": {"username": "test"}};' in r,
|
||||
|
|
@ -55,8 +52,8 @@ class ClickyTagTestCase(TagTestCase):
|
|||
self.assertTrue(re.search('var clicky_custom = {.*'
|
||||
'"var1": "val1", "var2": "val2".*};', r), r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,19 +6,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.crazy_egg import CrazyEggNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(CRAZY_EGG_ACCOUNT_NUMBER='12345678')
|
||||
class CrazyEggTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``crazy_egg`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(CrazyEggTagTestCase, self).setUp()
|
||||
self.settings_manager.set(CRAZY_EGG_ACCOUNT_NUMBER='12345678')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('crazy_egg', 'crazy_egg')
|
||||
self.assertTrue('/1234/5678.js' in r, r)
|
||||
|
|
@ -27,12 +24,12 @@ class CrazyEggTagTestCase(TagTestCase):
|
|||
r = CrazyEggNode().render(Context())
|
||||
self.assertTrue('/1234/5678.js' in r, r)
|
||||
|
||||
@override_settings(CRAZY_EGG_ACCOUNT_NUMBER=SETTING_DELETED)
|
||||
def test_no_account_number(self):
|
||||
self.settings_manager.delete('CRAZY_EGG_ACCOUNT_NUMBER')
|
||||
self.assertRaises(AnalyticalException, CrazyEggNode)
|
||||
|
||||
@override_settings(CRAZY_EGG_ACCOUNT_NUMBER='123abc')
|
||||
def test_wrong_account_number(self):
|
||||
self.settings_manager.set(CRAZY_EGG_ACCOUNT_NUMBER='123abc')
|
||||
self.assertRaises(AnalyticalException, CrazyEggNode)
|
||||
|
||||
def test_uservars(self):
|
||||
|
|
@ -41,8 +38,8 @@ class CrazyEggTagTestCase(TagTestCase):
|
|||
self.assertTrue("CE2.set(1, 'foo');" in r, r)
|
||||
self.assertTrue("CE2.set(2, 'bar');" in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,19 +6,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.google_analytics import GoogleAnalyticsNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(GOOGLE_ANALYTICS_PROPERTY_ID='UA-123456-7')
|
||||
class GoogleAnalyticsTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``google_analytics`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(GoogleAnalyticsTagTestCase, self).setUp()
|
||||
self.settings_manager.set(GOOGLE_ANALYTICS_PROPERTY_ID='UA-123456-7')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('google_analytics', 'google_analytics')
|
||||
self.assertTrue("_gaq.push(['_setAccount', 'UA-123456-7']);" in r, r)
|
||||
|
|
@ -29,12 +26,12 @@ class GoogleAnalyticsTagTestCase(TagTestCase):
|
|||
self.assertTrue("_gaq.push(['_setAccount', 'UA-123456-7']);" in r, r)
|
||||
self.assertTrue("_gaq.push(['_trackPageview']);" in r, r)
|
||||
|
||||
@override_settings(GOOGLE_ANALYTICS_PROPERTY_ID=SETTING_DELETED)
|
||||
def test_no_property_id(self):
|
||||
self.settings_manager.delete('GOOGLE_ANALYTICS_PROPERTY_ID')
|
||||
self.assertRaises(AnalyticalException, GoogleAnalyticsNode)
|
||||
|
||||
@override_settings(GOOGLE_ANALYTICS_PROPERTY_ID='wrong')
|
||||
def test_wrong_property_id(self):
|
||||
self.settings_manager.set(GOOGLE_ANALYTICS_PROPERTY_ID='wrong')
|
||||
self.assertRaises(AnalyticalException, GoogleAnalyticsNode)
|
||||
|
||||
def test_custom_vars(self):
|
||||
|
|
@ -46,8 +43,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase):
|
|||
self.assertTrue("_gaq.push(['_setCustomVar', 5, 'test2', 'bar', 1]);"
|
||||
in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -7,19 +7,17 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.gosquared import GoSquaredNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests import override_settings
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(GOSQUARED_SITE_TOKEN='ABC-123456-D')
|
||||
class GoSquaredTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``gosquared`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(GoSquaredTagTestCase, self).setUp()
|
||||
self.settings_manager.set(GOSQUARED_SITE_TOKEN='ABC-123456-D')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('gosquared', 'gosquared')
|
||||
self.assertTrue('GoSquared.acct = "ABC-123456-D";' in r, r)
|
||||
|
|
@ -28,30 +26,30 @@ class GoSquaredTagTestCase(TagTestCase):
|
|||
r = GoSquaredNode().render(Context({}))
|
||||
self.assertTrue('GoSquared.acct = "ABC-123456-D";' in r, r)
|
||||
|
||||
@override_settings(GOSQUARED_SITE_TOKEN=SETTING_DELETED)
|
||||
def test_no_token(self):
|
||||
self.settings_manager.delete('GOSQUARED_SITE_TOKEN')
|
||||
self.assertRaises(AnalyticalException, GoSquaredNode)
|
||||
|
||||
@override_settings(GOSQUARED_SITE_TOKEN='this is not a token')
|
||||
def test_wrong_token(self):
|
||||
self.settings_manager.set(GOSQUARED_SITE_TOKEN='this is not a token')
|
||||
self.assertRaises(AnalyticalException, GoSquaredNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_auto_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = GoSquaredNode().render(Context({'user': User(username='test',
|
||||
first_name='Test', last_name='User')}))
|
||||
self.assertTrue('GoSquared.UserName = "Test User";' in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_manual_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = GoSquaredNode().render(Context({
|
||||
'user': User(username='test', first_name='Test', last_name='User'),
|
||||
'gosquared_identity': 'test_identity',
|
||||
}))
|
||||
self.assertTrue('GoSquared.UserName = "test_identity";' in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,20 +6,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.hubspot import HubSpotNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(HUBSPOT_PORTAL_ID='1234', HUBSPOT_DOMAIN='example.com')
|
||||
class HubSpotTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``hubspot`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(HubSpotTagTestCase, self).setUp()
|
||||
self.settings_manager.set(HUBSPOT_PORTAL_ID='1234')
|
||||
self.settings_manager.set(HUBSPOT_DOMAIN='example.com')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('hubspot', 'hubspot')
|
||||
self.assertTrue('var hs_portalid = 1234;' in r, r)
|
||||
|
|
@ -30,24 +26,24 @@ class HubSpotTagTestCase(TagTestCase):
|
|||
self.assertTrue('var hs_portalid = 1234;' in r, r)
|
||||
self.assertTrue('var hs_ppa = "example.com";' in r, r)
|
||||
|
||||
@override_settings(HUBSPOT_PORTAL_ID=SETTING_DELETED)
|
||||
def test_no_portal_id(self):
|
||||
self.settings_manager.delete('HUBSPOT_PORTAL_ID')
|
||||
self.assertRaises(AnalyticalException, HubSpotNode)
|
||||
|
||||
@override_settings(HUBSPOT_PORTAL_ID='wrong')
|
||||
def test_wrong_portal_id(self):
|
||||
self.settings_manager.set(HUBSPOT_PORTAL_ID='wrong')
|
||||
self.assertRaises(AnalyticalException, HubSpotNode)
|
||||
|
||||
@override_settings(HUBSPOT_DOMAIN=SETTING_DELETED)
|
||||
def test_no_domain(self):
|
||||
self.settings_manager.delete('HUBSPOT_DOMAIN')
|
||||
self.assertRaises(AnalyticalException, HubSpotNode)
|
||||
|
||||
@override_settings(HUBSPOT_DOMAIN='wrong domain')
|
||||
def test_wrong_domain(self):
|
||||
self.settings_manager.set(HUBSPOT_DOMAIN='wrong domain')
|
||||
self.assertRaises(AnalyticalException, HubSpotNode)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,20 +6,17 @@ from django.contrib.auth.models import User
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.kiss_insights import KissInsightsNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER='12345',
|
||||
KISS_INSIGHTS_SITE_CODE='abc')
|
||||
class KissInsightsTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``kiss_insights`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(KissInsightsTagTestCase, self).setUp()
|
||||
self.settings_manager.set(KISS_INSIGHTS_ACCOUNT_NUMBER='12345')
|
||||
self.settings_manager.set(KISS_INSIGHTS_SITE_CODE='abc')
|
||||
|
||||
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)
|
||||
|
|
@ -28,24 +25,24 @@ class KissInsightsTagTestCase(TagTestCase):
|
|||
r = KissInsightsNode().render(Context())
|
||||
self.assertTrue("//s3.amazonaws.com/ki.js/12345/abc.js" in r, r)
|
||||
|
||||
@override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER=SETTING_DELETED)
|
||||
def test_no_account_number(self):
|
||||
self.settings_manager.delete('KISS_INSIGHTS_ACCOUNT_NUMBER')
|
||||
self.assertRaises(AnalyticalException, KissInsightsNode)
|
||||
|
||||
@override_settings(KISS_INSIGHTS_SITE_CODE=SETTING_DELETED)
|
||||
def test_no_site_code(self):
|
||||
self.settings_manager.delete('KISS_INSIGHTS_SITE_CODE')
|
||||
self.assertRaises(AnalyticalException, KissInsightsNode)
|
||||
|
||||
@override_settings(KISS_INSIGHTS_ACCOUNT_NUMBER='abcde')
|
||||
def test_wrong_account_number(self):
|
||||
self.settings_manager.set(KISS_INSIGHTS_ACCOUNT_NUMBER='abcde')
|
||||
self.assertRaises(AnalyticalException, KissInsightsNode)
|
||||
|
||||
@override_settings(KISS_INSIGHTS_SITE_CODE='abc def')
|
||||
def test_wrong_site_id(self):
|
||||
self.settings_manager.set(KISS_INSIGHTS_SITE_CODE='abc def')
|
||||
self.assertRaises(AnalyticalException, KissInsightsNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = KissInsightsNode().render(Context({'user': User(username='test')}))
|
||||
self.assertTrue("_kiq.push(['identify', 'test']);" in r, r)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,20 +7,17 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.kiss_metrics import KissMetricsNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef'
|
||||
'01234567')
|
||||
class KissMetricsTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``kiss_metrics`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(KissMetricsTagTestCase, self).setUp()
|
||||
self.settings_manager.set(KISS_METRICS_API_KEY='0123456789abcdef012345'
|
||||
'6789abcdef01234567')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('kiss_metrics', 'kiss_metrics')
|
||||
self.assertTrue("//doug1izaerwt3.cloudfront.net/0123456789abcdef012345"
|
||||
|
|
@ -31,20 +28,22 @@ class KissMetricsTagTestCase(TagTestCase):
|
|||
self.assertTrue("//doug1izaerwt3.cloudfront.net/0123456789abcdef012345"
|
||||
"6789abcdef01234567.1.js" in r, r)
|
||||
|
||||
@override_settings(KISS_METRICS_API_KEY=SETTING_DELETED)
|
||||
def test_no_api_key(self):
|
||||
self.settings_manager.delete('KISS_METRICS_API_KEY')
|
||||
self.assertRaises(AnalyticalException, KissMetricsNode)
|
||||
|
||||
def test_wrong_api_key(self):
|
||||
self.settings_manager.set(KISS_METRICS_API_KEY='0123456789abcdef012345'
|
||||
'6789abcdef0123456')
|
||||
self.assertRaises(AnalyticalException, KissMetricsNode)
|
||||
self.settings_manager.set(KISS_METRICS_API_KEY='0123456789abcdef012345'
|
||||
'6789abcdef012345678')
|
||||
@override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef'
|
||||
'0123456')
|
||||
def test_api_key_too_short(self):
|
||||
self.assertRaises(AnalyticalException, KissMetricsNode)
|
||||
|
||||
@override_settings(KISS_METRICS_API_KEY='0123456789abcdef0123456789abcdef'
|
||||
'012345678')
|
||||
def test_api_key_too_long(self):
|
||||
self.assertRaises(AnalyticalException, KissMetricsNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = KissMetricsNode().render(Context({'user': User(username='test')}))
|
||||
self.assertTrue("_kmq.push(['identify', 'test']);" in r, r)
|
||||
|
||||
|
|
@ -54,8 +53,8 @@ class KissMetricsTagTestCase(TagTestCase):
|
|||
self.assertTrue("_kmq.push(['record', 'test_event', "
|
||||
'{"prop1": "val1", "prop2": "val2"}]);' in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -7,21 +7,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.mixpanel import MixpanelNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcdef')
|
||||
class MixpanelTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``mixpanel`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(MixpanelTagTestCase, self).setUp()
|
||||
self.settings_manager.set(OPTIMIZELY_ACCOUNT_NUMBER='1234567')
|
||||
self.settings_manager.set(
|
||||
MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcdef')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('mixpanel', 'mixpanel')
|
||||
self.assertTrue(
|
||||
|
|
@ -34,20 +29,20 @@ class MixpanelTagTestCase(TagTestCase):
|
|||
"mpq.push(['init', '0123456789abcdef0123456789abcdef']);" in r,
|
||||
r)
|
||||
|
||||
@override_settings(MIXPANEL_API_TOKEN=SETTING_DELETED)
|
||||
def test_no_token(self):
|
||||
self.settings_manager.delete('MIXPANEL_API_TOKEN')
|
||||
self.assertRaises(AnalyticalException, MixpanelNode)
|
||||
|
||||
def test_wrong_token(self):
|
||||
self.settings_manager.set(
|
||||
MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcde')
|
||||
self.assertRaises(AnalyticalException, MixpanelNode)
|
||||
self.settings_manager.set(
|
||||
MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcdef0')
|
||||
@override_settings(MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcdef0')
|
||||
def test_token_too_long(self):
|
||||
self.assertRaises(AnalyticalException, MixpanelNode)
|
||||
|
||||
@override_settings(MIXPANEL_API_TOKEN='0123456789abcdef0123456789abcde')
|
||||
def test_token_too_short(self):
|
||||
self.assertRaises(AnalyticalException, MixpanelNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = MixpanelNode().render(Context({'user': User(username='test')}))
|
||||
self.assertTrue("mpq.push(['identify', 'test']);" in r, r)
|
||||
|
||||
|
|
@ -57,8 +52,8 @@ class MixpanelTagTestCase(TagTestCase):
|
|||
self.assertTrue("mpq.push(['track', 'test_event', "
|
||||
'{"prop1": "val1", "prop2": "val2"}]);' in r, r)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,19 +6,16 @@ from django.contrib.auth.models import User
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.olark import OlarkNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(OLARK_SITE_ID='1234-567-89-0123')
|
||||
class OlarkTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``olark`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(OlarkTestCase, self).setUp()
|
||||
self.settings_manager.set(OLARK_SITE_ID='1234-567-89-0123')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('olark', 'olark')
|
||||
self.assertTrue("olark.identify('1234-567-89-0123');" in r, r)
|
||||
|
|
@ -27,16 +24,16 @@ class OlarkTestCase(TagTestCase):
|
|||
r = OlarkNode().render(Context())
|
||||
self.assertTrue("olark.identify('1234-567-89-0123');" in r, r)
|
||||
|
||||
@override_settings(OLARK_SITE_ID=SETTING_DELETED)
|
||||
def test_no_site_id(self):
|
||||
self.settings_manager.delete('OLARK_SITE_ID')
|
||||
self.assertRaises(AnalyticalException, OlarkNode)
|
||||
|
||||
@override_settings(OLARK_SITE_ID='1234-567-8901234')
|
||||
def test_wrong_site_id(self):
|
||||
self.settings_manager.set(OLARK_SITE_ID='1234-567-8901234')
|
||||
self.assertRaises(AnalyticalException, OlarkNode)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = OlarkNode().render(Context({'user':
|
||||
User(username='test', first_name='Test', last_name='User')}))
|
||||
self.assertTrue("olark('api.chat.updateVisitorNickname', "
|
||||
|
|
|
|||
|
|
@ -6,19 +6,16 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.optimizely import OptimizelyNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
|
||||
|
||||
@override_settings(OPTIMIZELY_ACCOUNT_NUMBER='1234567')
|
||||
class OptimizelyTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``optimizely`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(OptimizelyTagTestCase, self).setUp()
|
||||
self.settings_manager.set(OPTIMIZELY_ACCOUNT_NUMBER='1234567')
|
||||
|
||||
def test_tag(self):
|
||||
self.assertEqual(
|
||||
'<script src="//cdn.optimizely.com/js/1234567.js"></script>',
|
||||
|
|
@ -29,16 +26,16 @@ class OptimizelyTagTestCase(TagTestCase):
|
|||
'<script src="//cdn.optimizely.com/js/1234567.js"></script>',
|
||||
OptimizelyNode().render(Context()))
|
||||
|
||||
@override_settings(OPTIMIZELY_ACCOUNT_NUMBER=SETTING_DELETED)
|
||||
def test_no_account_number(self):
|
||||
self.settings_manager.delete('OPTIMIZELY_ACCOUNT_NUMBER')
|
||||
self.assertRaises(AnalyticalException, OptimizelyNode)
|
||||
|
||||
@override_settings(OPTIMIZELY_ACCOUNT_NUMBER='123abc')
|
||||
def test_wrong_account_number(self):
|
||||
self.settings_manager.set(OPTIMIZELY_ACCOUNT_NUMBER='123abc')
|
||||
self.assertRaises(AnalyticalException, OptimizelyNode)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -6,20 +6,17 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.templatetags.performable import PerformableNode
|
||||
from analytical.tests.utils import TagTestCase
|
||||
from analytical.tests.utils import TagTestCase, override_settings, SETTING_DELETED
|
||||
from analytical.utils import AnalyticalException
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
@override_settings(PERFORMABLE_API_KEY='123ABC')
|
||||
class PerformableTagTestCase(TagTestCase):
|
||||
"""
|
||||
Tests for the ``performable`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(PerformableTagTestCase, self).setUp()
|
||||
self.settings_manager.set(PERFORMABLE_API_KEY='123ABC')
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('performable', 'performable')
|
||||
self.assertTrue('/performable/pax/123ABC.js' in r, r)
|
||||
|
|
@ -28,16 +25,16 @@ class PerformableTagTestCase(TagTestCase):
|
|||
r = PerformableNode().render(Context())
|
||||
self.assertTrue('/performable/pax/123ABC.js' in r, r)
|
||||
|
||||
@override_settings(PERFORMABLE_API_KEY=SETTING_DELETED)
|
||||
def test_no_api_key(self):
|
||||
self.settings_manager.delete('PERFORMABLE_API_KEY')
|
||||
self.assertRaises(AnalyticalException, PerformableNode)
|
||||
|
||||
@override_settings(PERFORMABLE_API_KEY='123 ABC')
|
||||
def test_wrong_account_number(self):
|
||||
self.settings_manager.set(PERFORMABLE_API_KEY='123 ABC')
|
||||
self.assertRaises(AnalyticalException, PerformableNode)
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
|
|
@ -46,8 +43,8 @@ class PerformableTagTestCase(TagTestCase):
|
|||
'<!-- Performable disabled on internal IP address'), r)
|
||||
self.assertTrue(r.endswith('-->'), r)
|
||||
|
||||
@override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
def test_identify(self):
|
||||
self.settings_manager.set(ANALYTICAL_AUTO_IDENTIFY=True)
|
||||
r = PerformableNode().render(Context({'user': User(username='test')}))
|
||||
self.assertTrue('_paq.push(["identify", {identity: "test"}]);' in r, r)
|
||||
|
||||
|
|
@ -58,10 +55,10 @@ class PerformableEmbedTagTestCase(TagTestCase):
|
|||
"""
|
||||
|
||||
def test_tag(self):
|
||||
d = 'example.com'
|
||||
p = 'test'
|
||||
domain = 'example.com'
|
||||
page = 'test'
|
||||
r = self.render_tag('performable', 'performable_embed "%s" "%s"'
|
||||
% (d, p))
|
||||
% (domain, page))
|
||||
self.assertTrue(
|
||||
"$f.initialize({'host': 'example.com', 'page': 'test'});" in r,
|
||||
r)
|
||||
|
|
|
|||
|
|
@ -18,9 +18,6 @@ class WoopraTagTestCase(TagTestCase):
|
|||
Tests for the ``woopra`` template tag.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(WoopraTagTestCase, self).setUp()
|
||||
|
||||
def test_tag(self):
|
||||
r = self.render_tag('woopra', 'woopra')
|
||||
self.assertTrue('var woo_settings = {"domain": "example.com"};' in r, r)
|
||||
|
|
|
|||
|
|
@ -6,45 +6,46 @@ from django.http import HttpRequest
|
|||
from django.template import Context
|
||||
|
||||
from analytical.utils import is_internal_ip
|
||||
from analytical.tests.utils import TestCase
|
||||
from analytical.tests.utils import TestCase, override_settings
|
||||
|
||||
|
||||
class InternalIpTestCase(TestCase):
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_no_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
context = Context()
|
||||
self.assertFalse(is_internal_ip(context))
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
self.assertTrue(is_internal_ip(context))
|
||||
|
||||
@override_settings(TEST_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_prefix_internal_ip(self):
|
||||
self.settings_manager.set(TEST_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
self.assertTrue(is_internal_ip(context, 'TEST'))
|
||||
|
||||
@override_settings(INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip_fallback(self):
|
||||
self.settings_manager.set(INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
self.assertTrue(is_internal_ip(context))
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_internal_ip_forwarded_for(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['HTTP_X_FORWARDED_FOR'] = '1.1.1.1'
|
||||
context = Context({'request': req})
|
||||
self.assertTrue(is_internal_ip(context))
|
||||
|
||||
@override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
def test_render_different_internal_ip(self):
|
||||
self.settings_manager.set(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
|
||||
req = HttpRequest()
|
||||
req.META['REMOTE_ADDR'] = '2.2.2.2'
|
||||
context = Context({'request': req})
|
||||
|
|
|
|||
|
|
@ -3,23 +3,23 @@ Testing utilities.
|
|||
"""
|
||||
|
||||
from __future__ import with_statement
|
||||
|
||||
from django.conf import settings, UserSettingsHolder
|
||||
from django.core.management import call_command
|
||||
from django.db.models import loading
|
||||
from django.template import Template, Context, RequestContext
|
||||
from django.test.simple import run_tests as django_run_tests
|
||||
from django.test.testcases import TestCase
|
||||
from django.utils.functional import wraps
|
||||
|
||||
|
||||
SETTING_DELETED = object()
|
||||
|
||||
|
||||
class DeletedSettingDescriptor(object):
|
||||
def __get__(self, instance, owner):
|
||||
raise AttributeError("attribute not set")
|
||||
|
||||
SETTING_DELETED = DeletedSettingDescriptor()
|
||||
|
||||
|
||||
# Backported adapted from Django trunk (r16377)
|
||||
class override_settings(object):
|
||||
"""
|
||||
Temporarily override Django settings.
|
||||
|
|
@ -28,8 +28,6 @@ class override_settings(object):
|
|||
takes a function and returns a wrapped function. If it's a contextmanager
|
||||
it's used with the ``with`` statement. In either event entering/exiting
|
||||
are called before and after, respectively, the function/block is executed.
|
||||
|
||||
Via: http://djangosnippets.org/snippets/2437/
|
||||
"""
|
||||
def __init__(self, **kwargs):
|
||||
self.options = kwargs
|
||||
|
|
@ -41,31 +39,40 @@ class override_settings(object):
|
|||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
self.disable()
|
||||
|
||||
def __call__(self, func):
|
||||
@wraps(func)
|
||||
def inner(*args, **kwargs):
|
||||
with self:
|
||||
return func(*args, **kwargs)
|
||||
def __call__(self, test_func):
|
||||
from django.test import TestCase
|
||||
if isinstance(test_func, type) and issubclass(test_func, TestCase):
|
||||
class inner(test_func):
|
||||
def _pre_setup(innerself):
|
||||
self.enable()
|
||||
super(inner, innerself)._pre_setup()
|
||||
def _post_teardown(innerself):
|
||||
super(inner, innerself)._post_teardown()
|
||||
self.disable()
|
||||
else:
|
||||
@wraps(test_func)
|
||||
def inner(*args, **kwargs):
|
||||
with self:
|
||||
return test_func(*args, **kwargs)
|
||||
return inner
|
||||
|
||||
def enable(self):
|
||||
override = UserSettingsHolder(settings._wrapped)
|
||||
for key, new_value in self.options.items():
|
||||
if new_value is SETTING_DELETED:
|
||||
setattr(override, key, DeletedSettingDescriptor())
|
||||
else:
|
||||
setattr(override, key, new_value)
|
||||
setattr(override, key, new_value)
|
||||
settings._wrapped = override
|
||||
|
||||
def disable(self):
|
||||
settings._wrapped = self.wrapped
|
||||
|
||||
|
||||
def run_tests(labels=()):
|
||||
def run_tests():
|
||||
"""
|
||||
Use the Django test runner to run the tests.
|
||||
"""
|
||||
django_run_tests(labels, verbosity=1, interactive=True)
|
||||
from django.test.simple import DjangoTestSuiteRunner
|
||||
runner = DjangoTestSuiteRunner(verbosity=2)
|
||||
runner.run_tests(None)
|
||||
|
||||
|
||||
def with_apps(*apps):
|
||||
|
|
|
|||
Loading…
Reference in a new issue