[Patches] [ python-Patches-870606 ] make test_urllib2 work on
Windows
SourceForge.net
noreply at sourceforge.net
Sat Jan 10 09:52:09 EST 2004
Patches item #870606, was opened at 2004-01-04 23:48
Message generated for change (Comment added) made by jjlee
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=870606&group_id=5470
Category: Tests
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: John J Lee (jjlee)
Assigned to: Jeremy Hylton (jhylton)
Summary: make test_urllib2 work on Windows
Initial Comment:
This fixes HandlerTests.test_file() on Windows. Hope it
works -- I don't have 2.4 CVS on Windows.
Also cleaned up testing of generated Last-Modified
header.
Still needs testing on Mac.
I had to introduce a sanepathname2url() to replace
urllib.pathname2url(). I don't understand why
urllib.pathname2url() behaves as it does (returning a path
starting with three slashes /// instead of one) -- seems
wrong according to RFC 1738. Should it be fixed in
urllib?
----------------------------------------------------------------------
>Comment By: John J Lee (jjlee)
Date: 2004-01-10 14:52
Message:
Logged In: YES
user_id=261020
I fear you're right that "fixing" urllib.pathname2url is a bad idea
for backwards-compatibility reasons. Anyway, ISTR file: URLs
with one, two and three slashes, so I guess I have to admit
standardization has failed here.
For the record, though:
You're supposed to have those extra two slashes in a *full*
URL on unix, too. But the docs say:
------
Convert the pathname path from the local syntax for a path to
the form used in the path component of a URL. This does not
produce a complete URL.
------
RFC 1738, section 3.10, makes it clear that the path
component of a file: URL doesn't include those first two slashes
(actually, it's claims the third isn't, either, presumably just to be
subtly different from the generic syntax of RFC 2396 - argh!).
Your point about unix vs. Windows is not relevant: the path
component of a file: URL isn't supposed to be directly
interpreted as an OS filesystem path (RFC 1738 gives a VMS
example).
----------------------------------------------------------------------
Comment By: Jim Jewett (jimjjewett)
Date: 2004-01-08 21:03
Message:
Logged In: YES
user_id=764593
Today, a missing host or protocol indicates a relative URL. At
one point, it could also have meant file (or ftp) to the
localhost.
proto://host/path -> file://localhost/path -> //localhost/path
-> ///path
Therefore, ///path == //localhost/path, which may well be
different from BASEURI/path.
Note that on unix, /path is well-defined, but on windows, it
isn't. It should probably map to C:\path, unless there is
already a driver letter in path -- and I believe that old enough
browsers supported paths with or without a driver letter.
I do not know what the Mac equivalent of /path should be.
I suspect the least bad choice for /// is to keep doing
whatever it did before.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2004-01-04 23:58
Message:
Logged In: YES
user_id=31435
I confirm that the patch allows test_urllib2 to pass again on
Windows. Assigned to Jeremy, as I made no attempt to try
to understand what the patch does.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=870606&group_id=5470
More information about the Patches
mailing list