summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/Queue.py1
-rw-r--r--Lib/calendar.py1
-rw-r--r--Lib/os.py30
-rw-r--r--Lib/test/test_grammar.py24
4 files changed, 42 insertions, 14 deletions
diff --git a/Lib/Queue.py b/Lib/Queue.py
index 0d69777..5125fd5 100644
--- a/Lib/Queue.py
+++ b/Lib/Queue.py
@@ -7,6 +7,7 @@ class Queue:
# Initialize a queue object with a given maximum size
# (If maxsize is <= 0, the maximum size is infinite)
def __init__(self, maxsize):
+ import thread
self._init(maxsize)
self.mutex = thread.allocate_lock()
self.esema = thread.allocate_lock()
diff --git a/Lib/calendar.py b/Lib/calendar.py
index b4e3aad..4dfcf0c8 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -6,7 +6,6 @@
# Import functions and variables from time module
from time import gmtime, localtime, mktime, asctime, ctime
-from time import timezone, altzone, daylight, tzname
# Exception raised for bad input (with string parameter for details)
error = 'calendar.error'
diff --git a/Lib/os.py b/Lib/os.py
index 7322fa5..bb90f2e 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -1,4 +1,4 @@
-# os.py -- either mac or posix depending on what system we're on.
+# os.py -- either mac, dos or posix depending on what system we're on.
# This exports:
# - all functions from either posix or mac, e.g., os.unlink, os.stat, etc.
@@ -14,7 +14,7 @@
# and opendir), and leave all pathname manipulation to os.path
# (e.g., split and join).
-# XXX This will need to distinguish between real posix and MS-DOS emulation
+# XXX This is incorrect if the import *path fails...
try:
from posix import *
@@ -30,14 +30,24 @@ try:
path = posixpath
del posixpath
except ImportError:
- from mac import *
- name = 'mac'
- curdir = ':'
- pardir = '::'
- sep = ':'
- import macpath
- path = macpath
- del macpath
+ try:
+ from mac import *
+ name = 'mac'
+ curdir = ':'
+ pardir = '::'
+ sep = ':'
+ import macpath
+ path = macpath
+ del macpath
+ except ImportError:
+ from dos import *
+ name = 'dos'
+ curdir = '.' # XXX doesn't always work
+ pardir = '..' # XXX doesn't always work
+ sep = '/' # XXX or '\\' ???
+ import dospath
+ path = dospath
+ del dospath
def execl(file, *args):
execv(file, args)
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index 742477f..0988574 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -23,9 +23,12 @@ print '1.1.2 Numeric literals'
print '1.1.2.1 Plain integers'
if 0xff <> 255: raise TestFailed, 'hex int'
if 0377 <> 255: raise TestFailed, 'octal int'
-if 2147483647 != 017777777777: raise TestFailed, 'max positive int'
-# Change the following line to "if 0:" if you have 64-bit integers
-if 1:
+if 2147483647 != 017777777777: raise TestFailed, 'large positive int'
+try:
+ from sys import maxint
+except ImportError:
+ maxint = 2147483647
+if maxint == 2147483647:
if -2147483647-1 != 020000000000: raise TestFailed, 'max negative int'
# XXX -2147483648
if 037777777777 != -1: raise TestFailed, 'oct -1'
@@ -37,6 +40,21 @@ if 1:
continue
raise TestFailed, \
'No OverflowError on huge integer literal ' + `s`
+elif eval('maxint == 9223372036854775807'):
+ if eval('9223372036854775807-1 != -01000000000000000000000'):
+ raise TestFailed, 'max negative int'
+ if eval('01777777777777777777777') != -1: raise TestFailed, 'oct -1'
+ if eval('0xffffffffffffffff') != -1: raise TestFailed, 'hex -1'
+ for s in '9223372036854775808', '02000000000000000000000', \
+ '0x10000000000000000':
+ try:
+ x = eval(s)
+ except OverflowError:
+ continue
+ raise TestFailed, \
+ 'No OverflowError on huge integer literal ' + `s`
+else:
+ print 'Weird maxint value', maxint
print '1.1.2.2 Long integers'
x = 0L