@@ -4052,19 +4052,18 @@ class PyIncrementalNewlineDecoderTest(IncrementalNewlineDecoderTest):
4052
4052
4053
4053
class MiscIOTest (unittest .TestCase ):
4054
4054
4055
+ # for test__all__, actual values are set in subclasses
4056
+ name_of_module = None
4057
+ extra_exported = ()
4058
+ not_exported = ()
4059
+
4055
4060
def tearDown (self ):
4056
4061
os_helper .unlink (os_helper .TESTFN )
4057
4062
4058
4063
def test___all__ (self ):
4059
- for name in self .io .__all__ :
4060
- obj = getattr (self .io , name , None )
4061
- self .assertIsNotNone (obj , name )
4062
- if name in ("open" , "open_code" ):
4063
- continue
4064
- elif "error" in name .lower () or name == "UnsupportedOperation" :
4065
- self .assertTrue (issubclass (obj , Exception ), name )
4066
- elif not name .startswith ("SEEK_" ):
4067
- self .assertTrue (issubclass (obj , self .IOBase ))
4064
+ support .check__all__ (self , self .io , self .name_of_module ,
4065
+ extra = self .extra_exported ,
4066
+ not_exported = self .not_exported )
4068
4067
4069
4068
def test_attributes (self ):
4070
4069
f = self .open (os_helper .TESTFN , "wb" , buffering = 0 )
@@ -4426,6 +4425,8 @@ def test_text_encoding(self):
4426
4425
4427
4426
class CMiscIOTest (MiscIOTest ):
4428
4427
io = io
4428
+ name_of_module = "io" , "_io"
4429
+ extra_exported = "BlockingIOError" ,
4429
4430
4430
4431
def test_readinto_buffer_overflow (self ):
4431
4432
# Issue #18025
@@ -4490,6 +4491,9 @@ def test_daemon_threads_shutdown_stderr_deadlock(self):
4490
4491
4491
4492
class PyMiscIOTest (MiscIOTest ):
4492
4493
io = pyio
4494
+ name_of_module = "_pyio" , "io"
4495
+ extra_exported = "BlockingIOError" , "open_code" ,
4496
+ not_exported = "valid_seek_flags" ,
4493
4497
4494
4498
4495
4499
@unittest .skipIf (os .name == 'nt' , 'POSIX signals required for this test.' )
@@ -4777,7 +4781,7 @@ def load_tests(loader, tests, pattern):
4777
4781
mocks = (MockRawIO , MisbehavedRawIO , MockFileIO , CloseFailureIO ,
4778
4782
MockNonBlockWriterIO , MockUnseekableIO , MockRawIOWithoutRead ,
4779
4783
SlowFlushRawIO )
4780
- all_members = io .__all__ + [ "IncrementalNewlineDecoder" ]
4784
+ all_members = io .__all__
4781
4785
c_io_ns = {name : getattr (io , name ) for name in all_members }
4782
4786
py_io_ns = {name : getattr (pyio , name ) for name in all_members }
4783
4787
globs = globals ()
0 commit comments