def setUp(self): self.settings_manager = TestSettingsManager()
class TrackCrazyEggTagTestCase(TestCase): """ Tests for the `track_crazyegg` template tag. """ def setUp(self): self.settings_manager = TestSettingsManager() def tearDown(self): self.settings_manager.revert() def render_tag(self, context=None): if context is None: context = {} t = template.Template("{% load crazyegg %}{% track_crazyegg %}") return t.render(template.Context(context)) def test_no_id(self): self.settings_manager.delete('CRAZYEGG_ACCOUNT_NUMBER') self.assertRaises(CrazyEggException, self.render_tag) def test_wrong_id(self): self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='1234567') self.assertRaises(CrazyEggException, self.render_tag) self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='123456789') self.assertRaises(CrazyEggException, self.render_tag) def test_rendering(self): self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='12345678') r = self.render_tag() self.assertTrue('/1234/5678.js' in r, r) def test_render_internal_ip(self): self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='12345678', CRAZYEGG_INTERNAL_IPS=['1.1.1.1']) req = HttpRequest() req.META['REMOTE_ADDR'] = '1.1.1.1' r = self.render_tag({'request': req}) self.assertEqual(r, "") def test_render_internal_ip_forwarded(self): self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='12345678', CRAZYEGG_INTERNAL_IPS=['1.1.1.1']) req = HttpRequest() req.META['HTTP_X_FORWARDED_FOR'] = '1.1.1.1' r = self.render_tag({'request': req}) self.assertEqual(r, "") def test_render_not_internal_ip(self): self.settings_manager.set(CRAZYEGG_ACCOUNT_NUMBER='12345678', CRAZYEGG_INTERNAL_IPS=['1.1.1.1']) req = HttpRequest() req.META['REMOTE_ADDR'] = '2.2.2.2' r = self.render_tag({'request': req}) self.assertTrue('/1234/5678.js' in r, r)