From c43e79f3c87ebf19fec2e481068bf48262096716 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 18 Jun 2007 18:26:36 +0000 Subject: Fix a buch of shallow test failures. Note: in test_fileinput.py, two tests are disabled until I figure out how to replace these. --- Lib/smtplib.py | 4 +-- Lib/test/test_fileinput.py | 69 +++++++++++++++++++++++++--------------------- Lib/test/test_tokenize.py | 4 ++- Modules/_fileio.c | 2 +- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/Lib/smtplib.py b/Lib/smtplib.py index 299a70d..67904a2 100755 --- a/Lib/smtplib.py +++ b/Lib/smtplib.py @@ -348,7 +348,7 @@ class SMTP: self.close() raise SMTPServerDisconnected("Connection unexpectedly closed") if self.debuglevel > 0: print('reply:', repr(line), file=stderr) - resp.append(line[4:].strip()) + resp.append(line[4:].strip(b' \t\n')) code=line[:3] # Check that the error code is syntactically correct. # Don't attempt to read a continuation line if it is broken. @@ -361,7 +361,7 @@ class SMTP: if line[3:4]!="-": break - errmsg = "\n".join(resp) + errmsg = b"\n".join(resp) if self.debuglevel > 0: print('reply: retcode (%s); Msg: %s' % (errcode,errmsg), file=stderr) return errcode, errmsg diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py index e4b477a..e0b5818 100644 --- a/Lib/test/test_fileinput.py +++ b/Lib/test/test_fileinput.py @@ -20,7 +20,8 @@ from fileinput import FileInput, hook_encoded def writeTmp(i, lines, mode='w'): # opening in text mode is the default name = TESTFN + str(i) f = open(name, mode) - f.writelines(lines) + for line in lines: + f.write(line) f.close() return name @@ -154,17 +155,19 @@ class FileInputTests(unittest.TestCase): finally: remove_tempfiles(t1, t2) - def test_unicode_filenames(self): - try: - t1 = writeTmp(1, ["A\nB"]) - encoding = sys.getfilesystemencoding() - if encoding is None: - encoding = 'ascii' - fi = FileInput(files=str(t1, encoding)) - lines = list(fi) - self.assertEqual(lines, ["A\n", "B"]) - finally: - remove_tempfiles(t1) +## def test_unicode_filenames(self): +## # XXX A unicode string is always returned by writeTmp. +## # So is this needed? +## try: +## t1 = writeTmp(1, ["A\nB"]) +## encoding = sys.getfilesystemencoding() +## if encoding is None: +## encoding = 'ascii' +## fi = FileInput(files=str(t1, encoding)) +## lines = list(fi) +## self.assertEqual(lines, ["A\n", "B"]) +## finally: +## remove_tempfiles(t1) def test_fileno(self): try: @@ -197,26 +200,28 @@ class FileInputTests(unittest.TestCase): finally: remove_tempfiles(t1) - def test_file_opening_hook(self): - try: - # cannot use openhook and inplace mode - fi = FileInput(inplace=1, openhook=lambda f, m: None) - self.fail("FileInput should raise if both inplace " - "and openhook arguments are given") - except ValueError: - pass - try: - fi = FileInput(openhook=1) - self.fail("FileInput should check openhook for being callable") - except ValueError: - pass - try: - t1 = writeTmp(1, ["A\nB"], mode="wb") - fi = FileInput(files=t1, openhook=hook_encoded("rot13")) - lines = list(fi) - self.assertEqual(lines, ["N\n", "O"]) - finally: - remove_tempfiles(t1) +## def test_file_opening_hook(self): +## # XXX The rot13 codec was removed. +## # So this test needs to be changed to use something else. +## try: +## # cannot use openhook and inplace mode +## fi = FileInput(inplace=1, openhook=lambda f, m: None) +## self.fail("FileInput should raise if both inplace " +## "and openhook arguments are given") +## except ValueError: +## pass +## try: +## fi = FileInput(openhook=1) +## self.fail("FileInput should check openhook for being callable") +## except ValueError: +## pass +## try: +## t1 = writeTmp(1, ["A\nB"], mode="wb") +## fi = FileInput(files=t1, openhook=hook_encoded("rot13")) +## lines = list(fi) +## self.assertEqual(lines, ["N\n", "O"]) +## finally: +## remove_tempfiles(t1) def test_main(): run_unittest(BufferSizesTests, FileInputTests) diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py index 7e1708e..4d8d9f1 100644 --- a/Lib/test/test_tokenize.py +++ b/Lib/test/test_tokenize.py @@ -80,7 +80,7 @@ if (x # The comments need to go in the right place """ import os, glob, random, time, sys -from cStringIO import StringIO +from io import StringIO from test.test_support import (verbose, findfile, is_resource_enabled, TestFailed) from tokenize import (tokenize, generate_tokens, untokenize, tok_name, @@ -189,6 +189,8 @@ def test_main(): for f in testfiles: # Print still working message since this test can be really slow + if verbose: + print(' round trip: ', f, file=sys.__stdout__) if next_time <= time.time(): next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL print(' test_main still working, be patient...', file=sys.__stdout__) diff --git a/Modules/_fileio.c b/Modules/_fileio.c index 660402f..76b47e5 100644 --- a/Modules/_fileio.c +++ b/Modules/_fileio.c @@ -705,7 +705,7 @@ get_closed(PyFileIOObject *self, void *closure) static PyObject * get_mode(PyFileIOObject *self, void *closure) { - return PyString_FromString(mode_string(self)); + return PyUnicode_FromString(mode_string(self)); } static PyGetSetDef fileio_getsetlist[] = { -- cgit v0.12