Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
8247b188
Commit
8247b188
authored
Mar 14, 2012
by
Andrew Svetlov
Browse files
Options
Browse Files
Download
Plain Diff
Megre from tip
parents
b53da6e3
38b968b9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
103 additions
and
44 deletions
+103
-44
Doc/library/urllib.request.rst
Doc/library/urllib.request.rst
+51
-27
Lib/test/test_urllib.py
Lib/test/test_urllib.py
+4
-0
Lib/test/test_urllib2.py
Lib/test/test_urllib2.py
+19
-4
Lib/unittest/mock.py
Lib/unittest/mock.py
+3
-5
Lib/urllib/request.py
Lib/urllib/request.py
+26
-8
No files found.
Doc/library/urllib.request.rst
View file @
8247b188
...
...
@@ -385,12 +385,6 @@ request.
.. versionadded:: 3.3
.. method:: Request.add_data(data)
Set the :class:`Request` data to *data*. This is ignored by all handlers except
HTTP handlers --- and there it should be a byte string, and will change the
request to be ``POST`` rather than ``GET``.
.. method:: Request.get_method()
...
...
@@ -403,16 +397,6 @@ request.
get_method now looks at the value of :attr:`Request.method`.
.. method:: Request.has_data()
Return whether the instance has a non-\ ``None`` data.
.. method:: Request.get_data()
Return the instance's data.
.. method:: Request.add_header(key, val)
Add another header to the request. Headers are currently ignored by all
...
...
@@ -440,38 +424,78 @@ request.
Return the URL given in the constructor.
.. method:: Request.set_proxy(host, type)
Prepare the request by connecting to a proxy server. The *host* and *type* will
replace those of the instance, and the instance's selector will be the original
URL given in the constructor.
.. method:: Request.add_data(data)
Set the :class:`Request` data to *data*. This is ignored by all handlers except
HTTP handlers --- and there it should be a byte string, and will change the
request to be ``POST`` rather than ``GET``. Deprecated in 3.3, use
:attr:`Request.data`.
.. deprecated:: 3.3
.. method:: Request.has_data()
Return whether the instance has a non-\ ``None`` data. Deprecated in 3.3,
use :attr:`Request.data`.
.. deprecated:: 3.3
.. method:: Request.get_data()
Return the instance's data. Deprecated in 3.3, use :attr:`Request.data`.
.. deprecated:: 3.3
.. method:: Request.get_type()
Return the type of the URL --- also known as the scheme.
Return the type of the URL --- also known as the scheme. Deprecated in 3.3,
use :attr:`Request.type`.
.. deprecated:: 3.3
.. method:: Request.get_host()
Return the host to which a connection will be made.
Return the host to which a connection will be made. Deprecated in 3.3, use
:attr:`Request.host`.
.. deprecated:: 3.3
.. method:: Request.get_selector()
Return the selector --- the part of the URL that is sent to the server.
Deprecated in 3.3, use :attr:`Request.selector`.
.. method:: Request.set_proxy(host, type)
Prepare the request by connecting to a proxy server. The *host* and *type* will
replace those of the instance, and the instance's selector will be the original
URL given in the constructor.
.. deprecated:: 3.3
.. method:: Request.get_origin_req_host()
Return the request-host of the origin transaction, as defined by :rfc:`2965`.
See the documentation for the :class:`Request` constructor.
Return the request-host of the origin transaction, as defined by
:rfc:`2965`. See the documentation for the :class:`Request` constructor.
Deprecated in 3.3, use :attr:`Request.origin_req_host`.
.. deprecated:: 3.3
.. method:: Request.is_unverifiable()
Return whether the request is unverifiable, as defined by RFC 2965. See the
documentation for the :class:`Request` constructor.
documentation for the :class:`Request` constructor. Deprecated in 3.3, use
:attr:`Request.is_unverifiable`.
.. deprecated:: 3.3
.. _opener-director-objects:
...
...
Lib/test/test_urllib.py
View file @
8247b188
...
...
@@ -298,6 +298,10 @@ Content-Type: text/html; charset=iso-8859-1
finally
:
self
.
unfakehttp
()
def
test_URLopener_deprecation
(
self
):
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
warn
=
urllib
.
request
.
URLopener
()
class
urlretrieve_FileTests
(
unittest
.
TestCase
):
"""Test urllib.urlretrieve() on local files"""
...
...
Lib/test/test_urllib2.py
View file @
8247b188
...
...
@@ -553,10 +553,6 @@ class OpenerDirectorTests(unittest.TestCase):
self
.
assertRaises
(
urllib
.
error
.
URLError
,
o
.
open
,
req
)
self
.
assertEqual
(
o
.
calls
,
[(
handlers
[
0
],
"http_open"
,
(
req
,),
{})])
## def test_error(self):
## # XXX this doesn't actually seem to be used in standard library,
## # but should really be tested anyway...
def
test_http_error
(
self
):
# XXX http_error_default
# http errors are a special case
...
...
@@ -584,6 +580,7 @@ class OpenerDirectorTests(unittest.TestCase):
self
.
assertEqual
((
handler
,
method_name
),
got
[:
2
])
self
.
assertEqual
(
args
,
got
[
2
])
def
test_processors
(
self
):
# *_request / *_response methods get called appropriately
o
=
OpenerDirector
()
...
...
@@ -619,6 +616,24 @@ class OpenerDirectorTests(unittest.TestCase):
self
.
assertTrue
(
args
[
1
]
is
None
or
isinstance
(
args
[
1
],
MockResponse
))
def
test_method_deprecations
(
self
):
req
=
Request
(
"http://www.example.com"
)
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
add_data
(
"data"
)
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
has_data
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
get_data
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
get_full_url
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
get_host
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
get_selector
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
is_unverifiable
()
with
support
.
check_warnings
((
''
,
DeprecationWarning
)):
req
.
get_origin_req_host
()
def
sanepathname2url
(
path
):
try
:
...
...
Lib/unittest/mock.py
View file @
8247b188
# mock.py
# Test tools for mocking and patching.
# Maintained by Michael Foord
# Backport for other versions of Python available from
# http://pypi.python.org/pypi/mock
__all__
=
(
'Mock'
,
...
...
@@ -259,11 +262,6 @@ _missing = sentinel.MISSING
_deleted
=
sentinel
.
DELETED
class
OldStyleClass
:
pass
ClassType
=
type
(
OldStyleClass
)
def
_copy
(
value
):
if
type
(
value
)
in
(
dict
,
list
,
tuple
,
set
):
return
type
(
value
)(
value
)
...
...
Lib/urllib/request.py
View file @
8247b188
...
...
@@ -96,6 +96,7 @@ import time
import
collections
import
tempfile
import
contextlib
import
warnings
from
urllib.error
import
URLError
,
HTTPError
,
ContentTooShortError
...
...
@@ -291,36 +292,52 @@ class Request:
else:
return "
GET
"
def get_full_url(self):
if self.fragment:
return '%s#%s' % (self.full_url, self.fragment)
else:
return self.full_url
# Begin deprecated methods
def add_data(self, data):
msg = "
Request
.
add_data
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
self.data = data
def has_data(self):
msg = "
Request
.
has_data
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.data is not None
def get_data(self):
msg = "
Request
.
get_data
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.data
def get_full_url(self):
if self.fragment:
return '%s#%s' % (self.full_url, self.fragment)
else:
return self.full_url
def get_type(self):
msg = "
Request
.
get_type
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.type
def get_host(self):
msg = "
Request
.
get_host
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.host
def get_selector(self):
msg = "
Request
.
get_selector
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.selector
def is_unverifiable(self):
msg = "
Request
.
is_unverifiable
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.unverifiable
def get_origin_req_host(self):
msg = "
Request
.
get_origin_req_host
method
is
deprecated
.
"
warnings.warn(msg, DeprecationWarning, stacklevel=1)
return self.origin_req_host
# End deprecated methods
...
...
@@ -1552,6 +1569,9 @@ class URLopener:
# Constructor
def
__init__
(
self
,
proxies
=
None
,
**
x509
):
msg
=
"%(class)s style of invoking requests is deprecated."
\
"Use newer urlopen functions/methods"
%
{
'class'
:
self
.
__class__
.
__name__
}
warnings
.
warn
(
msg
,
DeprecationWarning
,
stacklevel
=
3
)
if
proxies
is
None
:
proxies
=
getproxies
()
assert
hasattr
(
proxies
,
'keys'
),
"proxies must be a mapping"
...
...
@@ -1753,7 +1773,6 @@ class URLopener:
if
proxy_bypass
(
realhost
):
host
=
realhost
#print "proxy via http:", host, selector
if
not
host
:
raise
IOError
(
'http error'
,
'no host given'
)
if
proxy_passwd
:
...
...
@@ -2554,7 +2573,6 @@ elif os.name == 'nt':
test = test.replace("
*
", r"
.
*
") # change glob sequence
test = test.replace("
?
", r"
.
") # change glob char
for val in host:
# print "
%
s
<-->
%
s
" %( test, val )
if re.match(test, val, re.I):
return 1
return 0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment