Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
Pyston
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
Boxiang Sun
Pyston
Commits
3307a633
Commit
3307a633
authored
Feb 05, 2016
by
Marius Wachtler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove outdated workarounds inside test_support
and switch to the correct urllib test version
parent
71221ac7
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
152 deletions
+56
-152
from_cpython/Lib/test/test_support.py
from_cpython/Lib/test/test_support.py
+43
-49
from_cpython/Lib/test/test_urllib.py
from_cpython/Lib/test/test_urllib.py
+13
-103
No files found.
from_cpython/Lib/test/test_support.py
View file @
3307a633
...
...
@@ -347,19 +347,25 @@ def _is_gui_available():
def
is_resource_enabled
(
resource
):
"""Test whether a resource is enabled. Known resources are set by
regrtest.py."""
# Pyston change: we assume that resources are not available in general
return
use_resources
is
not
None
and
resource
in
use_resources
def
requires
(
resource
,
msg
=
None
):
"""Raise ResourceDenied if the specified resource is not available."""
"""Raise ResourceDenied if the specified resource is not available.
If the caller's module is __main__ then automatically return True. The
possibility of False being returned occurs when regrtest.py is executing."""
if
resource
==
'gui'
and
not
_is_gui_available
():
raise
ResourceDenied
(
_is_gui_available
.
reason
)
# Pyston change: we don't check if the caller's module is __main__ using sys._getframe() magic.
# see if the caller's module is __main__ - if so, treat as if
# the resource was set
if
sys
.
_getframe
(
1
).
f_globals
.
get
(
"__name__"
)
==
"__main__"
:
return
if
not
is_resource_enabled
(
resource
):
if
msg
is
None
:
msg
=
"Use of the `%s' resource not enabled"
%
resource
raise
ResourceDenied
(
msg
)
# Don't use "localhost", since resolving it uses the DNS under recent
# Windows versions (see issue #18792).
HOST
=
"127.0.0.1"
...
...
@@ -501,11 +507,6 @@ try:
except
NameError
:
have_unicode
=
False
requires_unicode
=
unittest
.
skipUnless
(
have_unicode
,
'no unicode support'
)
def
u
(
s
):
return
unicode
(
s
,
'unicode-escape'
)
is_jython
=
sys
.
platform
.
startswith
(
'java'
)
# FS_NONASCII: non-ASCII Unicode character encodable by
...
...
@@ -749,49 +750,42 @@ class WarningsRecorder(object):
def
_filterwarnings
(
filters
,
quiet
=
False
):
# Pyston change:
# this bare yield seems to work for now, but we might need to yield up a WarningsRecorder in some cases?
yield
# TODO: Frame introspection in Pyston?
# old code follows:
# """Catch the warnings, then check if all the expected
# warnings have been raised and re-raise unexpected warnings.
# If 'quiet' is True, only re-raise the unexpected warnings.
# """
"""Catch the warnings, then check if all the expected
warnings have been raised and re-raise unexpected warnings.
If 'quiet' is True, only re-raise the unexpected warnings.
"""
# Clear the warning registry of the calling module
# in order to re-raise the warnings.
#
frame = sys._getframe(2)
#
registry = frame.f_globals.get('__warningregistry__')
#
if registry:
#
registry.clear()
#
with warnings.catch_warnings(record=True) as w:
#
# Set filter "always" to record all warnings. Because
#
# test_warnings swap the module, we need to look up in
#
# the sys.modules dictionary.
#
sys.modules['warnings'].simplefilter("always")
#
yield WarningsRecorder(w)
#
#
Filter the recorded warnings
#
reraise = [warning.message for warning in w]
#
missing = []
#
for msg, cat in filters:
#
seen = False
#
for exc in reraise[:]:
#
message = str(exc)
#
# Filter out the matching messages
#
if (re.match(msg, message, re.I) and
#
issubclass(exc.__class__, cat)):
#
seen = True
#
reraise.remove(exc)
#
if not seen and not quiet:
#
# This filter caught nothing
#
missing.append((msg, cat.__name__))
#
if reraise:
#
raise AssertionError("unhandled warning %r" % reraise[0])
#
if missing:
#
raise AssertionError("filter (%r, %s) did not catch any warning" %
#
missing[0])
frame
=
sys
.
_getframe
(
2
)
registry
=
frame
.
f_globals
.
get
(
'__warningregistry__'
)
if
registry
:
registry
.
clear
()
with
warnings
.
catch_warnings
(
record
=
True
)
as
w
:
# Set filter "always" to record all warnings. Because
# test_warnings swap the module, we need to look up in
# the sys.modules dictionary.
sys
.
modules
[
'warnings'
].
simplefilter
(
"always"
)
yield
WarningsRecorder
(
w
)
# Filter the recorded warnings
reraise
=
[
warning
.
message
for
warning
in
w
]
missing
=
[]
for
msg
,
cat
in
filters
:
seen
=
False
for
exc
in
reraise
[:]:
message
=
str
(
exc
)
# Filter out the matching messages
if
(
re
.
match
(
msg
,
message
,
re
.
I
)
and
issubclass
(
exc
.
__class__
,
cat
)):
seen
=
True
reraise
.
remove
(
exc
)
if
not
seen
and
not
quiet
:
# This filter caught nothing
missing
.
append
((
msg
,
cat
.
__name__
))
if
reraise
:
raise
AssertionError
(
"unhandled warning %r"
%
reraise
[
0
])
if
missing
:
raise
AssertionError
(
"filter (%r, %s) did not catch any warning"
%
missing
[
0
])
@
contextlib
.
contextmanager
...
...
from_cpython/Lib/test/test_urllib.py
View file @
3307a633
...
...
@@ -773,55 +773,21 @@ class Pathname_Tests(unittest.TestCase):
class Utility_Tests(unittest.TestCase):
"""Testcase to test the various utility functions in the urllib."""
# In Python 3 this test class is moved to test_urlparse.
def test_splittype(self):
splittype = urllib.splittype
self.assertEqual(splittype('
type
:
opaquestring
'), ('
type
', '
opaquestring
'))
self.assertEqual(splittype('
opaquestring
'), (None, '
opaquestring
'))
self.assertEqual(splittype('
:
opaquestring
'), (None, '
:
opaquestring
'))
self.assertEqual(splittype('
type
:
'), ('
type
', ''))
self.assertEqual(splittype('
type
:
opaque
:
string
'), ('
type
', '
opaque
:
string
'))
def test_splithost(self):
splithost = urllib.splithost
self.assertEqual(splithost('
//
www
.
example
.
org
:
80
/
foo
/
bar
/
baz
.
html
'),
('
www
.
example
.
org
:
80
', '
/
foo
/
bar
/
baz
.
html
'))
self.assertEqual(splithost('
//
www
.
example
.
org
:
80
'),
('
www
.
example
.
org
:
80
', ''))
self.assertEqual(splithost('
/
foo
/
bar
/
baz
.
html
'),
(None, '
/
foo
/
bar
/
baz
.
html
'))
def test_splituser(self):
splituser = urllib.splituser
self.assertEqual(splituser('
User
:
Pass
@
www
.
python
.
org
:
080
'),
('
User
:
Pass
', '
www
.
python
.
org
:
080
'))
self.assertEqual(splituser('
@
www
.
python
.
org
:
080
'),
('', '
www
.
python
.
org
:
080
'))
self.assertEqual(splituser('
www
.
python
.
org
:
080
'),
(None, '
www
.
python
.
org
:
080
'))
self.assertEqual(splituser('
User
:
Pass
@
'),
('
User
:
Pass
', ''))
self.assertEqual(splituser('
User
@
example
.
com
:
Pass
@
www
.
python
.
org
:
080
'),
('
User
@
example
.
com
:
Pass
', '
www
.
python
.
org
:
080
'))
def test_splitpasswd(self):
# Some of the password examples are not sensible, but it is added to
# confirming to RFC2617 and addressing issue4675.
splitpasswd = urllib.splitpasswd
self.assertEqual(splitpasswd('
user
:
ab
'), ('
user
', '
ab
'))
self.assertEqual(splitpasswd('
user
:
a
\
nb
'), ('
user
', '
a
\
nb
'))
self.assertEqual(splitpasswd('
user
:
a
\
tb
'), ('
user
', '
a
\
tb
'))
self.assertEqual(splitpasswd('
user
:
a
\
rb'), ('
user
', '
a
\
rb'))
self.assertEqual(splitpasswd('
user
:
a
\
fb'), ('
user
', '
a
\
fb'))
self.assertEqual(splitpasswd('
user
:
a
\
vb
'), ('
user
', '
a
\
vb
'))
self.assertEqual(splitpasswd('
user
:
a
:
b'), ('
user
', '
a
:
b'))
self.assertEqual(splitpasswd('
user
:
a
b'), ('
user
', '
a
b'))
self.assertEqual(splitpasswd('
user
2
:
ab
'), ('
user
2
', '
ab
'))
self.assertEqual(splitpasswd('
user
+
1
:
a
+
b'), ('
user
+
1
', '
a
+
b'))
self.assertEqual(splitpasswd('
user
:
'), ('
user
', ''))
self.assertEqual(splitpasswd('
user
'), ('
user
', None))
self.assertEqual(splitpasswd('
:
ab
'), ('', '
ab
'))
"""Some of the password examples are not sensible, but it is added to
confirming to RFC2617 and addressing issue4675.
"""
self.assertEqual(('
user
', '
ab
'),urllib.splitpasswd('
user
:
ab
'))
self.assertEqual(('
user
', '
a
\
nb
'),urllib.splitpasswd('
user
:
a
\
nb
'))
self.assertEqual(('
user
', '
a
\
tb
'),urllib.splitpasswd('
user
:
a
\
tb
'))
self.assertEqual(('
user
', '
a
\
rb'),urllib.splitpasswd('
user
:
a
\
rb'))
self.assertEqual(('
user
', '
a
\
fb'),urllib.splitpasswd('
user
:
a
\
fb'))
self.assertEqual(('
user
', '
a
\
vb
'),urllib.splitpasswd('
user
:
a
\
vb
'))
self.assertEqual(('
user
', '
a
:
b'),urllib.splitpasswd('
user
:
a
:
b'))
self.assertEqual(('
user
', '
a
b'),urllib.splitpasswd('
user
:
a
b'))
self.assertEqual(('
user
2
', '
ab
'),urllib.splitpasswd('
user
2
:
ab
'))
self.assertEqual(('
user
+
1
', '
a
+
b'),urllib.splitpasswd('
user
+
1
:
a
+
b'))
def test_splitport(self):
splitport = urllib.splitport
...
...
@@ -830,9 +796,6 @@ class Utility_Tests(unittest.TestCase):
self.assertEqual(splitport('
parrot
:
'), ('
parrot
', None))
self.assertEqual(splitport('
127.0
.
0.1
'), ('
127.0
.
0.1
', None))
self.assertEqual(splitport('
parrot
:
cheese
'), ('
parrot
:
cheese
', None))
self.assertEqual(splitport('
[::
1
]:
88
'), ('
[::
1
]
', '
88
'))
self.assertEqual(splitport('
[::
1
]
'), ('
[::
1
]
', None))
self.assertEqual(splitport('
:
88
'), ('', '
88
'))
def test_splitnport(self):
splitnport = urllib.splitnport
...
...
@@ -846,59 +809,6 @@ class Utility_Tests(unittest.TestCase):
self.assertEqual(splitnport('
parrot
:
cheese
'), ('
parrot
', None))
self.assertEqual(splitnport('
parrot
:
cheese
', 55), ('
parrot
', None))
def test_splitquery(self):
# Normal cases are exercised by other tests; ensure that we also
# catch cases with no port specified (testcase ensuring coverage)
splitquery = urllib.splitquery
self.assertEqual(splitquery('
http
:
//
python
.
org
/
fake
?
foo
=
bar
'),
('
http
:
//
python
.
org
/
fake
', '
foo
=
bar
'))
self.assertEqual(splitquery('
http
:
//
python
.
org
/
fake
?
foo
=
bar
?
'),
('
http
:
//
python
.
org
/
fake
?
foo
=
bar
', ''))
self.assertEqual(splitquery('
http
:
//
python
.
org
/
fake
'),
('
http
:
//
python
.
org
/
fake
', None))
self.assertEqual(splitquery('
?
foo
=
bar
'), ('', '
foo
=
bar
'))
def test_splittag(self):
splittag = urllib.splittag
self.assertEqual(splittag('
http
:
//
example
.
com
?
foo
=
bar
#baz'),
(
'http://example.com?foo=bar'
,
'baz'
))
self
.
assertEqual
(
splittag
(
'http://example.com?foo=bar#'
),
(
'http://example.com?foo=bar'
,
''
))
self
.
assertEqual
(
splittag
(
'#baz'
),
(
''
,
'baz'
))
self
.
assertEqual
(
splittag
(
'http://example.com?foo=bar'
),
(
'http://example.com?foo=bar'
,
None
))
self
.
assertEqual
(
splittag
(
'http://example.com?foo=bar#baz#boo'
),
(
'http://example.com?foo=bar#baz'
,
'boo'
))
def
test_splitattr
(
self
):
splitattr
=
urllib
.
splitattr
self
.
assertEqual
(
splitattr
(
'/path;attr1=value1;attr2=value2'
),
(
'/path'
,
[
'attr1=value1'
,
'attr2=value2'
]))
self
.
assertEqual
(
splitattr
(
'/path;'
),
(
'/path'
,
[
''
]))
self
.
assertEqual
(
splitattr
(
';attr1=value1;attr2=value2'
),
(
''
,
[
'attr1=value1'
,
'attr2=value2'
]))
self
.
assertEqual
(
splitattr
(
'/path'
),
(
'/path'
,
[]))
def
test_splitvalue
(
self
):
# Normal cases are exercised by other tests; test pathological cases
# with no key/value pairs. (testcase ensuring coverage)
splitvalue
=
urllib
.
splitvalue
self
.
assertEqual
(
splitvalue
(
'foo=bar'
),
(
'foo'
,
'bar'
))
self
.
assertEqual
(
splitvalue
(
'foo='
),
(
'foo'
,
''
))
self
.
assertEqual
(
splitvalue
(
'=bar'
),
(
''
,
'bar'
))
self
.
assertEqual
(
splitvalue
(
'foobar'
),
(
'foobar'
,
None
))
self
.
assertEqual
(
splitvalue
(
'foo=bar=baz'
),
(
'foo'
,
'bar=baz'
))
def
test_toBytes
(
self
):
result
=
urllib
.
toBytes
(
u'http://www.python.org'
)
self
.
assertEqual
(
result
,
'http://www.python.org'
)
self
.
assertRaises
(
UnicodeError
,
urllib
.
toBytes
,
test_support
.
u
(
r'http://www.python.org/medi\u00e6val'
))
def
test_unwrap
(
self
):
url
=
urllib
.
unwrap
(
'<URL:type://host/path>'
)
self
.
assertEqual
(
url
,
'type://host/path'
)
class URLopener_Tests(unittest.TestCase):
"""Testcase to test the open method of URLopener class."""
...
...
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