From 2f3d2ecac068069969716ff7d581fa59c54da3bc Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Mon, 10 Mar 2014 16:19:10 -0400 Subject: [PATCH 1/2] Fix undefined references to pytz --- common/djangoapps/track/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/djangoapps/track/views.py b/common/djangoapps/track/views.py index 522773a4cb..b3b8cb3998 100644 --- a/common/djangoapps/track/views.py +++ b/common/djangoapps/track/views.py @@ -1,6 +1,6 @@ import datetime -from pytz import UTC +import pytz from django.contrib.auth.decorators import login_required from django.http import HttpResponse @@ -59,7 +59,7 @@ def user_track(request): "event": request.REQUEST['event'], "agent": _get_request_header(request, 'HTTP_USER_AGENT'), "page": page, - "time": datetime.datetime.now(UTC), + "time": datetime.datetime.utcnow(), "host": _get_request_header(request, 'SERVER_NAME'), "context": eventtracker.get_tracker().resolve_context(), } @@ -92,7 +92,7 @@ def server_track(request, event_type, event, page=None): "event": event, "agent": _get_request_header(request, 'HTTP_USER_AGENT'), "page": page, - "time": datetime.datetime.now(UTC), + "time": datetime.datetime.utcnow(), "host": _get_request_header(request, 'SERVER_NAME'), "context": eventtracker.get_tracker().resolve_context(), } @@ -136,7 +136,7 @@ def task_track(request_info, task_info, event_type, event, page=None): "event": full_event, "agent": request_info.get('agent', 'unknown'), "page": page, - "time": datetime.datetime.now(UTC), + "time": datetime.datetime.utcnow(), "host": request_info.get('host', 'unknown'), "context": eventtracker.get_tracker().resolve_context(), } From f25a7870a502b92105ad153a11ab690aef0c382e Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Tue, 11 Mar 2014 11:14:38 -0400 Subject: [PATCH 2/2] fix tests --- common/djangoapps/track/tests/test_views.py | 29 +++++++++------------ 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/common/djangoapps/track/tests/test_views.py b/common/djangoapps/track/tests/test_views.py index ca09e519ab..9d8871fa81 100644 --- a/common/djangoapps/track/tests/test_views.py +++ b/common/djangoapps/track/tests/test_views.py @@ -1,15 +1,14 @@ # pylint: disable=missing-docstring,maybe-no-member -from datetime import datetime - -from mock import patch -from mock import sentinel -from pytz import UTC +from track import views +from mock import patch, sentinel +from freezegun import freeze_time from django.test import TestCase from django.test.client import RequestFactory -from track import views +from datetime import datetime +expected_time = datetime(2013, 10, 3, 8, 24, 55) class TestTrackViews(TestCase): @@ -21,12 +20,6 @@ class TestTrackViews(TestCase): self.mock_tracker = patcher.start() self.addCleanup(patcher.stop) - self._expected_timestamp = datetime.now(UTC) - self._datetime_patcher = patch('track.views.datetime') - self.addCleanup(self._datetime_patcher.stop) - mock_datetime_mod = self._datetime_patcher.start() - mock_datetime_mod.datetime.now.return_value = self._expected_timestamp # pylint: disable=maybe-no-member - self.path_with_course = '/courses/foo/bar/baz/xmod/' self.url_with_course = 'http://www.edx.org' + self.path_with_course @@ -34,6 +27,7 @@ class TestTrackViews(TestCase): sentinel.key: sentinel.value } + @freeze_time(expected_time) def test_user_track(self): request = self.request_factory.get('/event', { 'page': self.url_with_course, @@ -51,7 +45,7 @@ class TestTrackViews(TestCase): 'event': '{}', 'agent': '', 'page': self.url_with_course, - 'time': self._expected_timestamp, + 'time': expected_time, 'host': 'testserver', 'context': { 'course_id': 'foo/bar/baz', @@ -60,6 +54,7 @@ class TestTrackViews(TestCase): } self.mock_tracker.send.assert_called_once_with(expected_event) + @freeze_time(expected_time) def test_server_track(self): request = self.request_factory.get(self.path_with_course) views.server_track(request, str(sentinel.event_type), '{}') @@ -72,12 +67,13 @@ class TestTrackViews(TestCase): 'event': '{}', 'agent': '', 'page': None, - 'time': self._expected_timestamp, + 'time': expected_time, 'host': 'testserver', 'context': {}, } self.mock_tracker.send.assert_called_once_with(expected_event) + @freeze_time(expected_time) def test_server_track_with_no_request(self): request = None views.server_track(request, str(sentinel.event_type), '{}') @@ -90,12 +86,13 @@ class TestTrackViews(TestCase): 'event': '{}', 'agent': '', 'page': None, - 'time': self._expected_timestamp, + 'time': expected_time, 'host': '', 'context': {}, } self.mock_tracker.send.assert_called_once_with(expected_event) + @freeze_time(expected_time) def test_task_track(self): request_info = { 'username': 'anonymous', @@ -120,7 +117,7 @@ class TestTrackViews(TestCase): 'event': expected_event_data, 'agent': 'agent', 'page': None, - 'time': self._expected_timestamp, + 'time': expected_time, 'host': 'testserver', 'context': { 'course_id': '',