def test_build_people_track_charge_params(self): self.maxDiff = None et = PeopleTracker() now = datetime.now() FakeDateTime.now = classmethod(lambda cls: now) event = u'track_charge' is_test = 1 properties = {u'amount': 11.77, u'distinct_id': u'test_id', u'token': u'testtoken', u'extra': u'extra'} expected = { u'$append': { u'$transactions': { u'$amount': 11.77, u'$time': unicode(now.isoformat()), u'extra': 'extra' } }, u'$distinct_id': u'test_id', u'$token': u'testtoken', } url_params = et._build_params(event, properties, is_test) parsed = dict(urlparse.parse_qsl(url_params, True)) parsed[u'data'] = simplejson.loads(base64.b64decode(parsed['data'])) expected_params = { u'data': expected, u'test': unicode(is_test), } self.assertEqual(expected_params, parsed)
def test_build_people_set_params(self): et = PeopleTracker() event = 'set' is_test = 1 properties = { 'stuff': 'thing', 'blue': 'green', 'distinct_id': 'test_id', 'token': 'testtoken', 'ip': '173.194.40.212' } expected = { '$distinct_id': 'test_id', '$ip': '173.194.40.212', '$token': 'testtoken', '$set': { 'stuff': 'thing', 'blue': 'green', }, } url_params = et._build_params(event, properties, is_test) expected_params = urllib.urlencode({ 'data': base64.b64encode(simplejson.dumps(expected)), 'test': is_test, }) self.assertEqual(expected_params, url_params)
def test_build_people_track_charge_params(self): et = PeopleTracker() now = datetime.now() FakeDateTime.now = classmethod(lambda cls: now) event = 'track_charge' is_test = 1 properties = {'amount': 11.77, 'distinct_id': 'test_id', 'token': 'testtoken'} expected = { '$append': { '$transactions': { '$amount': 11.77, '$time': now.isoformat(), } }, '$distinct_id': 'test_id', '$token': 'testtoken', } url_params = et._build_params(event, properties, is_test) expected_params = urllib.urlencode({ 'data': base64.b64encode(simplejson.dumps(expected)), 'test': is_test, }) self.assertEqual(expected_params, url_params)
def test_build_people_set_params(self): et = PeopleTracker() event = 'set' is_test = 1 properties = { 'stuff': 'thing', 'blue': 'green', 'distinct_id': 'test_id', 'token': 'testtoken' } expected = { '$distinct_id': 'test_id', '$set': { 'stuff': 'thing', 'blue': 'green', }, '$token': 'testtoken', } url_params = et._build_params(event, properties, is_test) expected_params = urllib.urlencode({ 'data': base64.b64encode(simplejson.dumps(expected)), 'test': is_test, }) self.assertEqual(expected_params, url_params)
def test_build_people_track_charge_params(self): self.maxDiff = None et = PeopleTracker() now = datetime.now() FakeDateTime.now = classmethod(lambda cls: now) event = u'track_charge' is_test = 1 properties = { u'amount': 11.77, u'distinct_id': u'test_id', u'token': u'testtoken', u'extra': u'extra' } expected = { u'$append': { u'$transactions': { u'$amount': 11.77, u'$time': unicode(now.isoformat()), u'extra': 'extra' } }, u'$distinct_id': u'test_id', u'$token': u'testtoken', } url_params = et._build_params(event, properties, is_test) parsed = dict(urlparse.parse_qsl(url_params, True)) parsed[u'data'] = simplejson.loads(base64.b64decode(parsed['data'])) expected_params = { u'data': expected, u'test': unicode(is_test), } self.assertEqual(expected_params, parsed)
def test_build_people_track_charge_params(self): et = PeopleTracker() now = datetime.now() FakeDateTime.now = classmethod(lambda cls: now) event = 'track_charge' is_test = 1 properties = { 'amount': 11.77, 'distinct_id': 'test_id', 'token': 'testtoken' } expected = { '$append': { '$transactions': { '$amount': 11.77, '$time': now.isoformat(), } }, '$distinct_id': 'test_id', '$token': 'testtoken', } url_params = et._build_params(event, properties, is_test) expected_params = urllib.urlencode({ 'data': base64.b64encode(simplejson.dumps(expected)), 'test': is_test, }) self.assertEqual(expected_params, url_params)
def add_or_update_user_to_mixpanel(user): PeopleTracker.delay( 'set', { 'distinct_id': user.id, '$first_name': user.first_name, '$last_name': user.last_name, '$email': user.email, 'Date Joined': user.date_joined.isoformat(), '$ignore_time': True, 'Gender': user.gender, 'Location City': user.location_city })
def add_or_update_user_to_mixpanel(user): PeopleTracker.delay('set', { 'distinct_id': user.id, '$first_name': user.first_name, '$last_name': user.last_name, '$email': user.email, 'Date Joined': user.date_joined.isoformat(), '$ignore_time': True, 'Gender': user.gender, 'Location City': user.location_city })
def test_build_people_set_params(self): et = PeopleTracker() event = 'set' properties = {'stuff': 'thing', 'blue': 'green', 'distinct_id': 'test_id'} params = et._build_params(event, properties, token='testtoken') expected = { '$distinct_id': 'test_id', '$set': { 'stuff': 'thing', 'blue': 'green', }, '$token': 'testtoken', } self.assertEqual(params, expected)
def test_run_unset(self): result = PeopleTracker().run('unset', ['y', 'z'], distinct_id='x') self.assertTrue(result) self.assertParams({ '$distinct_id': 'x', '$token': 'testtesttest', '$unset': ['y', 'z'], })
def test_build_people_set_params(self): et = PeopleTracker() event = 'set' properties = { 'stuff': 'thing', 'blue': 'green', 'distinct_id': 'test_id' } params = et._build_params(event, properties, token='testtoken') expected = { '$distinct_id': 'test_id', '$set': { 'stuff': 'thing', 'blue': 'green', }, '$token': 'testtoken', } self.assertEqual(params, expected)
def test_build_people_track_charge_params(self): self.maxDiff = None et = PeopleTracker() now = datetime.utcnow() FakeDateTime.utcnow = classmethod(lambda cls: now) event = 'track_charge' properties = {'amount': 11.77, 'distinct_id': 'test_id', 'extra': 'extra'} params = et._build_params(event, properties, token='testtoken') expected = { '$append': { '$transactions': { '$amount': 11.77, '$time': text_type(now.isoformat()), 'extra': 'extra' } }, '$distinct_id': 'test_id', '$token': 'testtoken', } self.assertEqual(params, expected)
def test_run_set(self): result = PeopleTracker().run('set', { 'distinct_id': 'x', 'foo': 'bar', }) self.assertTrue(result) self.assertParams({ '$distinct_id': 'x', '$token': 'testtesttest', '$set': { 'foo': 'bar' }, })
def test_build_people_track_charge_params(self): self.maxDiff = None et = PeopleTracker() now = datetime.utcnow() FakeDateTime.utcnow = classmethod(lambda cls: now) event = 'track_charge' properties = { 'amount': 11.77, 'distinct_id': 'test_id', 'extra': 'extra' } params = et._build_params(event, properties, token='testtoken') expected = { '$append': { '$transactions': { '$amount': 11.77, '$time': text_type(now.isoformat()), 'extra': 'extra' } }, '$distinct_id': 'test_id', '$token': 'testtoken', } self.assertEqual(params, expected)