← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~cjwatson/launchpad/twisted-19.2.1 into lp:launchpad

 

Colin Watson has proposed merging lp:~cjwatson/launchpad/twisted-19.2.1 into lp:launchpad.

Commit message:
Upgrade to Twisted 19.2.1.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/twisted-19.2.1/+merge/368533

We can no longer play quite so fast and loose with the header values passed to twisted.web.http.Request.setHeader as we previously did.

I don't *think* we're affected by the security vulnerability fixed in this release, but better safe than sorry.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~cjwatson/launchpad/twisted-19.2.1 into lp:launchpad.
=== modified file 'constraints.txt'
--- constraints.txt	2019-05-22 14:57:45 +0000
+++ constraints.txt	2019-06-07 10:08:22 +0000
@@ -221,7 +221,7 @@
 anyjson==0.3.3
 appdirs==1.4.3
 asn1crypto==0.23.0
-attrs==17.3.0
+attrs==19.1.0
 auditor==0.0.3
 auditorclient==0.0.4
 auditorfixture==0.0.7
@@ -241,7 +241,7 @@
 chardet==3.0.4
 constantly==15.1.0
 cookies==2.2.1
-cryptography==2.1.4
+cryptography==2.7
 cssselect==0.9.1
 cssutils==0.9.10
 d2to1==0.2.12
@@ -323,6 +323,7 @@
 # lp:~launchpad/pygpgme/pthread
 # lp1 Link against libgpgme-pthread for thread-safety.
 pygpgme==0.3+lp1
+PyHamcrest==1.9.0
 pyinotify==0.9.4
 pymacaroons==0.13.0
 PyNaCl==1.3.0
@@ -345,7 +346,7 @@
 requests-toolbelt==0.6.2
 responses==0.9.0
 scandir==1.7
-service-identity==17.0.0
+service-identity==18.1.0
 setproctitle==1.1.7
 setuptools-git==1.2
 setuptools-scm==1.15.7
@@ -364,7 +365,7 @@
 testscenarios==0.4
 timeline==0.0.3
 treq==18.6.0
-Twisted[conch,tls]==18.4.0
+Twisted[conch,tls]==19.2.1
 txAMQP==0.6.2
 txfixtures==0.4.2
 txpkgupload==0.2

=== modified file 'lib/lp/testing/swift/fakeswift.py'
--- lib/lp/testing/swift/fakeswift.py	2017-12-19 15:16:18 +0000
+++ lib/lp/testing/swift/fakeswift.py	2019-06-07 10:08:22 +0000
@@ -245,17 +245,19 @@
 
     def render_GET(self, request):
         """Render the response for a GET or HEAD request on this object."""
-        request.setHeader("Content-Type", self.content_type)
-        request.setHeader("ETag", self._etag)
+        if self.content_type is not None:
+            request.setHeader("Content-Type", self.content_type)
+        if self._etag is not None:
+            request.setHeader("ETag", self._etag)
         range = request.getHeader("Range")
         size = len(self.contents)
         if request.method == 'HEAD':
-            request.setHeader("Content-Length", size)
+            request.setHeader("Content-Length", str(size))
             return ""
         if range:
             ranges = parse_range_header(range)
             length = 0
-            if len(ranges)==1:
+            if len(ranges) == 1:
                 begin, end = ranges[0]
                 if begin is None:
                     request.setResponseCode(
@@ -276,7 +278,7 @@
                         'content-range',
                         'bytes %d-%d/%d' % (begin, end-1, size))
                 length = (end - begin)
-                request.setHeader("Content-Length", length)
+                request.setHeader("Content-Length", str(length))
                 request.setResponseCode(http.PARTIAL_CONTENT)
                 contents = io.BytesIO(self.contents[begin:end])
             else:


Follow ups