33import errno
44import io
55import os
6+ import pathlib
67import signal
78import sys
89import re
@@ -56,6 +57,9 @@ def test_infer_return_type_multiples_and_none(self):
5657 with self .assertRaises (TypeError ):
5758 tempfile ._infer_return_type (b'' , None , '' )
5859
60+ def test_infer_return_type_pathlib (self ):
61+ self .assertIs (str , tempfile ._infer_return_type (pathlib .Path ('/' )))
62+
5963
6064# Common functionality.
6165
@@ -79,8 +83,13 @@ def nameCheck(self, name, dir, pre, suf):
7983 nsuf = nbase [len (nbase )- len (suf ):]
8084
8185 if dir is not None :
82- self .assertIs (type (name ), str if type (dir ) is str else bytes ,
83- "unexpected return type" )
86+ self .assertIs (
87+ type (name ),
88+ str
89+ if type (dir ) is str or isinstance (dir , os .PathLike ) else
90+ bytes ,
91+ "unexpected return type" ,
92+ )
8493 if pre is not None :
8594 self .assertIs (type (name ), str if type (pre ) is str else bytes ,
8695 "unexpected return type" )
@@ -425,6 +434,7 @@ def test_choose_directory(self):
425434 dir = tempfile .mkdtemp ()
426435 try :
427436 self .do_create (dir = dir ).write (b"blat" )
437+ self .do_create (dir = pathlib .Path (dir )).write (b"blat" )
428438 finally :
429439 os .rmdir (dir )
430440
@@ -659,6 +669,7 @@ def test_choose_directory(self):
659669 dir = tempfile .mkdtemp ()
660670 try :
661671 self .do_create (dir = dir )
672+ self .do_create (dir = pathlib .Path (dir ))
662673 finally :
663674 os .rmdir (dir )
664675
@@ -728,6 +739,7 @@ def test_choose_directory(self):
728739 dir = tempfile .mkdtemp ()
729740 try :
730741 os .rmdir (self .do_create (dir = dir ))
742+ os .rmdir (self .do_create (dir = pathlib .Path (dir )))
731743 finally :
732744 os .rmdir (dir )
733745
0 commit comments