X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8f737e30667628842cb8f85b1b2d7851536099f8..da5858d5f794c14cf00b830166bb34b1bcd79ba5:/sdk/python/tests/test_http.py diff --git a/sdk/python/tests/test_http.py b/sdk/python/tests/test_http.py index 44d0d2599a..de63719453 100644 --- a/sdk/python/tests/test_http.py +++ b/sdk/python/tests/test_http.py @@ -11,19 +11,18 @@ import functools import hashlib import json import logging -import mock import sys import unittest import datetime +from unittest import mock + import arvados import arvados.collection import arvados.keep import pycurl -from arvados.http_import import http_to_keep - -import ruamel.yaml as yaml +from arvados.http_to_keep import http_to_keep # Turns out there was already "FakeCurl" that serves the same purpose, but # I wrote this before I knew that. Whoops. @@ -59,6 +58,11 @@ class CurlMock: def perform(self): self.perform_was_called = True + if self.head: + self.headerfn("HTTP/1.1 {} Status\r\n".format(self.head_response)) + else: + 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)) @@ -92,7 +96,9 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 15) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz3', 'http://example.com/file1.txt', + datetime.datetime(2018, 5, 15, 0, 0))) assert mockobj.url == b"http://example.com/file1.txt" assert mockobj.perform_was_called is True @@ -141,7 +147,9 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 16) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz3', 'http://example.com/file1.txt', + datetime.datetime(2018, 5, 16, 0, 0))) assert mockobj.perform_was_called is False @@ -180,7 +188,8 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 16) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", 'zzzzz-4zz18-zzzzzzzzzzzzzz3', + 'http://example.com/file1.txt', datetime.datetime(2018, 5, 16, 0, 0))) assert mockobj.perform_was_called is False @@ -219,7 +228,10 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 17) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999997+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999997+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz4', + 'http://example.com/file1.txt', datetime.datetime(2018, 5, 17, 0, 0))) + assert mockobj.url == b"http://example.com/file1.txt" assert mockobj.perform_was_called is True @@ -273,7 +285,9 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 17) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz3', 'http://example.com/file1.txt', + datetime.datetime(2018, 5, 17, 0, 0))) cm.open.assert_not_called() @@ -310,7 +324,10 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 15) r = http_to_keep(api, None, "http://example.com/download?fn=/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz3', + 'http://example.com/download?fn=/file1.txt', + datetime.datetime(2018, 5, 15, 0, 0))) assert mockobj.url == b"http://example.com/download?fn=/file1.txt" @@ -364,7 +381,9 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 17) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", + 'zzzzz-4zz18-zzzzzzzzzzzzzz3', 'http://example.com/file1.txt', + datetime.datetime(2018, 5, 17, 0, 0))) print(mockobj.req_headers) assert mockobj.req_headers == ["Accept: application/octet-stream", "If-None-Match: \"123456\""] @@ -413,7 +432,8 @@ class TestHttpToKeep(unittest.TestCase): utcnow.return_value = datetime.datetime(2018, 5, 17) r = http_to_keep(api, None, "http://example.com/file1.txt", utcnow=utcnow, prefer_cached_downloads=True) - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", 'zzzzz-4zz18-zzzzzzzzzzzzzz3', + 'http://example.com/file1.txt', datetime.datetime(2018, 5, 17, 0, 0))) assert mockobj.perform_was_called is False cm.open.assert_not_called() @@ -460,7 +480,8 @@ class TestHttpToKeep(unittest.TestCase): r = http_to_keep(api, None, "http://example.com/file1.txt?KeyId=123&Signature=456&Expires=789", utcnow=utcnow, varying_url_params="KeyId,Signature,Expires") - self.assertEqual(r, "keep:99999999999999999999999999999998+99/file1.txt") + self.assertEqual(r, ("99999999999999999999999999999998+99", "file1.txt", 'zzzzz-4zz18-zzzzzzzzzzzzzz3', + 'http://example.com/file1.txt', datetime.datetime(2018, 5, 17, 0, 0))) assert mockobj.perform_was_called is True cm.open.assert_not_called()