Hello community,

here is the log from the commit of package python-requests-file for 
openSUSE:Factory checked in at 2020-08-06 10:40:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-requests-file (Old)
 and      /work/SRC/openSUSE:Factory/.python-requests-file.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-requests-file"

Thu Aug  6 10:40:50 2020 rev:3 rq:824572 version:1.5.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-requests-file/python-requests-file.changes    
    2018-12-24 11:43:13.561354559 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-requests-file.new.3399/python-requests-file.changes
      2020-08-06 10:41:23.370098081 +0200
@@ -1,0 +2,10 @@
+Mon Aug  3 10:42:35 UTC 2020 - Marketa Calabkova <mcalabk...@suse.com>
+
+- update to 1.5.1
+  * Fix python 2.7 compatibility
+  * Rename test file for pytest
+  * Add tests via github actions
+  * Format code with black
+  * Add set_content_length flag to disable on demand setting Content-Length
+
+-------------------------------------------------------------------

Old:
----
  requests-file-1.4.3.tar.gz

New:
----
  requests-file-1.5.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-requests-file.spec ++++++
--- /var/tmp/diff_new_pack.cFHoCu/_old  2020-08-06 10:41:34.194103502 +0200
+++ /var/tmp/diff_new_pack.cFHoCu/_new  2020-08-06 10:41:34.198103504 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-requests-file
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,12 +19,12 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %bcond_without tests
 Name:           python-requests-file
-Version:        1.4.3
+Version:        1.5.1
 Release:        0
 Summary:        File transport adapter for Requests
 License:        Apache-2.0
 Group:          Development/Languages/Python
-URL:            http://github.com/dashea/requests-file
+URL:            https://github.com/dashea/requests-file
 Source:         
https://files.pythonhosted.org/packages/source/r/requests-file/requests-file-%{version}.tar.gz
 BuildRequires:  %{python_module requests}
 BuildRequires:  %{python_module setuptools}
@@ -50,7 +50,7 @@
 
 %if %{with tests}
 %check
-%python_exec setup.py test
+%python_exec -m unittest discover tests
 %endif
 
 %files %{python_files}

++++++ requests-file-1.4.3.tar.gz -> requests-file-1.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/PKG-INFO 
new/requests-file-1.5.1/PKG-INFO
--- old/requests-file-1.4.3/PKG-INFO    2018-01-02 22:15:28.000000000 +0100
+++ new/requests-file-1.5.1/PKG-INFO    2020-04-25 15:55:08.913671000 +0200
@@ -1,12 +1,11 @@
 Metadata-Version: 1.1
 Name: requests-file
-Version: 1.4.3
+Version: 1.5.1
 Summary: File transport adapter for Requests
 Home-page: http://github.com/dashea/requests-file
 Author: David Shea
-Author-email: ds...@redhat.com
+Author-email: reallylongw...@gmail.com
 License: Apache 2.0
-Description-Content-Type: UNKNOWN
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 3 - Alpha
@@ -14,4 +13,4 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/requests_file.egg-info/PKG-INFO 
new/requests-file-1.5.1/requests_file.egg-info/PKG-INFO
--- old/requests-file-1.4.3/requests_file.egg-info/PKG-INFO     2018-01-02 
22:15:28.000000000 +0100
+++ new/requests-file-1.5.1/requests_file.egg-info/PKG-INFO     2020-04-25 
15:55:08.000000000 +0200
@@ -1,12 +1,11 @@
 Metadata-Version: 1.1
 Name: requests-file
-Version: 1.4.3
+Version: 1.5.1
 Summary: File transport adapter for Requests
 Home-page: http://github.com/dashea/requests-file
 Author: David Shea
-Author-email: ds...@redhat.com
+Author-email: reallylongw...@gmail.com
 License: Apache 2.0
-Description-Content-Type: UNKNOWN
 Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 3 - Alpha
@@ -14,4 +13,4 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/requests-file-1.4.3/requests_file.egg-info/SOURCES.txt 
new/requests-file-1.5.1/requests_file.egg-info/SOURCES.txt
--- old/requests-file-1.4.3/requests_file.egg-info/SOURCES.txt  2018-01-02 
22:15:28.000000000 +0100
+++ new/requests-file-1.5.1/requests_file.egg-info/SOURCES.txt  2020-04-25 
15:55:08.000000000 +0200
@@ -10,4 +10,4 @@
 requests_file.egg-info/dependency_links.txt
 requests_file.egg-info/requires.txt
 requests_file.egg-info/top_level.txt
-tests/__init__.py
\ No newline at end of file
+tests/test_requests_file.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/requests_file.py 
new/requests-file-1.5.1/requests_file.py
--- old/requests-file-1.4.3/requests_file.py    2018-01-02 21:34:47.000000000 
+0100
+++ new/requests-file-1.5.1/requests_file.py    2020-04-25 15:49:02.000000000 
+0200
@@ -9,7 +9,12 @@
 
 from six import BytesIO
 
+
 class FileAdapter(BaseAdapter):
+    def __init__(self, set_content_length=True):
+        super(FileAdapter, self).__init__()
+        self._set_content_length = set_content_length
+
     def send(self, request, **kwargs):
         """ Wraps a file, described in request, in a Response object.
 
@@ -36,7 +41,7 @@
         try:
             # Split the path on / (the URL directory separator) and decode any
             # % escapes in the parts
-            path_parts = [unquote(p) for p in url_parts.path.split('/')]
+            path_parts = [unquote(p) for p in url_parts.path.split("/")]
 
             # Strip out the leading empty parts created from the leading /'s
             while path_parts and not path_parts[0]:
@@ -51,16 +56,17 @@
             # so that a directory separator can correctly be added to the real
             # path, and remove any empty path parts between the drive and the 
path.
             # Assume that a part ending with : or | (legacy) is a drive.
-            if path_parts and (path_parts[0].endswith('|') or
-                               path_parts[0].endswith(':')):
+            if path_parts and (
+                path_parts[0].endswith("|") or path_parts[0].endswith(":")
+            ):
                 path_drive = path_parts.pop(0)
-                if path_drive.endswith('|'):
-                    path_drive = path_drive[:-1] + ':'
+                if path_drive.endswith("|"):
+                    path_drive = path_drive[:-1] + ":"
 
                 while path_parts and not path_parts[0]:
                     path_parts.pop(0)
             else:
-                path_drive = ''
+                path_drive = ""
 
             # Try to put the path back together
             # Join the drive back in, and stick os.sep in front of the path to
@@ -91,7 +97,8 @@
             # representation of the exception into a byte stream
             resp_str = str(e).encode(locale.getpreferredencoding(False))
             resp.raw = BytesIO(resp_str)
-            resp.headers['Content-Length'] = len(resp_str)
+            if self._set_content_length:
+                resp.headers["Content-Length"] = len(resp_str)
 
             # Add release_conn to the BytesIO object
             resp.raw.release_conn = resp.raw.close
@@ -101,8 +108,8 @@
 
             # If it's a regular file, set the Content-Length
             resp_stat = os.fstat(resp.raw.fileno())
-            if stat.S_ISREG(resp_stat.st_mode):
-                resp.headers['Content-Length'] = resp_stat.st_size
+            if stat.S_ISREG(resp_stat.st_mode) and self._set_content_length:
+                resp.headers["Content-Length"] = resp_stat.st_size
 
         return resp
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/setup.py 
new/requests-file-1.5.1/setup.py
--- old/requests-file-1.4.3/setup.py    2018-01-02 22:14:12.000000000 +0100
+++ new/requests-file-1.5.1/setup.py    2020-04-25 15:51:47.000000000 +0200
@@ -1,7 +1,5 @@
 #!/usr/bin/env python
 
-import os
-
 try:
     from setuptools import setup
 except ImportError:
@@ -10,21 +8,22 @@
 requires = [line.strip() for line in open("requirements.txt").readlines()]
 
 setup(
-    name='requests-file',
-    version='1.4.3',
-    description='File transport adapter for Requests',
-    author='David Shea',
-    author_email='ds...@redhat.com',
-    url='http://github.com/dashea/requests-file',
-    py_modules=['requests_file'],
+    name="requests-file",
+    version="1.5.1",
+    description="File transport adapter for Requests",
+    author="David Shea",
+    author_email="reallylongw...@gmail.com",
+    url="http://github.com/dashea/requests-file";,
+    py_modules=["requests_file"],
     install_requires=requires,
-    license='Apache 2.0',
-    test_suite='tests',
-    classifiers=['Development Status :: 3 - Alpha',
-                 'Environment :: Plugins',
-                 'Intended Audience :: Developers',
-                 'License :: OSI Approved :: Apache Software License',
-                 'Programming Language :: Python :: 2.7',
-                 'Programming Language :: Python :: 3.4'
-                 ]
-    )
+    license="Apache 2.0",
+    test_suite="tests",
+    classifiers=[
+        "Development Status :: 3 - Alpha",
+        "Environment :: Plugins",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: Apache Software License",
+        "Programming Language :: Python :: 2.7",
+        "Programming Language :: Python :: 3",
+    ],
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/tests/__init__.py 
new/requests-file-1.5.1/tests/__init__.py
--- old/requests-file-1.4.3/tests/__init__.py   2018-01-02 21:47:14.000000000 
+0100
+++ new/requests-file-1.5.1/tests/__init__.py   1970-01-01 01:00:00.000000000 
+0100
@@ -1,168 +0,0 @@
-import unittest
-import requests
-from requests_file import FileAdapter
-
-import os, stat
-import tempfile
-import shutil
-import platform
-
-class FileRequestTestCase(unittest.TestCase):
-    def setUp(self):
-        self._session = requests.Session()
-        self._session.mount("file://", FileAdapter())
-
-    def _pathToURL(self, path):
-        """Convert a filesystem path to a URL path"""
-        urldrive, urlpath = os.path.splitdrive(path)
-
-        # Split the path on the os spearator and recombine it with / as the
-        # separator. There probably aren't any OS's that allow / as a path
-        # component, but just in case, encode any remaining /'s.
-        urlsplit = (part.replace('/', '%2F') for part in urlpath.split(os.sep))
-        urlpath = "/".join(urlsplit)
-
-        # Encode /'s in the drive for the imaginary case where that can be a 
thing
-        urldrive = urldrive.replace('/', '%2F')
-
-        # Add the leading /. If there is a drive component, this needs to be
-        # placed before the drive.
-        urldrive = "/" + urldrive
-
-        return urldrive + urlpath
-
-    def test_fetch_regular(self):
-        # Fetch this file using requests
-        with open(__file__, "rb") as f:
-            testdata = f.read()
-        response = self._session.get("file://%s" % 
self._pathToURL(os.path.abspath(__file__)))
-
-        self.assertEqual(response.status_code, requests.codes.ok)
-        self.assertEqual(response.headers['Content-Length'], len(testdata))
-        self.assertEqual(response.content, testdata)
-
-        response.close()
-
-    def test_fetch_missing(self):
-        # Fetch a file that (hopefully) doesn't exist, look for a 404
-        response = self._session.get("file:///no/such/path")
-        self.assertEqual(response.status_code, requests.codes.not_found)
-        self.assertTrue(response.text)
-        response.close()
-
-    @unittest.skipIf(hasattr(os, "geteuid") and os.geteuid() == 0,
-                     "Skipping permissions test since running as root")
-    def test_fetch_no_access(self):
-        # Create a file and remove read permissions, try to get a 403
-        # probably doesn't work on windows
-        with tempfile.NamedTemporaryFile() as tmp:
-            os.chmod(tmp.name, 0)
-            response = self._session.get("file://%s" % 
self._pathToURL(os.path.abspath(tmp.name)))
-
-            self.assertEqual(response.status_code, requests.codes.forbidden)
-            self.assertTrue(response.text)
-
-            response.close()
-
-    @unittest.skipIf(platform.system() == "Windows",
-                     "skipping locale test on windows")
-    def test_fetch_missing_localized(self):
-        # Make sure translated error messages don't cause any problems
-        import locale
-
-        saved_locale = locale.setlocale(locale.LC_MESSAGES, None)
-        try:
-            locale.setlocale(locale.LC_MESSAGES, 'ru_RU.UTF-8')
-            response = self._session.get("file:///no/such/path")
-            self.assertEqual(response.status_code, requests.codes.not_found)
-            self.assertTrue(response.text)
-            response.close()
-        except locale.Error:
-            unittest.SkipTest('ru_RU.UTF-8 locale not available')
-        finally:
-            locale.setlocale(locale.LC_MESSAGES, saved_locale)
-
-    def test_head(self):
-        # Check that HEAD returns the content-length
-        testlen = os.stat(__file__).st_size
-        response = self._session.head("file://%s" % 
self._pathToURL(os.path.abspath(__file__)))
-
-        self.assertEqual(response.status_code, requests.codes.ok)
-        self.assertEqual(response.headers['Content-Length'], testlen)
-
-        response.close()
-
-    def test_fetch_post(self):
-        # Make sure that non-GET methods are rejected
-        self.assertRaises(ValueError, self._session.post,
-                ("file://%s" % self._pathToURL(os.path.abspath(__file__))))
-
-    def test_fetch_nonlocal(self):
-        # Make sure that network locations are rejected
-        self.assertRaises(ValueError, self._session.get,
-                ("file://example.com%s" % 
self._pathToURL(os.path.abspath(__file__))))
-        self.assertRaises(ValueError, self._session.get,
-                ("file://localhost:8080%s" % 
self._pathToURL(os.path.abspath(__file__))))
-
-        # localhost is ok, though
-        with open(__file__, "rb") as f:
-            testdata = f.read()
-        response = self._session.get("file://localhost%s" % 
self._pathToURL(os.path.abspath(__file__)))
-        self.assertEqual(response.status_code, requests.codes.ok)
-        self.assertEqual(response.content, testdata)
-        response.close()
-
-    def test_funny_names(self):
-        testdata = 'yo wassup man\n'.encode('ascii')
-        tmpdir = tempfile.mkdtemp()
-
-        try:
-            with open(os.path.join(tmpdir, 'spa ces'), "w+b") as space_file:
-                space_file.write(testdata)
-                space_file.flush()
-                response = self._session.get("file://%s/spa%%20ces" % 
self._pathToURL(tmpdir))
-                self.assertEqual(response.status_code, requests.codes.ok)
-                self.assertEqual(response.content, testdata)
-                response.close()
-
-            with open(os.path.join(tmpdir, 'per%cent'), "w+b") as percent_file:
-                percent_file.write(testdata)
-                percent_file.flush()
-                response = self._session.get("file://%s/per%%25cent" % 
self._pathToURL(tmpdir))
-                self.assertEqual(response.status_code, requests.codes.ok)
-                self.assertEqual(response.content, testdata)
-                response.close()
-
-            # percent-encoded directory separators should be rejected
-            with open(os.path.join(tmpdir, 'badname'), "w+b") as bad_file:
-                response = self._session.get("file://%s%%%Xbadname" % 
(self._pathToURL(tmpdir), ord(os.sep)))
-                self.assertEqual(response.status_code, 
requests.codes.not_found)
-                response.close()
-
-        finally:
-            shutil.rmtree(tmpdir)
-
-    def test_close(self):
-        # Open a request for this file
-        response = self._session.get("file://%s" % 
self._pathToURL(os.path.abspath(__file__)))
-
-        # Try closing it
-        response.close()
-
-    def test_missing_close(self):
-        # Make sure non-200 responses can be closed
-        response = self._session.get("file:///no/such/path")
-        response.close()
-
-    @unittest.skipIf(platform.system() != "Windows", "skipping windows URL 
test")
-    def test_windows_legacy(self):
-        """Test |-encoded drive characters on Windows"""
-        with open(__file__, "rb") as f:
-            testdata = f.read()
-
-        drive, path = os.path.splitdrive(os.path.abspath(__file__))
-        response = self._session.get("file:///%s|%s" % (drive[:-1], 
path.replace(os.sep, "/")))
-        self.assertEqual(response.status_code, requests.codes.ok)
-        self.assertEqual(response.headers['Content-Length'], len(testdata))
-        self.assertEqual(response.content, testdata)
-        response.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/requests-file-1.4.3/tests/test_requests_file.py 
new/requests-file-1.5.1/tests/test_requests_file.py
--- old/requests-file-1.4.3/tests/test_requests_file.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/requests-file-1.5.1/tests/test_requests_file.py 2020-04-25 
15:49:02.000000000 +0200
@@ -0,0 +1,197 @@
+import unittest
+import requests
+from requests_file import FileAdapter
+
+import os, stat
+import tempfile
+import shutil
+import platform
+
+
+class FileRequestTestCase(unittest.TestCase):
+    def setUp(self):
+        self._session = requests.Session()
+        self._session.mount("file://", FileAdapter())
+
+    def _pathToURL(self, path):
+        """Convert a filesystem path to a URL path"""
+        urldrive, urlpath = os.path.splitdrive(path)
+
+        # Split the path on the os spearator and recombine it with / as the
+        # separator. There probably aren't any OS's that allow / as a path
+        # component, but just in case, encode any remaining /'s.
+        urlsplit = (part.replace("/", "%2F") for part in urlpath.split(os.sep))
+        urlpath = "/".join(urlsplit)
+
+        # Encode /'s in the drive for the imaginary case where that can be a 
thing
+        urldrive = urldrive.replace("/", "%2F")
+
+        # Add the leading /. If there is a drive component, this needs to be
+        # placed before the drive.
+        urldrive = "/" + urldrive
+
+        return urldrive + urlpath
+
+    def test_fetch_regular(self):
+        # Fetch this file using requests
+        with open(__file__, "rb") as f:
+            testdata = f.read()
+        response = self._session.get(
+            "file://%s" % self._pathToURL(os.path.abspath(__file__))
+        )
+
+        self.assertEqual(response.status_code, requests.codes.ok)
+        self.assertEqual(response.headers["Content-Length"], len(testdata))
+        self.assertEqual(response.content, testdata)
+
+        response.close()
+
+    def test_fetch_missing(self):
+        # Fetch a file that (hopefully) doesn't exist, look for a 404
+        response = self._session.get("file:///no/such/path")
+        self.assertEqual(response.status_code, requests.codes.not_found)
+        self.assertTrue(response.text)
+        response.close()
+
+    @unittest.skipIf(
+        hasattr(os, "geteuid") and os.geteuid() == 0,
+        "Skipping permissions test since running as root",
+    )
+    def test_fetch_no_access(self):
+        # Create a file and remove read permissions, try to get a 403
+        # probably doesn't work on windows
+        with tempfile.NamedTemporaryFile() as tmp:
+            os.chmod(tmp.name, 0)
+            response = self._session.get(
+                "file://%s" % self._pathToURL(os.path.abspath(tmp.name))
+            )
+
+            self.assertEqual(response.status_code, requests.codes.forbidden)
+            self.assertTrue(response.text)
+
+            response.close()
+
+    @unittest.skipIf(platform.system() == "Windows", "skipping locale test on 
windows")
+    def test_fetch_missing_localized(self):
+        # Make sure translated error messages don't cause any problems
+        import locale
+
+        saved_locale = locale.setlocale(locale.LC_MESSAGES, None)
+        try:
+            locale.setlocale(locale.LC_MESSAGES, "ru_RU.UTF-8")
+            response = self._session.get("file:///no/such/path")
+            self.assertEqual(response.status_code, requests.codes.not_found)
+            self.assertTrue(response.text)
+            response.close()
+        except locale.Error:
+            unittest.SkipTest("ru_RU.UTF-8 locale not available")
+        finally:
+            locale.setlocale(locale.LC_MESSAGES, saved_locale)
+
+    def test_head(self):
+        # Check that HEAD returns the content-length
+        testlen = os.stat(__file__).st_size
+        response = self._session.head(
+            "file://%s" % self._pathToURL(os.path.abspath(__file__))
+        )
+
+        self.assertEqual(response.status_code, requests.codes.ok)
+        self.assertEqual(response.headers["Content-Length"], testlen)
+
+        response.close()
+
+    def test_fetch_post(self):
+        # Make sure that non-GET methods are rejected
+        self.assertRaises(
+            ValueError,
+            self._session.post,
+            ("file://%s" % self._pathToURL(os.path.abspath(__file__))),
+        )
+
+    def test_fetch_nonlocal(self):
+        # Make sure that network locations are rejected
+        self.assertRaises(
+            ValueError,
+            self._session.get,
+            ("file://example.com%s" % 
self._pathToURL(os.path.abspath(__file__))),
+        )
+        self.assertRaises(
+            ValueError,
+            self._session.get,
+            ("file://localhost:8080%s" % 
self._pathToURL(os.path.abspath(__file__))),
+        )
+
+        # localhost is ok, though
+        with open(__file__, "rb") as f:
+            testdata = f.read()
+        response = self._session.get(
+            "file://localhost%s" % self._pathToURL(os.path.abspath(__file__))
+        )
+        self.assertEqual(response.status_code, requests.codes.ok)
+        self.assertEqual(response.content, testdata)
+        response.close()
+
+    def test_funny_names(self):
+        testdata = "yo wassup man\n".encode("ascii")
+        tmpdir = tempfile.mkdtemp()
+
+        try:
+            with open(os.path.join(tmpdir, "spa ces"), "w+b") as space_file:
+                space_file.write(testdata)
+                space_file.flush()
+                response = self._session.get(
+                    "file://%s/spa%%20ces" % self._pathToURL(tmpdir)
+                )
+                self.assertEqual(response.status_code, requests.codes.ok)
+                self.assertEqual(response.content, testdata)
+                response.close()
+
+            with open(os.path.join(tmpdir, "per%cent"), "w+b") as percent_file:
+                percent_file.write(testdata)
+                percent_file.flush()
+                response = self._session.get(
+                    "file://%s/per%%25cent" % self._pathToURL(tmpdir)
+                )
+                self.assertEqual(response.status_code, requests.codes.ok)
+                self.assertEqual(response.content, testdata)
+                response.close()
+
+            # percent-encoded directory separators should be rejected
+            with open(os.path.join(tmpdir, "badname"), "w+b") as bad_file:
+                response = self._session.get(
+                    "file://%s%%%Xbadname" % (self._pathToURL(tmpdir), 
ord(os.sep))
+                )
+                self.assertEqual(response.status_code, 
requests.codes.not_found)
+                response.close()
+
+        finally:
+            shutil.rmtree(tmpdir)
+
+    def test_close(self):
+        # Open a request for this file
+        response = self._session.get(
+            "file://%s" % self._pathToURL(os.path.abspath(__file__))
+        )
+
+        # Try closing it
+        response.close()
+
+    def test_missing_close(self):
+        # Make sure non-200 responses can be closed
+        response = self._session.get("file:///no/such/path")
+        response.close()
+
+    @unittest.skipIf(platform.system() != "Windows", "skipping windows URL 
test")
+    def test_windows_legacy(self):
+        """Test |-encoded drive characters on Windows"""
+        with open(__file__, "rb") as f:
+            testdata = f.read()
+
+        drive, path = os.path.splitdrive(os.path.abspath(__file__))
+        response = self._session.get(
+            "file:///%s|%s" % (drive[:-1], path.replace(os.sep, "/"))
+        )
+        self.assertEqual(response.status_code, requests.codes.ok)
+        self.assertEqual(response.headers["Content-Length"], len(testdata))
+        self.assertEqual(response.content, testdata)
+        response.close()


Reply via email to