20257: Fix test
authorPeter Amstutz <peter.amstutz@curii.com>
Wed, 19 Apr 2023 21:59:18 +0000 (17:59 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Wed, 19 Apr 2023 21:59:18 +0000 (17:59 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

sdk/python/arvados/http_import.py
sdk/python/tests/test_http.py

index 91185d974257cb96474c94e848023da44462bf08..fef6d6719eb5ca805198c3fff11250b52b47b428 100644 (file)
@@ -173,6 +173,9 @@ class CurlDownloader(PyCurlHelper):
         else:
             self.name = self.parsedurl.path.split("/")[-1]
 
+        # Can't call curl.getinfo(pycurl.RESPONSE_CODE) until
+        # perform() is done but we need to know the status before that
+        # so we have to parse the status line ourselves.
         mt = re.match(r'^HTTP\/(\d(\.\d)?) ([1-5]\d\d) ([^\r\n\x00-\x08\x0b\x0c\x0e-\x1f\x7f]*)\r\n$', self._headers["x-status-line"])
         code = int(mt.group(3))
 
index fa61e9ed8ba1a0345e85e580665c586412cca7ac..296c1c654f1023f9635a388ef99a9f2a1be7a441 100644 (file)
@@ -60,9 +60,9 @@ class CurlMock:
         self.perform_was_called = True
 
         if self.head:
-            self.headerfn("HTTP/1.1 {} Status".format(self.head_response))
+            self.headerfn("HTTP/1.1 {} Status\r\n".format(self.head_response))
         else:
-            self.headerfn("HTTP/1.1 {} Status".format(self.get_response))
+            self.headerfn("HTTP/1.1 {} Status\r\n".format(self.get_response))
 
         for k,v in self.headers.items():
             self.headerfn("%s: %s" % (k,v))