Skip to content
This repository was archived by the owner on Mar 15, 2018. It is now read-only.

Commit af66819

Browse files
author
Allen Short
committed
update to django 1.8
1 parent 71d94f9 commit af66819

File tree

42 files changed

+187
-135
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+187
-135
lines changed

Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ RUN yum install -y redis \
1212
openssl-devel \
1313
libffi-devel \
1414
libjpeg-devel \
15+
libxml2-devel \
16+
libxslt-devel \
1517
gcc-c++ \
1618
npm \
1719
wget \

mkt/api/middleware.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ def process_request(self, request):
8888
token_type=ACCESS_TOKEN,
8989
key=oauth_req.resource_owner_key).values_list(
9090
'user_id', flat=True)[0]
91-
request.user = UserProfile.objects.select_related(
92-
'user').get(pk=uid)
91+
request.user = UserProfile.objects.get(pk=uid)
9392
else:
9493
# This is 2-legged OAuth.
9594
log.info('Trying 2 legged OAuth')
@@ -107,8 +106,7 @@ def process_request(self, request):
107106
uid = Access.objects.filter(
108107
key=client_key).values_list(
109108
'user_id', flat=True)[0]
110-
request.user = UserProfile.objects.select_related(
111-
'user').get(pk=uid)
109+
request.user = UserProfile.objects.get(pk=uid)
112110

113111
# But you cannot have one of these roles.
114112
denied_groups = set(['Admins'])

mkt/api/oauth.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from urllib import urlencode
33

44
from django.http import HttpResponse, HttpResponseRedirect
5-
from django.shortcuts import render
65
from django.views.decorators.csrf import csrf_exempt
76

87
import commonware.log
@@ -12,6 +11,7 @@
1211

1312
from mkt.api.models import Access, Nonce, Token, REQUEST_TOKEN, ACCESS_TOKEN
1413
from mkt.site.decorators import login_required
14+
from mkt.site.utils import render
1515

1616

1717
DUMMY_CLIENT_KEY = u'DummyOAuthClientKeyString'

mkt/commonplace/management/commands/deploy_build_id.py

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414

1515
class Command(BaseCommand):
16+
use_argparse = False
17+
1618
def handle(self, *args, **kw):
1719
if len(args) < 1:
1820
sys.stdout.write('Pass repo name as arg (e.g., fireplace).\n')

mkt/commonplace/templates/commonplace/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html{% if appcache %} manifest="{{ url('commonplace.appcache')|urlparams(repo=repo) }}"{% endif %} lang="{{ LANG }}" dir="{{ DIR }}">
2+
<html{% if appcache %} manifest="{{ url('commonplace.appcache')|urlparams(repo=repo) }}"{% endif %} lang="{{ LANG }}" dir="{{ langdir }}">
33
<head>
44
<meta charset="utf-8">
55
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">

mkt/commonplace/views.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from django.conf import settings
66
from django.core.urlresolvers import resolve
77
from django.http import Http404
8-
from django.shortcuts import render
98
from django.utils import translation
109
from django.views.decorators.cache import cache_control
1110
from django.views.decorators.gzip import gzip_page
@@ -17,6 +16,7 @@
1716
from mkt.commonplace.models import DeployBuildId
1817
from mkt.regions.middleware import RegionMiddleware
1918
from mkt.site.storage_utils import local_storage
19+
from mkt.site.utils import render
2020
from mkt.webapps.models import Webapp
2121

2222

@@ -54,7 +54,7 @@ def commonplace(request, repo, **kwargs):
5454
ctx = {
5555
'BUILD_ID': BUILD_ID,
5656
'LANG': request.LANG,
57-
'DIR': lang_dir(request.LANG),
57+
'langdir': lang_dir(request.LANG),
5858
'include_splash': include_splash,
5959
'repo': repo,
6060
'robots': 'googlebot' in ua,

mkt/developers/forms.py

+2
Original file line numberDiff line numberDiff line change
@@ -562,9 +562,11 @@ def _post_clean(self):
562562
if 'slug' in data:
563563
data['app_slug'] = data.pop('slug')
564564
self._meta.fields[slug_idx] = 'app_slug'
565+
self.fields['app_slug'] = self.fields['slug']
565566
super(AppFormBasic, self)._post_clean()
566567
finally:
567568
self._meta.fields[slug_idx] = 'slug'
569+
del self.fields['app_slug']
568570

569571
def clean_slug(self):
570572
slug = self.cleaned_data['slug']

mkt/developers/tests/test_views_payments.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -228,19 +228,18 @@ def test_origin(self):
228228
div = doc('#in-app-products')
229229

230230
url = div.attr('data-list-url')
231-
assert url.endswith('http%3A%2F%2Ff.c/in-app/'), (
231+
assert url.endswith('http:%2F%2Ff.c/in-app/'), (
232232
'Unexpected URL: {u}'.format(u=url))
233233

234234
url = div.attr('data-detail-url-format')
235-
assert url.endswith('http%3A%2F%2Ff.c/in-app/%7Bguid%7D/'), (
235+
assert url.endswith('http:%2F%2Ff.c/in-app/%7Bguid%7D/'), (
236236
'Unexpected URL: {u}'.format(u=url))
237237

238238
def test_no_declared_origin(self):
239239
self.app.update(is_packaged=True, app_domain=None)
240240
doc = pq(self.get().content)
241241
div = doc('#in-app-products')
242-
243-
mkt_origin = 'marketplace%3A{}'.format(self.app.guid)
242+
mkt_origin = 'marketplace:{}'.format(self.app.guid)
244243
url = div.attr('data-list-url')
245244
assert url.endswith('{}/in-app/'.format(mkt_origin)), (
246245
'Unexpected URL: {u}'.format(u=url))

mkt/developers/views.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from django.conf import settings
1313
from django.core.exceptions import PermissionDenied
1414
from django.core.urlresolvers import reverse
15-
from django.shortcuts import get_object_or_404, redirect, render
15+
from django.shortcuts import get_object_or_404, redirect
1616
from django.views.decorators.cache import never_cache
1717
from django.views.decorators.csrf import csrf_exempt
1818
from django.views.decorators.http import require_POST
@@ -60,7 +60,7 @@
6060
from mkt.site.decorators import (
6161
json_view, login_required, permission_required, use_master)
6262
from mkt.site.storage_utils import public_storage
63-
from mkt.site.utils import escape_all, paginate
63+
from mkt.site.utils import escape_all, paginate, render
6464
from mkt.submit.forms import AppFeaturesForm, NewWebappVersionForm
6565
from mkt.translations.query import order_by_translation
6666
from mkt.users.models import UserProfile
@@ -770,7 +770,6 @@ def addons_section(request, addon_id, addon, section, editable=False):
770770
'support': AppFormSupport,
771771
'technical': AppFormTechnical,
772772
'admin': forms.AdminSettingsForm}
773-
774773
is_dev = acl.check_addon_ownership(request, addon, dev=True)
775774

776775
if section not in models:
@@ -827,7 +826,6 @@ def addons_section(request, addon_id, addon, section, editable=False):
827826
for additional_form in (appfeatures_form, cat_form, version_form):
828827
if additional_form:
829828
all_forms.append(additional_form)
830-
831829
if all(not f or f.is_valid() for f in all_forms):
832830
if cat_form:
833831
cat_form.save()

mkt/developers/views_payments.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from django.conf import settings
77
from django.contrib import messages
88
from django.core.urlresolvers import reverse
9-
from django.shortcuts import get_object_or_404, redirect, render
9+
from django.shortcuts import get_object_or_404, redirect
1010
from django.views.decorators.http import require_POST
1111

1212
import commonware
@@ -32,6 +32,7 @@
3232
from mkt.inapp.serializers import InAppProductForm
3333
from mkt.prices.models import Price
3434
from mkt.site.decorators import json_view, login_required, use_master
35+
from mkt.site.utils import render
3536
from mkt.webapps.models import Webapp
3637

3738

mkt/ecosystem/views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
# -*- coding: utf-8 -*-
22
from django.conf import settings
33
from django.contrib import messages
4-
from django.shortcuts import redirect, render
4+
from django.shortcuts import redirect
55

66
import basket
77
import commonware.log
88
from session_csrf import anonymous_csrf
99
from django.utils.translation import ugettext as _
1010

1111
from mkt.developers.forms import DevNewsletterForm
12+
from mkt.site.utils import render
1213

1314

1415
log = commonware.log.getLogger('z.ecosystem')

mkt/extensions/tests/test_views.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,11 @@ def setUp(self):
359359
self.extension = Extension.objects.create()
360360
self.user = UserProfile.objects.get(pk=2519)
361361
self.block_url = reverse(
362-
'api-v2:extension-block', kwargs={'pk': self.extension.slug})
362+
'api-v2:extension-block', kwargs={'pk': self.extension.slug}
363+
).encode('utf-8')
363364
self.unblock_url = reverse(
364-
'api-v2:extension-unblock', kwargs={'pk': self.extension.slug})
365+
'api-v2:extension-unblock', kwargs={'pk': self.extension.slug}
366+
).encode('utf-8')
365367

366368
def test_cors(self):
367369
self.grant_permission(self.user, 'Admin:%')
@@ -533,7 +535,7 @@ def test_detail_anonymous_rejected(self):
533535

534536
def test_detail_with_slug(self):
535537
self.url = reverse('api-v2:extension-detail',
536-
kwargs={'pk': self.extension.slug})
538+
kwargs={'pk': self.extension.slug}).encode('utf-8')
537539
self.test_detail_anonymous()
538540

539541
def test_detail_logged_in(self):
@@ -662,7 +664,7 @@ def test_patch_with_rights(self):
662664
def test_patch_with_rights_with_slug(self):
663665
# Changes to the slug are made even if you used the slug in the URL.
664666
self.url = reverse('api-v2:extension-detail',
665-
kwargs={'pk': self.extension.slug})
667+
kwargs={'pk': self.extension.slug}).encode('utf-8')
666668
self.extension.authors.add(self.user)
667669
response = self.client.patch(self.url, json.dumps({'slug': u'làlé'}))
668670
eq_(response.status_code, 200)
@@ -1164,7 +1166,7 @@ def test_detail_logged_in_with_rights(self):
11641166

11651167
def test_detail_with_slug(self):
11661168
self.url = reverse('api-v2:extension-queue-detail',
1167-
kwargs={'pk': self.extension.slug})
1169+
kwargs={'pk': self.extension.slug}).encode('utf-8')
11681170
self.test_detail_logged_in_with_rights()
11691171

11701172
def test_detail_logged_in_with_rights_deleted(self):

mkt/files/views.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from django import http, shortcuts
44
from django.conf import settings
55
from django.core.urlresolvers import reverse
6-
from django.shortcuts import render
76
from django.views.decorators.cache import never_cache
87
from django.views.decorators.csrf import csrf_exempt
98
from django.views.decorators.http import condition
@@ -20,7 +19,7 @@
2019
webapp_file_view_token)
2120
from mkt.files.tasks import extract_file
2221
from mkt.site.decorators import json_view
23-
from mkt.site.utils import get_file_response
22+
from mkt.site.utils import get_file_response, render
2423

2524

2625
log = commonware.log.getLogger('z.addons')

mkt/langpacks/tests/test_views.py

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# -*- coding: utf-8 -*-
22
import hashlib
33
import json
4+
import uuid
45

56
from django.conf import settings
67
from django.core.urlresolvers import reverse
@@ -222,31 +223,34 @@ def test_upload_does_not_exist(self):
222223
eq_(response.json, {u'upload': [u'No upload found.']})
223224

224225
def test_dont_own_the_upload(self):
225-
FileUpload.objects.create(uuid='my-uuid', user=None, valid=True)
226+
myid = uuid.uuid4().hex
227+
FileUpload.objects.create(uuid=myid, user=None, valid=True)
226228
self.grant_permission(self.user, 'LangPacks:Admin')
227229

228230
response = self.client.post(self.list_url, data=json.dumps({
229-
'upload': 'my-uuid'}))
231+
'upload': myid}))
230232
eq_(response.status_code, 400)
231233
eq_(response.json, {u'upload': [u'No upload found.']})
232234

233235
def test_invalid_upload(self):
234-
FileUpload.objects.create(uuid='my-uuid', valid=False, user=self.user)
236+
myid = uuid.uuid4().hex
237+
FileUpload.objects.create(uuid=myid, valid=False, user=self.user)
235238
self.grant_permission(self.user, 'LangPacks:Admin')
236239

237240
response = self.client.post(self.list_url, data=json.dumps({
238-
'upload': 'my-uuid'}))
241+
'upload': myid}))
239242
eq_(response.status_code, 400)
240243
eq_(response.json, {u'upload': [u'Upload not valid.']})
241244

242245
@patch('mkt.langpacks.models.LangPack.from_upload')
243246
def test_errors_returned_by_from_upload(self, mock_from_upload):
244247
mock_from_upload.side_effect = ValidationError('foo bar')
245-
FileUpload.objects.create(uuid='my-uuid', valid=True, user=self.user)
248+
myid = uuid.uuid4().hex
249+
FileUpload.objects.create(uuid=myid, valid=True, user=self.user)
246250
self.grant_permission(self.user, 'LangPacks:Admin')
247251

248252
response = self.client.post(self.list_url, data=json.dumps({
249-
'upload': 'my-uuid'}))
253+
'upload': myid}))
250254
eq_(response.status_code, 400)
251255
eq_(response.json, {u'detail': [u'foo bar']})
252256

@@ -336,31 +340,34 @@ def test_upload_does_not_exist(self):
336340
eq_(response.json, {u'upload': [u'No upload found.']})
337341

338342
def test_dont_own_the_upload(self):
339-
FileUpload.objects.create(uuid='my-uuid', user=None, valid=True)
343+
myid = uuid.uuid4().hex
344+
FileUpload.objects.create(uuid=myid, user=None, valid=True)
340345
self.grant_permission(self.user, 'LangPacks:Admin')
341346

342347
response = self.client.put(self.detail_url, data=json.dumps({
343-
'upload': 'my-uuid'}))
348+
'upload': myid}))
344349
eq_(response.status_code, 400)
345350
eq_(response.json, {u'upload': [u'No upload found.']})
346351

347352
def test_invalid_upload(self):
348-
FileUpload.objects.create(uuid='my-uuid', valid=False, user=self.user)
353+
myid = uuid.uuid4().hex
354+
FileUpload.objects.create(uuid=myid, valid=False, user=self.user)
349355
self.grant_permission(self.user, 'LangPacks:Admin')
350356

351357
response = self.client.put(self.detail_url, data=json.dumps({
352-
'upload': 'my-uuid'}))
358+
'upload': myid}))
353359
eq_(response.status_code, 400)
354360
eq_(response.json, {u'upload': [u'Upload not valid.']})
355361

356362
@patch('mkt.langpacks.models.LangPack.from_upload')
357363
def test_errors_returned_by_from_upload(self, mock_from_upload):
358364
mock_from_upload.side_effect = ValidationError('foo bar')
359-
FileUpload.objects.create(uuid='my-uuid', valid=True, user=self.user)
365+
myid = uuid.uuid4().hex
366+
FileUpload.objects.create(uuid=myid, valid=True, user=self.user)
360367
self.grant_permission(self.user, 'LangPacks:Admin')
361368

362369
response = self.client.put(self.detail_url, data=json.dumps({
363-
'upload': 'my-uuid'}))
370+
'upload': myid}))
364371
eq_(response.status_code, 400)
365372
eq_(response.json, {u'detail': [u'foo bar']})
366373

mkt/lookup/views.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from django.db import connection
1010
from django.db.models import Count, Q, Sum
1111
from django.http import Http404, HttpResponseRedirect
12-
from django.shortcuts import get_object_or_404, redirect, render
12+
from django.shortcuts import get_object_or_404, redirect
1313
from django.views.decorators.http import require_POST
1414

1515
import commonware.log
@@ -42,7 +42,7 @@
4242
from mkt.search.filters import SearchQueryFilter
4343
from mkt.search.views import SearchView
4444
from mkt.site.decorators import json_view, permission_required
45-
from mkt.site.utils import paginate
45+
from mkt.site.utils import paginate, render
4646
from mkt.tags.models import attach_tags
4747
from mkt.users.models import UserProfile
4848
from mkt.webapps.models import Webapp

mkt/monolith/serializers.py

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
class MonolithSerializer(serializers.ModelSerializer):
88
value = serializers.JSONField()
9+
recorded = serializers.DateTimeField(format='%Y-%m-%d')
910

1011
class Meta:
1112
model = MonolithRecord

mkt/prices/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ class AddonPaymentData(ModelBase):
448448
# Basic.
449449
first_name = models.CharField(max_length=255, blank=True)
450450
last_name = models.CharField(max_length=255, blank=True)
451-
email = models.EmailField(blank=True)
451+
email = models.EmailField(blank=True, max_length=75)
452452
full_name = models.CharField(max_length=255, blank=True)
453453
business_name = models.CharField(max_length=255, blank=True)
454454
country = models.CharField(max_length=64)

mkt/prices/tests/test_models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def test_no_region(self):
8787
eq_(Price.objects.get(pk=2).get_price_locale(regions=[HUN.id]), None)
8888

8989
def test_fallback(self):
90-
translation.activate('foo')
90+
translation.activate('dbg')
9191
eq_(Price.objects.get(pk=1).get_price(regions=[RESTOFWORLD.id]),
9292
Decimal('0.99'))
9393
eq_(Price.objects.get(pk=1).get_price_locale(regions=[RESTOFWORLD.id]),

mkt/ratings/tasks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def addon_review_aggregates(*addons, **kw):
4747
Review.objects.valid().using(using)
4848
.filter(addon__in=addons, is_latest=True)
4949
.values_list('addon')
50-
.annotate(Avg('rating'), Count('addon')))
50+
.annotate(Avg('rating'), Count('addon')).order_by())
5151
for addon in addon_objs:
5252
rating, reviews = stats.get(addon.id, [0, 0])
5353
addon.update(total_reviews=reviews, average_rating=rating)

0 commit comments

Comments
 (0)