Brian Skinn <[email protected]> added the comment:
Here is warn.py, a minimal no-dependency repro script:
```
import doctest
class Tester:
r"""Provide docstring for testing.
>>> import warnings
>>> from contextlib import redirect_stderr
>>> from io import StringIO
>>> sio = StringIO()
>>> with redirect_stderr(sio):
... warnings.warn("Warning 'containing' single quotes")
>>> sio.getvalue()
"...UserWarning: Warning 'containing' single quotes\n..."
"""
doctest.run_docstring_examples(
Tester(),
{},
optionflags=doctest.ELLIPSIS,
)
```
`python3.7 warn.py` (3.7.3) gives no output.
`python3.8 warn.py` (3.8.0a3) gives:
```
$ python3.8 warn.py
****************************************************************
File "warn.py", line ?, in NoName
Failed example:
sio.getvalue()
Expected:
"...UserWarning: Warning 'containing' single quotes\n..."
Got:
'<doctest NoName[4]>:2: UserWarning: Warning \'containing\' single quotes\n
warnings.warn("Warning \'containing\' single quotes")\n'
```
The problem appears to be centered around *doctest*, as the following script
DOES NOT raise AssertionError with either of 3.7 or 3.8:
```
import warnings
from contextlib import redirect_stderr
from io import StringIO
sio = StringIO()
with redirect_stderr(sio):
warnings.warn("Warning 'containing' single quotes")
assert " 'containing' " in sio.getvalue()
```
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36695>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com