diff options
author | Facundo Batista <facundobatista@gmail.com> | 2008-02-18 12:48:43 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2008-02-18 12:48:43 (GMT) |
commit | d14600ec94abc39dfb83dfccae89d8e7043f3b8b (patch) | |
tree | ee92278c7d0bee4178238c54dac0483f173c9787 /Lib | |
parent | 759bfc6207e7979d4eaeed2a2ae611e1804aef55 (diff) | |
download | cpython-d14600ec94abc39dfb83dfccae89d8e7043f3b8b.zip cpython-d14600ec94abc39dfb83dfccae89d8e7043f3b8b.tar.gz cpython-d14600ec94abc39dfb83dfccae89d8e7043f3b8b.tar.bz2 |
Issue 1224. Now we support again the double slash in the URL.
Thanks Anthony Lenton.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/SimpleHTTPServer.py | 3 | ||||
-rw-r--r-- | Lib/test/test_SimpleHTTPServer.py | 41 |
2 files changed, 43 insertions, 1 deletions
diff --git a/Lib/SimpleHTTPServer.py b/Lib/SimpleHTTPServer.py index 86c669e..249e237 100644 --- a/Lib/SimpleHTTPServer.py +++ b/Lib/SimpleHTTPServer.py @@ -146,7 +146,8 @@ class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): """ # abandon query parameters - path = urlparse.urlparse(path)[2] + path = path.split('?',1)[0] + path = path.split('#',1)[0] path = posixpath.normpath(urllib.unquote(path)) words = path.split('/') words = filter(None, words) diff --git a/Lib/test/test_SimpleHTTPServer.py b/Lib/test/test_SimpleHTTPServer.py new file mode 100644 index 0000000..9d3ad16 --- /dev/null +++ b/Lib/test/test_SimpleHTTPServer.py @@ -0,0 +1,41 @@ +""" +These tests only check url parsing for now. +We don't want to require the 'network' resource. +""" + +import os, unittest +from SimpleHTTPServer import SimpleHTTPRequestHandler +from test import test_support + + +class SocketlessRequestHandler (SimpleHTTPRequestHandler): + def __init__(self): + pass + +class SimpleHTTPRequestHandlerTestCase(unittest.TestCase): + """ Test url parsing """ + def setUp (self): + self.translated = os.getcwd() + self.translated = os.path.join(self.translated, 'filename') + self.handler = SocketlessRequestHandler () + + def test_queryArguments (self): + path = self.handler.translate_path ('/filename') + self.assertEquals (path, self.translated) + path = self.handler.translate_path ('/filename?foo=bar') + self.assertEquals (path, self.translated) + path = self.handler.translate_path ('/filename?a=b&spam=eggs#zot') + self.assertEquals (path, self.translated) + + def test_startWithDoubleSlash (self): + path = self.handler.translate_path ('//filename') + self.assertEquals (path, self.translated) + path = self.handler.translate_path ('//filename?foo=bar') + self.assertEquals (path, self.translated) + + +def test_main(): + test_support.run_unittest(SimpleHTTPRequestHandlerTestCase) + +if __name__ == "__main__": + test_main() |