aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/compat.py4
-rwxr-xr-xsetuptools/package_index.py6
-rw-r--r--setuptools/tests/test_packageindex.py18
3 files changed, 22 insertions, 6 deletions
diff --git a/setuptools/compat.py b/setuptools/compat.py
index 8af8aa74..7b824ba2 100644
--- a/setuptools/compat.py
+++ b/setuptools/compat.py
@@ -26,7 +26,7 @@ if sys.version_info[0] < 3:
unichr = unichr
unicode = unicode
bytes = str
- from urllib import url2pathname, splittag
+ from urllib import url2pathname, splittag, pathname2url
import urllib2
from urllib2 import urlopen, HTTPError, URLError, unquote, splituser
from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit
@@ -58,7 +58,7 @@ else:
bytes = bytes
from urllib.error import HTTPError, URLError
import urllib.request as urllib2
- from urllib.request import urlopen, url2pathname
+ from urllib.request import urlopen, url2pathname, pathname2url
from urllib.parse import (
urlparse, urlunparse, unquote, splituser, urljoin, urlsplit,
urlunsplit, splittag,
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
index 12a062b5..0e51b72c 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -1039,7 +1039,7 @@ def local_open(url):
files = []
for f in os.listdir(filename):
if f=='index.html':
- fp = open(os.path.join(filename,f),'rb')
+ fp = open(os.path.join(filename,f),'r')
body = fp.read()
fp.close()
break
@@ -1053,5 +1053,5 @@ def local_open(url):
else:
status, message, body = 404, "Path not found", "Not found"
- return HTTPError(url, status, message,
- {'content-type':'text/html'}, StringIO(body))
+ headers = {'content-type': 'text/html'}
+ return HTTPError(url, status, message, headers, StringIO(body))
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
index 08969b7e..664566a3 100644
--- a/setuptools/tests/test_packageindex.py
+++ b/setuptools/tests/test_packageindex.py
@@ -1,9 +1,10 @@
"""Package Index Tests
"""
import sys
+import os
import unittest
import pkg_resources
-from setuptools.compat import urllib2, httplib, HTTPError, unicode
+from setuptools.compat import urllib2, httplib, HTTPError, unicode, pathname2url
import distutils.errors
import setuptools.package_index
from setuptools.tests.server import IndexServer
@@ -151,6 +152,21 @@ class TestPackageIndex(unittest.TestCase):
self.assertEqual(url, 'https://example.com/bar')
self.assertEqual(rev, '2995')
+ def test_local_index(self):
+ """
+ local_open should be able to read an index from the file system.
+ """
+ f = open('index.html', 'w')
+ f.write('<div>content</div>')
+ f.close()
+ try:
+ url = 'file:' + pathname2url(os.getcwd()) + '/'
+ res = setuptools.package_index.local_open(url)
+ finally:
+ os.remove('index.html')
+ assert 'content' in res.read()
+
+
class TestContentCheckers(unittest.TestCase):
def test_md5(self):