diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/http/cookiejar.py | 18 | ||||
-rw-r--r-- | Lib/socket.py | 3 | ||||
-rw-r--r-- | Lib/test/test_httpservers.py | 8 | ||||
-rw-r--r-- | Lib/test/test_os.py | 19 | ||||
-rw-r--r-- | Lib/test/test_socket.py | 7 | ||||
-rw-r--r-- | Lib/test/test_time.py | 8 |
6 files changed, 47 insertions, 16 deletions
diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index 7f7f55b..9d798e8 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -29,6 +29,7 @@ __all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy', 'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar'] import copy +import datetime import re import time import urllib.parse, urllib.request @@ -97,10 +98,12 @@ def time2isoz(t=None): 1994-11-24 08:49:37Z """ - if t is None: t = time.time() - year, mon, mday, hour, min, sec = time.gmtime(t)[:6] + if t is None: + dt = datetime.datetime.utcnow() + else: + dt = datetime.datetime.utcfromtimestamp(t) return "%04d-%02d-%02d %02d:%02d:%02dZ" % ( - year, mon, mday, hour, min, sec) + dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) def time2netscape(t=None): """Return a string representing time in seconds since epoch, t. @@ -113,10 +116,13 @@ def time2netscape(t=None): Wed, DD-Mon-YYYY HH:MM:SS GMT """ - if t is None: t = time.time() - year, mon, mday, hour, min, sec, wday = time.gmtime(t)[:7] + if t is None: + dt = datetime.datetime.utcnow() + else: + dt = datetime.datetime.utcfromtimestamp(t) return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % ( - DAYS[wday], mday, MONTHS[mon-1], year, hour, min, sec) + DAYS[dt.weekday()], dt.day, MONTHS[dt.month-1], + dt.year, dt.hour, dt.minute, dt.second) UTC_ZONES = {"GMT": None, "UTC": None, "UT": None, "Z": None} diff --git a/Lib/socket.py b/Lib/socket.py index 1e28549..5715034 100644 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -112,6 +112,9 @@ class socket(_socket.socket): s[7:]) return s + def __getstate__(self): + raise TypeError("Cannot serialize socket object") + def dup(self): """dup() -> socket object diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index a16e0e3..39ebc26 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -38,8 +38,8 @@ class TestServerThread(threading.Thread): self.test_object = test_object def run(self): - self.server = HTTPServer(('', 0), self.request_handler) - self.test_object.PORT = self.server.socket.getsockname()[1] + self.server = HTTPServer(('localhost', 0), self.request_handler) + self.test_object.HOST, self.test_object.PORT = self.server.socket.getsockname() self.test_object.server_started.set() self.test_object = None try: @@ -66,7 +66,7 @@ class BaseTestCase(unittest.TestCase): support.threading_cleanup(*self._threads) def request(self, uri, method='GET', body=None, headers={}): - self.connection = http.client.HTTPConnection('localhost', self.PORT) + self.connection = http.client.HTTPConnection(self.HOST, self.PORT) self.connection.request(method, uri, body, headers) return self.connection.getresponse() @@ -107,7 +107,7 @@ class BaseHTTPServerTestCase(BaseTestCase): def setUp(self): BaseTestCase.setUp(self) - self.con = http.client.HTTPConnection('localhost', self.PORT) + self.con = http.client.HTTPConnection(self.HOST, self.PORT) self.con.connect() def test_command(self): diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index e40f763..35aa7fa 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -97,6 +97,25 @@ class FileTests(unittest.TestCase): self.assertEqual(fobj.read().splitlines(), [b"bacon", b"eggs", b"spam"]) + def write_windows_console(self, *args): + retcode = subprocess.call(args, + # use a new console to not flood the test output + creationflags=subprocess.CREATE_NEW_CONSOLE, + # use a shell to hide the console window (SW_HIDE) + shell=True) + self.assertEqual(retcode, 0) + + @unittest.skipUnless(sys.platform == 'win32', + 'test specific to the Windows console') + def test_write_windows_console(self): + # Issue #11395: the Windows console returns an error (12: not enough + # space error) on writing into stdout if stdout mode is binary and the + # length is greater than 66,000 bytes (or less, depending on heap + # usage). + code = "print('x' * 100000)" + self.write_windows_console(sys.executable, "-c", code) + self.write_windows_console(sys.executable, "-u", "-c", code) + class TemporaryFileTests(unittest.TestCase): def setUp(self): diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index d761a73..8b23ae9 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -18,6 +18,7 @@ import contextlib from weakref import proxy import signal import math +import pickle try: import fcntl except ImportError: @@ -764,6 +765,12 @@ class GeneralModuleTests(unittest.TestCase): fp.close() self.assertEqual(repr(fp), "<_io.BufferedReader name=-1>") + def test_pickle(self): + sock = socket.socket() + with sock: + for protocol in range(pickle.HIGHEST_PROTOCOL + 1): + self.assertRaises(TypeError, pickle.dumps, sock, protocol) + @unittest.skipUnless(thread, 'Threading required for this test.') class BasicTCPTest(SocketConnectedTest): diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py index 7266e27..2b58093 100644 --- a/Lib/test/test_time.py +++ b/Lib/test/test_time.py @@ -295,12 +295,8 @@ class _TestStrftimeYear: except ValueError: # strftime() is limited to [1; 9999] with Visual Studio return - # Issue #10864: OpenIndiana is limited to 4 digits, - # but Python doesn't raise a ValueError - #self.assertEqual(text, '12345') - #self.assertEqual(self.yearstr(123456789), '123456789') - self.assertIn(text, ('2345', '12345')) - self.assertIn(self.yearstr(123456789), ('123456789', '6789')) + self.assertEqual(text, '12345') + self.assertEqual(self.yearstr(123456789), '123456789') class _Test2dYear(_BaseYearTest): accept2dyear = 1 |