Skip to content

Commit 5d6f203

Browse files
committed
Merge pull request popen2#49 from dgabrielson/master
Changes for recent Django versions.
2 parents 1356963 + 2b08d0c commit 5d6f203

File tree

5 files changed

+24
-13
lines changed

5 files changed

+24
-13
lines changed

djangopypi2/apps/pypi_frontend/distutils_request.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ def parse_distutils_request(request):
4848
One portion of this is the end marker: \r\n\r\n (what Django expects)
4949
versus \n\n (what distutils is sending).
5050
"""
51+
# request.raw_post_data has been renamed request.body
52+
# see: https://code.djangoproject.com/ticket/17323
5153
try:
52-
sep = request.raw_post_data.splitlines()[1]
54+
sep = request.body.splitlines()[1]
5355
except:
5456
raise ValueError('Invalid post data')
5557

@@ -59,18 +61,27 @@ def parse_distutils_request(request):
5961
except Exception, e:
6062
pass
6163

62-
for part in filter(lambda e: e.strip(), request.raw_post_data.split(sep)):
64+
for part in filter(lambda e: e.strip(), request.body.split(sep)):
6365
try:
6466
header, content = part.lstrip().split('\n',1)
6567
except Exception, e:
6668
continue
67-
69+
70+
# normalize line endings:
71+
# newer distutils can submit \r\n end-of-line marks.
72+
if header.endswith('\r'):
73+
header = header[:-1]
74+
75+
if content.startswith('\r'):
76+
content = content[1:]
6877
if content.startswith('\n'):
6978
content = content[1:]
7079

7180
if content.endswith('\n'):
7281
content = content[:-1]
73-
82+
if content.endswith('\r'):
83+
content = content[:-1]
84+
7485
headers = _parse_header(header)
7586

7687
if "name" not in headers:

djangopypi2/apps/pypi_frontend/distutils_views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ def _handle_uploads(request, release):
197197

198198
return 'upload accepted'
199199

200-
def list_classifiers(request, mimetype='text/plain'):
201-
response = HttpResponse(mimetype=mimetype)
200+
def list_classifiers(request, content_type='text/plain'):
201+
response = HttpResponse(content_type=content_type)
202202
response.write(u'\n'.join(map(lambda c: c.name,Classifier.objects.all())))
203203
return response
204204

djangopypi2/apps/pypi_frontend/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def simple_details(request, package_name):
5555
return HttpResponseRedirect(reverse('djangopypi2-simple-package-info', kwargs=dict(package_name=package.name)))
5656
return render_to_response('pypi_frontend/package_detail_simple.html',
5757
context_instance=RequestContext(request, dict(package=package)),
58-
mimetype='text/html')
58+
content_type='text/html')
5959

6060
@_mirror_if_not_found('pypi')
6161
def package_details(request, package_name):
@@ -67,10 +67,10 @@ def package_doap(request, package_name):
6767
package = get_object_or_404(Package, name=package_name)
6868
return render_to_response('pypi_frontend/package_doap.xml',
6969
context_instance=RequestContext(request, dict(package=package)),
70-
mimetype='text/xml')
70+
content_type='text/xml')
7171

7272
def release_doap(request, package_name, version):
7373
release = get_object_or_404(Release, package__name=package_name, version=version)
7474
return render_to_response('pypi_frontend/release_doap.xml',
7575
context_instance=RequestContext(request, dict(release=release)),
76-
mimetype='text/xml')
76+
content_type='text/xml')

djangopypi2/apps/pypi_packages/feeds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def __call__(self, request, *args, **kwargs):
1313
except ObjectDoesNotExist:
1414
raise Http404('Feed object does not exist.')
1515
feedgen = self.get_feed(obj, request)
16-
response = HttpResponse(mimetype=feedgen.mime_type)
16+
response = HttpResponse(content_type=feedgen.mime_type)
1717
feedgen.write(response, 'utf-8')
1818
return response
1919

djangopypi2/apps/pypi_packages/release_views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def manage_metadata(request, package_name, version):
9393
'pypi_packages/release_manage.html',
9494
dict(release=release, form=form),
9595
context_instance = RequestContext(request),
96-
mimetype = settings.DEFAULT_CONTENT_TYPE,
96+
content_type = settings.DEFAULT_CONTENT_TYPE,
9797
)
9898

9999
@user_maintains_package()
@@ -115,7 +115,7 @@ def manage_files(request, package_name, version):
115115
'pypi_packages/release_manage_files.html',
116116
dict(release=release, formset=formset, upload_form=DistributionUploadForm()),
117117
context_instance = RequestContext(request),
118-
mimetype = settings.DEFAULT_CONTENT_TYPE,
118+
content_type = settings.DEFAULT_CONTENT_TYPE,
119119
)
120120

121121
@user_maintains_package()
@@ -138,5 +138,5 @@ def upload_file(request, package_name, version):
138138
'pypi_packages/release_upload_file.html',
139139
dict(release=release, form=form),
140140
context_instance = RequestContext(request),
141-
mimetype = settings.DEFAULT_CONTENT_TYPE,
141+
content_type = settings.DEFAULT_CONTENT_TYPE,
142142
)

0 commit comments

Comments
 (0)