33import errno
44import io
55import os
6+ import pathlib
67import signal
78import sys
89import re
@@ -61,6 +62,9 @@ def test_infer_return_type_multiples_and_none(self):
6162 with self .assertRaises (TypeError ):
6263 tempfile ._infer_return_type (b'' , None , '' )
6364
65+ def test_infer_return_type_pathlib (self ):
66+ self .assertIs (str , tempfile ._infer_return_type (pathlib .Path ('/' )))
67+
6468
6569# Common functionality.
6670
@@ -84,8 +88,13 @@ def nameCheck(self, name, dir, pre, suf):
8488 nsuf = nbase [len (nbase )- len (suf ):]
8589
8690 if dir is not None :
87- self .assertIs (type (name ), str if type (dir ) is str else bytes ,
88- "unexpected return type" )
91+ self .assertIs (
92+ type (name ),
93+ str
94+ if type (dir ) is str or isinstance (dir , os .PathLike ) else
95+ bytes ,
96+ "unexpected return type" ,
97+ )
8998 if pre is not None :
9099 self .assertIs (type (name ), str if type (pre ) is str else bytes ,
91100 "unexpected return type" )
@@ -430,6 +439,7 @@ def test_choose_directory(self):
430439 dir = tempfile .mkdtemp ()
431440 try :
432441 self .do_create (dir = dir ).write (b"blat" )
442+ self .do_create (dir = pathlib .Path (dir )).write (b"blat" )
433443 finally :
434444 os .rmdir (dir )
435445
@@ -666,6 +676,7 @@ def test_choose_directory(self):
666676 dir = tempfile .mkdtemp ()
667677 try :
668678 self .do_create (dir = dir )
679+ self .do_create (dir = pathlib .Path (dir ))
669680 finally :
670681 os .rmdir (dir )
671682
@@ -735,6 +746,7 @@ def test_choose_directory(self):
735746 dir = tempfile .mkdtemp ()
736747 try :
737748 os .rmdir (self .do_create (dir = dir ))
749+ os .rmdir (self .do_create (dir = pathlib .Path (dir )))
738750 finally :
739751 os .rmdir (dir )
740752
0 commit comments