Merge lp:~lukasz-czyzykowski/ubuntu-recommender/upgrade-to-django-1.5 into lp:ubuntu-recommender

Proposed by Łukasz Czyżykowski
Status: Merged
Approved by: Łukasz Czyżykowski
Approved revision: 96
Merged at revision: 86
Proposed branch: lp:~lukasz-czyzykowski/ubuntu-recommender/upgrade-to-django-1.5
Merge into: lp:ubuntu-recommender
Diff against target: 294 lines (+44/-24)
13 files modified
django_project/config/main.cfg (+1/-4)
django_project/urls.py (+3/-4)
requirements.txt (+3/-2)
src/recommender/api/__init__.py (+13/-0)
src/recommender/auth.py (+4/-3)
src/recommender/managers.py (+1/-1)
src/recommender/models/data.py (+3/-0)
src/recommender/models/recommendations.py (+3/-1)
src/recommender/tests/test_api.py (+0/-2)
src/recommender/tests/test_commands.py (+5/-3)
src/recommender/tests/test_managers.py (+4/-2)
src/recommender/tests/test_models_data.py (+3/-0)
src/recommender/urls.py (+1/-2)
To merge this branch: bzr merge lp:~lukasz-czyzykowski/ubuntu-recommender/upgrade-to-django-1.5
Reviewer Review Type Date Requested Status
Martin Albisetti (community) Approve
Review via email: mp+157872@code.launchpad.net

Commit message

Upgrade to Django 1.5.1

Description of the change

Upgrade to Django 1.5.1

To post a comment you must log in.
Revision history for this message
Martin Albisetti (beuno) wrote :

+1 minus a small typo.

review: Approve
96. By Łukasz Czyżykowski

Fixed typo.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'django_project/config/main.cfg'
2--- django_project/config/main.cfg 2013-02-22 16:47:48 +0000
3+++ django_project/config/main.cfg 2013-04-16 12:25:30 +0000
4@@ -1,9 +1,6 @@
5 [django]
6 authentication_backends = django_openid_auth.auth.OpenIDBackend
7 django.contrib.auth.backends.ModelBackend
8-database_engine = sqlite3
9-database_host =
10-database_name = test.db
11 debug = false
12 email_host = localhost
13 email_port = 1025
14@@ -50,7 +47,7 @@
15 default = default_database
16
17 [default_database]
18-engine = postgresql_psycopg2
19+engine = django.db.backends.postgresql_psycopg2
20 name = recommender
21 user = postgres
22 host = /tmp
23
24=== modified file 'django_project/urls.py'
25--- django_project/urls.py 2012-09-28 21:24:33 +0000
26+++ django_project/urls.py 2013-04-16 12:25:30 +0000
27@@ -1,9 +1,9 @@
28 import preflight
29 from django.conf import settings
30-from django.conf.urls.defaults import *
31+from django.conf.urls import patterns, include, url
32 from django.contrib import admin
33 from django.contrib.auth.views import logout
34-from django.views.generic.simple import redirect_to
35+from django.views.generic import RedirectView
36
37 admin.autodiscover()
38 preflight.autodiscover()
39@@ -12,7 +12,6 @@
40 handler404 = 'recommender.views.page_not_found'
41
42 urlpatterns = patterns('',
43- # Django's admin site:
44 (r'^admin/', include(admin.site.urls)),
45
46 # django-openid-auth's stuff
47@@ -25,5 +24,5 @@
48
49 # The recommender app gets everything else
50 (r'^', include('recommender.urls')),
51- (r'^$', redirect_to, {'url': 'http://www.ubuntu.com/'}),
52+ (r'^$', RedirectView.as_view(url='http://www.ubuntu.com/'))
53 )
54
55=== modified file 'requirements.txt'
56--- requirements.txt 2013-02-22 16:27:37 +0000
57+++ requirements.txt 2013-04-16 12:25:30 +0000
58@@ -1,14 +1,15 @@
59 bzr
60 configglue==1.0.1
61 coverage
62-django==1.3
63-django-configglue==0.6.1
64+django==1.5.1
65+django-configglue==0.7
66 -e bzr+http://bazaar.launchpad.net/~canonical-isd-hackers/django-pgtools/trunk
67 -e bzr+http://bazaar.launchpad.net/~django-openid-auth/django-openid-auth/trunk
68 django-piston==0.2.2.1
69 fabric
70 mock
71 pep8
72+pytz
73 piston-mini-client
74 python-openid
75 south==0.7.3
76
77=== modified file 'src/recommender/api/__init__.py'
78--- src/recommender/api/__init__.py 2011-12-06 15:39:39 +0000
79+++ src/recommender/api/__init__.py 2013-04-16 12:25:30 +0000
80@@ -0,0 +1,13 @@
81+# Bit of surgery on piston internals, this fixes
82+# https://github.com/simplejson/simplejson/issues/37
83+
84+import json
85+import simplejson
86+
87+from piston.utils import Mimer
88+from piston import emitters
89+
90+emitters.simplejson = json
91+
92+Mimer.unregister(simplejson.loads)
93+Mimer.register(json.loads, ('application/json',))
94
95=== modified file 'src/recommender/auth.py'
96--- src/recommender/auth.py 2012-08-23 18:01:55 +0000
97+++ src/recommender/auth.py 2013-04-16 12:25:30 +0000
98@@ -23,8 +23,9 @@
99 __all__ = [
100 'SSOOAuthAuthentication',
101 ]
102-
103+import pytz
104 import logging
105+
106 from datetime import datetime, timedelta
107 from django.conf import settings
108 from django.contrib.auth.models import User
109@@ -89,7 +90,7 @@
110 if self.is_valid_request(request):
111 try:
112 consumer, token, parameters = self.validate_token(request)
113- except (OAuthError, oauth.OAuthError), err:
114+ except (OAuthError, oauth.OAuthError):
115 return False
116 if consumer and token:
117 request.user = token.user
118@@ -107,7 +108,7 @@
119 tokens = Token.objects.filter(
120 token=oauthtoken, consumer__key=consumer_key)
121 if len(tokens) == 0 or (tokens[0].updated_at <
122- datetime.now() - TOKEN_CACHE_EXPIRY):
123+ datetime.now(pytz.utc) - TOKEN_CACHE_EXPIRY):
124 self.logger.debug('No token found, prefetching %s' % consumer_key)
125 pieces = web_services.get_data_for_account(
126 token=oauthtoken,
127
128=== modified file 'src/recommender/managers.py'
129--- src/recommender/managers.py 2013-02-19 14:07:25 +0000
130+++ src/recommender/managers.py 2013-04-16 12:25:30 +0000
131@@ -25,7 +25,7 @@
132 ]
133
134 import json
135-from datetime import datetime, timedelta
136+
137 from random import random
138
139 from django.conf import settings
140
141=== modified file 'src/recommender/models/data.py'
142--- src/recommender/models/data.py 2012-02-09 10:07:08 +0000
143+++ src/recommender/models/data.py 2013-04-16 12:25:30 +0000
144@@ -20,6 +20,8 @@
145 from __future__ import absolute_import
146 __metaclass__ = type
147
148+import pytz
149+
150 from datetime import datetime
151 from django.db import models
152 from .package import Package
153@@ -54,6 +56,7 @@
154 def create_or_update_from_dict(cls, data):
155 date_created = datetime.strptime(
156 data['date_created'], "%Y-%m-%d %H:%M:%S")
157+ date_created = date_created.replace(tzinfo=pytz.utc)
158 try:
159 data_item = cls.objects.get(
160 package__name=data['package_name'],
161
162=== modified file 'src/recommender/models/recommendations.py'
163--- src/recommender/models/recommendations.py 2012-09-28 21:24:33 +0000
164+++ src/recommender/models/recommendations.py 2013-04-16 12:25:30 +0000
165@@ -29,6 +29,7 @@
166 'UserRecommendation',
167 'ImplicitFeedback',
168 ]
169+import pytz
170
171 from datetime import datetime
172
173@@ -48,7 +49,8 @@
174 rid = models.CharField(max_length=32, db_index=True)
175 data = models.TextField()
176 feedback = models.IntegerField(blank=True, null=True)
177- date_created = models.DateTimeField(default=datetime.utcnow)
178+ date_created = models.DateTimeField(
179+ default=lambda: datetime.now(pytz.utc))
180
181 class Meta:
182 app_label = 'recommender'
183
184=== modified file 'src/recommender/tests/test_api.py'
185--- src/recommender/tests/test_api.py 2013-02-18 19:42:50 +0000
186+++ src/recommender/tests/test_api.py 2013-04-16 12:25:30 +0000
187@@ -37,8 +37,6 @@
188
189 from mock import patch
190
191-from datetime import datetime, timedelta
192-
193 from django.conf import settings
194 from django.core.cache import cache
195 from django.core.urlresolvers import reverse
196
197=== modified file 'src/recommender/tests/test_commands.py'
198--- src/recommender/tests/test_commands.py 2013-02-25 12:35:09 +0000
199+++ src/recommender/tests/test_commands.py 2013-04-16 12:25:30 +0000
200@@ -31,6 +31,8 @@
201
202 import json
203 import sys
204+import pytz
205+
206 from cStringIO import StringIO
207 from datetime import date, datetime, timedelta
208
209@@ -212,7 +214,7 @@
210 class RecommendationCleanupTestCase(TransactionTestCase):
211
212 def test_running_command_removes_stale_app_recommendations(self):
213- month_ago = datetime.utcnow() - timedelta(days=31)
214+ month_ago = datetime.now(pytz.utc) - timedelta(days=31)
215 self.factory.make(3, AppRecommendation,
216 date_created=month_ago)
217 self.factory.make_one(AppRecommendation, feedback=1,
218@@ -225,7 +227,7 @@
219 self.assertEqual(2, AppRecommendation.objects.count())
220
221 def test_running_command_removes_stale_user_recommendations(self):
222- month_ago = datetime.utcnow() - timedelta(days=31)
223+ month_ago = datetime.now(pytz.utc) - timedelta(days=31)
224 self.factory.make(3, UserRecommendation,
225 date_created=month_ago)
226 self.factory.make_one(UserRecommendation, feedback=1,
227@@ -240,7 +242,7 @@
228 def test_running_command_takes_into_account_passed_number_of_days(self):
229 self.factory.make_one(
230 AppRecommendation,
231- date_created=(datetime.utcnow() - timedelta(days=11)))
232+ date_created=(datetime.now(pytz.utc) - timedelta(days=11)))
233
234 call_command('recommendation_cleanup', 10)
235
236
237=== modified file 'src/recommender/tests/test_managers.py'
238--- src/recommender/tests/test_managers.py 2013-02-19 14:07:25 +0000
239+++ src/recommender/tests/test_managers.py 2013-04-16 12:25:30 +0000
240@@ -17,6 +17,8 @@
241
242 """Tests for the recommender manager objects."""
243
244+import pytz
245+
246 from datetime import datetime
247 from django_factory import TestCase
248 from mock import patch
249@@ -52,8 +54,8 @@
250 (0.51, False),
251 ]
252 refresh_chance = 0.5
253- package = self.factory.make_one(Package, name='inkscape')
254- start = datetime.now()
255+ self.factory.make_one(Package, name='inkscape')
256+ start = datetime.now(pytz.utc)
257 with patch_settings(APPRECOMMENDATION_REFRESH_CHANCE=refresh_chance):
258 for case, refresh in cases:
259 mock_random.return_value = case
260
261=== modified file 'src/recommender/tests/test_models_data.py'
262--- src/recommender/tests/test_models_data.py 2012-02-06 07:54:27 +0000
263+++ src/recommender/tests/test_models_data.py 2013-04-16 12:25:30 +0000
264@@ -22,6 +22,7 @@
265 __all__ = [
266 'RatingsAndReviewsDataItemTestCase',
267 ]
268+import pytz
269
270 from datetime import timedelta
271
272@@ -47,6 +48,8 @@
273 data_item = method(
274 RatingsAndReviewsDataItem, package=package, language='en',
275 person_identification=person_identification)
276+ data_item.date_created = (
277+ data_item.date_created.replace(tzinfo=pytz.utc))
278 return data_item
279
280 def test_create_or_update_when_no_object_in_the_database(self):
281
282=== modified file 'src/recommender/urls.py'
283--- src/recommender/urls.py 2013-02-20 17:30:06 +0000
284+++ src/recommender/urls.py 2013-04-16 12:25:30 +0000
285@@ -17,8 +17,7 @@
286
287 """URL pattern declarations."""
288
289-from django.conf import settings
290-from django.conf.urls.defaults import (
291+from django.conf.urls import (
292 include,
293 patterns,
294 url,

Subscribers

People subscribed via source and target branches