Commit bfbae77c authored by Éric Araujo's avatar Éric Araujo

Branch merge

parents 9bdf822e 1a9a758a
...@@ -566,7 +566,7 @@ The module :mod:`curses` defines the following functions: ...@@ -566,7 +566,7 @@ The module :mod:`curses` defines the following functions:
Instantiate the string *str* with the supplied parameters, where *str* should Instantiate the string *str* with the supplied parameters, where *str* should
be a parameterized string obtained from the terminfo database. E.g. be a parameterized string obtained from the terminfo database. E.g.
``tparm(tigetstr("cup"), 5, 3)`` could result in ``'\033[6;4H'``, the exact ``tparm(tigetstr("cup"), 5, 3)`` could result in ``b'\033[6;4H'``, the exact
result depending on terminal type. result depending on terminal type.
......
...@@ -190,7 +190,7 @@ def module_funcs(stdscr): ...@@ -190,7 +190,7 @@ def module_funcs(stdscr):
curses.tigetflag('hc') curses.tigetflag('hc')
curses.tigetnum('co') curses.tigetnum('co')
curses.tigetstr('cr') curses.tigetstr('cr')
curses.tparm('cr') curses.tparm(b'cr')
curses.typeahead(sys.__stdin__.fileno()) curses.typeahead(sys.__stdin__.fileno())
curses.unctrl('a') curses.unctrl('a')
curses.ungetch('a') curses.ungetch('a')
...@@ -264,6 +264,10 @@ def test_issue6243(stdscr): ...@@ -264,6 +264,10 @@ def test_issue6243(stdscr):
curses.ungetch(1025) curses.ungetch(1025)
stdscr.getkey() stdscr.getkey()
def test_issue10570():
b = curses.tparm(curses.tigetstr("cup"), 5, 3)
assert type(b) is bytes
def main(stdscr): def main(stdscr):
curses.savetty() curses.savetty()
try: try:
...@@ -272,6 +276,7 @@ def main(stdscr): ...@@ -272,6 +276,7 @@ def main(stdscr):
test_userptr_without_set(stdscr) test_userptr_without_set(stdscr)
test_resize_term(stdscr) test_resize_term(stdscr)
test_issue6243(stdscr) test_issue6243(stdscr)
test_issue10570()
finally: finally:
curses.resetty() curses.resetty()
......
...@@ -259,8 +259,9 @@ class SimpleHTTPServerTestCase(BaseTestCase): ...@@ -259,8 +259,9 @@ class SimpleHTTPServerTestCase(BaseTestCase):
with open(os.path.join(self.tempdir_name, 'index.html'), 'w') as f: with open(os.path.join(self.tempdir_name, 'index.html'), 'w') as f:
response = self.request('/' + self.tempdir_name + '/') response = self.request('/' + self.tempdir_name + '/')
self.check_status_and_reason(response, 200) self.check_status_and_reason(response, 200)
if os.name == 'posix': # chmod() doesn't work as expected on Windows, and filesystem
# chmod won't work as expected on Windows platforms # permissions are ignored by root on Unix.
if os.name == 'posix' and os.geteuid() != 0:
os.chmod(self.tempdir, 0) os.chmod(self.tempdir, 0)
response = self.request(self.tempdir_name + '/') response = self.request(self.tempdir_name + '/')
self.check_status_and_reason(response, 404) self.check_status_and_reason(response, 404)
...@@ -305,6 +306,9 @@ print("%%s, %%s, %%s" %% (form.getfirst("spam"), form.getfirst("eggs"), ...@@ -305,6 +306,9 @@ print("%%s, %%s, %%s" %% (form.getfirst("spam"), form.getfirst("eggs"),
form.getfirst("bacon"))) form.getfirst("bacon")))
""" """
@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
"This test can't be run reliably as root (issue #13308).")
class CGIHTTPServerTestCase(BaseTestCase): class CGIHTTPServerTestCase(BaseTestCase):
class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler): class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
pass pass
......
...@@ -66,6 +66,9 @@ Core and Builtins ...@@ -66,6 +66,9 @@ Core and Builtins
Library Library
------- -------
- Issue #10570: curses.tigetstr() is now expecting a byte string, instead of
a Unicode string.
- Issue #2892: preserve iterparse events in case of SyntaxError. - Issue #2892: preserve iterparse events in case of SyntaxError.
- Issue #670664: Fix HTMLParser to correctly handle the content of - Issue #670664: Fix HTMLParser to correctly handle the content of
......
...@@ -2600,7 +2600,7 @@ PyCurses_tparm(PyObject *self, PyObject *args) ...@@ -2600,7 +2600,7 @@ PyCurses_tparm(PyObject *self, PyObject *args)
PyCursesSetupTermCalled; PyCursesSetupTermCalled;
if (!PyArg_ParseTuple(args, "s|iiiiiiiii:tparm", if (!PyArg_ParseTuple(args, "y|iiiiiiiii:tparm",
&fmt, &i1, &i2, &i3, &i4, &fmt, &i1, &i2, &i3, &i4,
&i5, &i6, &i7, &i8, &i9)) { &i5, &i6, &i7, &i8, &i9)) {
return NULL; return NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment