def test_user_track(self): request = self.request_factory.get( '/event', { 'page': self.url_with_course, 'event_type': sentinel.event_type, 'event': '{}', 'courserun_key': 'explicit/course/id' }) views.user_track(request) actual_event = self.get_event() expected_event = { 'context': { 'course_id': 'explicit/course/id', 'org_id': 'explicit', 'event_source': 'browser', 'page': self.url_with_course, 'username': '******' }, 'data': {}, 'timestamp': FROZEN_TIME, 'name': str(sentinel.event_type) } assert_event_matches(expected_event, actual_event)
def test_user_track_with_middleware_and_processors(self): self.recreate_tracker() middleware = TrackMiddleware() payload = '{"foo": "bar"}' user_id = 1 request = self.request_factory.get( '/event', { 'page': self.url_with_course, 'event_type': sentinel.event_type, 'event': payload }) request.user = User.objects.create(pk=user_id, username=str(sentinel.username)) request.META['REMOTE_ADDR'] = '10.0.0.1' request.META['HTTP_REFERER'] = str(sentinel.referer) request.META['HTTP_ACCEPT_LANGUAGE'] = str(sentinel.accept_language) request.META['HTTP_USER_AGENT'] = str(sentinel.user_agent) request.META['SERVER_NAME'] = 'testserver2' middleware.process_request(request) try: views.user_track(request) expected_event = { 'accept_language': str(sentinel.accept_language), 'referer': str(sentinel.referer), 'username': str(sentinel.username), 'session': '', 'ip': '10.0.0.1', 'event_source': 'browser', 'event_type': str(sentinel.event_type), 'name': str(sentinel.event_type), 'event': payload, 'agent': str(sentinel.user_agent), 'page': self.url_with_course, 'time': FROZEN_TIME, 'host': 'testserver2', 'context': { 'course_id': 'foo/bar/baz', 'org_id': 'foo', 'user_id': user_id, 'path': '/event' }, } finally: middleware.process_response(request, None) actual_event = self.get_event() assert_event_matches(expected_event, actual_event)
def test_user_track_with_missing_values(self): request = self.request_factory.get('/event') views.user_track(request) actual_event = self.get_event() expected_event = { 'context': { 'course_id': '', 'org_id': '', 'event_source': 'browser', 'page': '', 'username': '******' }, 'data': {}, 'timestamp': FROZEN_TIME, 'name': 'unknown' } assert_event_matches(expected_event, actual_event)