[pypy-commit] pypy py3.6: hg merge default
rlamy
pypy.commits at gmail.com
Thu Aug 29 09:17:57 EDT 2019
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.6
Changeset: r97328:d041869f8bd4
Date: 2019-08-29 14:16 +0100
http://bitbucket.org/pypy/pypy/changeset/d041869f8bd4/
Log: hg merge default
diff --git a/pypy/module/_warnings/interp_warnings.py b/pypy/module/_warnings/interp_warnings.py
--- a/pypy/module/_warnings/interp_warnings.py
+++ b/pypy/module/_warnings/interp_warnings.py
@@ -400,7 +400,7 @@
return None
# Split the source into lines.
- w_source_list = space.call_method(w_source, "splitlines")
+ w_source_list = space.call_method(space.w_text, "splitlines", w_source)
# Get the source line.
w_source_line = space.getitem(w_source_list, space.newint(lineno - 1))
diff --git a/pypy/module/_warnings/test/test_warnings.py b/pypy/module/_warnings/test/test_warnings.py
--- a/pypy/module/_warnings/test/test_warnings.py
+++ b/pypy/module/_warnings/test/test_warnings.py
@@ -107,3 +107,20 @@
except UnicodeEncodeError:
continue
_warnings.warn_explicit("text", UserWarning, filename, 1)
+
+ def test_issue31285(self):
+ import _warnings
+ def get_bad_loader(splitlines_ret_val):
+ class BadLoader:
+ def get_source(self, fullname):
+ class BadSource(str):
+ def splitlines(self):
+ return splitlines_ret_val
+ return BadSource('spam')
+ return BadLoader()
+ # does not raise:
+ _warnings.warn_explicit(
+ 'eggs', UserWarning, 'bar', 1,
+ module_globals={'__loader__': get_bad_loader(42),
+ '__name__': 'foobar'})
+
More information about the pypy-commit
mailing list