Anonymous avatar Anonymous committed 1076eaa

Fix for http://bugs.python.org/setuptools/issue7 (backport from trunk)

Comments (0)

Files changed (2)

setuptools/package_index.py

             map(self.add, dists)
 
     def url_ok(self, url, fatal=False):
-        if self.allows(urlparse.urlparse(url)[1]):
+        s = URL_SCHEME(url)
+        if (s and s.group(1).lower()=='file') or self.allows(urlparse.urlparse(url)[1]):
             return True
         msg = "\nLink to % s ***BLOCKED*** by --allow-hosts\n"
         if fatal:
                 dist.precedence = SOURCE_DIST
                 self.add(dist)
 
-
     def process_index(self,url,page):
         """Process the contents of a PyPI page"""
         def scan(link):

setuptools/tests/test_packageindex.py

             self.assert_(url in str(v))
         else:
             self.assert_(isinstance(v,urllib2.HTTPError))
+
+    def test_url_ok(self):
+        index = setuptools.package_index.PackageIndex(
+            hosts=('www.example.com',)
+        )
+        url = 'file:///tmp/test_package_index'
+        self.assert_(index.url_ok(url, True))
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.