diff -r 01ec8bb7187f Lib/test/test_file2k.py --- a/Lib/test/test_file2k.py Mon Jul 07 14:47:17 2014 +0300 +++ b/Lib/test/test_file2k.py Mon Jul 07 11:22:07 2014 -0400 @@ -4,6 +4,7 @@ import itertools import select import signal +import stat import subprocess import time from array import array @@ -424,17 +425,22 @@ @unittest.skipUnless(os.name == 'posix', 'test requires a posix system.') def test_write_full(self): - # Issue #17976 - try: - f = open('/dev/full', 'w', 1) - except IOError: + # OpenBSD does not have a /dev/full character device + if os.path.exists('/dev/full'): + if stat.S_ISCHR(os.stat('/dev/full').st_mode): + # Issue #17976 + f = open('/dev/full', 'w', 1) + self.skipTest("requires '/dev/full'") + try: + with self.assertRaises(IOError): + f.write('hello') + f.write('\n') + finally: + f.close() + else: + self.skipTest("'/dev/full' must be a character device") + else: self.skipTest("requires '/dev/full'") - try: - with self.assertRaises(IOError): - f.write('hello') - f.write('\n') - finally: - f.close() class FileSubclassTests(unittest.TestCase):