[wwwsearch-commits] r43808 - in wwwsearch/mechanize/trunk: mechanize test
jjlee at codespeak.net
jjlee at codespeak.net
Mon May 28 17:34:40 CEST 2007
Author: jjlee
Date: Mon May 28 17:34:39 2007
New Revision: 43808
Modified:
wwwsearch/mechanize/trunk/mechanize/_rfc3986.py
wwwsearch/mechanize/trunk/test/test_rfc3986.doctest
Log:
Fix exception raised by RFC 3986 implementation with urljoin(base, '/..')
Modified: wwwsearch/mechanize/trunk/mechanize/_rfc3986.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_rfc3986.py (original)
+++ wwwsearch/mechanize/trunk/mechanize/_rfc3986.py Mon May 28 17:34:39 2007
@@ -200,7 +200,8 @@
continue
if path == "/..":
path = "/"
- r.pop()
+ if r:
+ r.pop()
continue
# D
if path == ".":
Modified: wwwsearch/mechanize/trunk/test/test_rfc3986.doctest
==============================================================================
--- wwwsearch/mechanize/trunk/test/test_rfc3986.doctest (original)
+++ wwwsearch/mechanize/trunk/test/test_rfc3986.doctest Mon May 28 17:34:39 2007
@@ -59,6 +59,10 @@
'/'
>>> remove_dot_segments("./")
''
+>>> remove_dot_segments("/..")
+'/'
+>>> remove_dot_segments("/../")
+'/'
Examples from RFC 3986 section 5.4
@@ -154,3 +158,11 @@
'http://a/b/c/g#s/../x'
>>> join("http:g")
'http://a/b/c/g'
+
+
+Additional urljoin tests, not taken from RFC:
+
+>>> join("/..")
+'http://a/'
+>>> join("/../")
+'http://a/'
More information about the wwwsearch-commits
mailing list