Skip to content

Commit

Permalink
Merge e75f523 into ad4182e
Browse files Browse the repository at this point in the history
  • Loading branch information
jvkersch committed Aug 8, 2014
2 parents ad4182e + e75f523 commit fb2c27e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
8 changes: 8 additions & 0 deletions pyga/requests.py
Expand Up @@ -154,6 +154,14 @@ def build_parameters(self):
'''
params.utmip = self.visitor.ip_address
params.aip = self.tracker.config.anonimize_ip_address and 1 or None

# Add override User-Agent parameter (&ua) and override IP address
# parameter (&uip). Note that the override IP address parameter is
# always anonymized, as if &aip were present (see
# https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#uip)
params.ua = self.visitor.user_agent
params.uip = utils.anonymize_ip(self.visitor.ip_address)

if params.aip:
# If anonimization of ip enabled? then!
params.utmip = utils.anonymize_ip(params.utmip)
Expand Down
8 changes: 8 additions & 0 deletions tests/ga.py
Expand Up @@ -6,6 +6,7 @@ class TestGA(unittest.TestCase):
def test_request(self):
from pyga.requests import Tracker, Visitor, Session, Page
from mock import Mock
from urlparse import urlparse, parse_qs
import urllib2

mocked = urllib2.urlopen = Mock()
Expand All @@ -27,3 +28,10 @@ def test_request(self):
(request, ), _ = mocked.call_args_list.pop()
self.assertEqual(request.headers.get('X-forwarded-for'), '134.321.0.1')
self.assertEqual(request.headers.get('User-agent'), 'Test User Agent 1.0')

# Assert that &ua and &uip are passed along, and that &uip is properly
# anonymized.
qs = urlparse(request.get_full_url()).query
params = parse_qs(qs)
self.assertEqual(params['uip'][0], '134.321.0.0')
self.assertEqual(params['ua'][0], 'Test User Agent 1.0')

0 comments on commit fb2c27e

Please sign in to comment.