self.assertRaises(TypeError, compile)
self.assertRaises(ValueError, compile, 'print 42\n', '<string>', 'badmode')
self.assertRaises(ValueError, compile, 'print 42\n', '<string>', 'single', 0xff)
+ self.assertRaises(TypeError, compile, chr(0), 'f', 'exec')
if have_unicode:
compile(unicode('print u"\xc3\xa5"\n', 'utf8'), '', 'exec')
+ self.assertRaises(TypeError, compile, unichr(0), 'f', 'exec')
+ self.assertRaises(ValueError, compile, unicode('a = 1'), 'f', 'bad')
def test_delattr(self):
import sys
unlink(TESTFN)
self.assertRaises(TypeError, execfile)
+ self.assertRaises(TypeError, execfile, TESTFN, {}, ())
import os
self.assertRaises(IOError, execfile, os.curdir)
self.assertRaises(IOError, execfile, "I_dont_exist")
def __getitem__(self, index):
raise ValueError
self.assertRaises(ValueError, map, lambda x: x, BadSeq())
+ def badfunc(x):
+ raise RuntimeError
+ self.assertRaises(RuntimeError, map, badfunc, range(5))
def test_max(self):
self.assertEqual(max('123123'), '3')
self.assertRaises(TypeError, range)
self.assertRaises(TypeError, range, 1, 2, 3, 4)
self.assertRaises(ValueError, range, 1, 2, 0)
+ self.assertRaises(ValueError, range, a, a + 1, long(0))
+
+ class badzero(int):
+ def __cmp__(self, other):
+ raise RuntimeError
+ self.assertRaises(RuntimeError, range, a, a + 1, badzero(1))
# Reject floats when it would require PyLongs to represent.
# (smaller floats still accepted, but deprecated)
print "writelines accepted sequence of non-string objects"
f.close()
+try:
+ sys.stdin.seek(0)
+except IOError:
+ pass
+else:
+ print "should not be able to seek on sys.stdin"
+
+try:
+ sys.stdin.tell()
+except IOError:
+ pass
+else:
+ print "should not be able to seek on sys.stdin"
+
+try:
+ sys.stdin.truncate()
+except IOError:
+ pass
+else:
+ print "should not be able to truncate on sys.stdin"
+
+# verify repr works
+f = open(TESTFN)
+if not repr(f).startswith("<open file '" + TESTFN):
+ print "repr(file) failed"
+f.close()
+
+# verify repr works for unicode too
+f = open(unicode(TESTFN))
+if not repr(f).startswith("<open file u'" + TESTFN):
+ print "repr(file with unicode name) failed"
+f.close()
+
# verify that we get a sensible error message for bad mode argument
bad_mode = "qwerty"
try:
def test_iteration(self):
for v in self.set:
self.assert_(v in self.values)
+ setiter = iter(self.set)
+ self.assertEqual(setiter._length_cue(), len(self.set))
def test_pickling(self):
p = pickle.dumps(self.set)
set('abc')
set(gooditer())
+ def test_changingSizeWhileIterating(self):
+ s = set([1,2,3])
+ try:
+ for i in s:
+ s.update([4])
+ except RuntimeError:
+ pass
+ else:
+ self.fail("no exception when changing size during iteration")
+
#==============================================================================
class TestSetOfSets(unittest.TestCase):