@@ -48,23 +48,28 @@ def tempdir_as_cwd():
4848
4949
5050class SiteDir :
51+ def setUp (self ):
52+ self .fixtures = ExitStack ()
53+ self .addCleanup (self .fixtures .close )
54+ self .site_dir = self .fixtures .enter_context (tempdir ())
55+
56+
57+ class OnSysPath :
5158 @staticmethod
5259 @contextlib .contextmanager
53- def site_dir ():
54- with tempdir () as tmp :
55- sys .path [:0 ] = [str (tmp )]
56- try :
57- yield tmp
58- finally :
59- sys .path .remove (str (tmp ))
60+ def add_sys_path (dir ):
61+ sys .path [:0 ] = [str (dir )]
62+ try :
63+ yield
64+ finally :
65+ sys .path .remove (str (dir ))
6066
6167 def setUp (self ):
62- self .fixtures = ExitStack ()
63- self .addCleanup (self .fixtures .close )
64- self .site_dir = self .fixtures .enter_context (self .site_dir ())
68+ super (OnSysPath , self ).setUp ()
69+ self .fixtures .enter_context (self .add_sys_path (self .site_dir ))
6570
6671
67- class DistInfoPkg (SiteDir ):
72+ class DistInfoPkg (OnSysPath , SiteDir ):
6873 files = {
6974 "distinfo_pkg-1.0.0.dist-info" : {
7075 "METADATA" : """
@@ -91,7 +96,13 @@ def setUp(self):
9196 build_files (DistInfoPkg .files , self .site_dir )
9297
9398
94- class EggInfoPkg (SiteDir ):
99+ class DistInfoPkgOffPath (SiteDir ):
100+ def setUp (self ):
101+ super (DistInfoPkgOffPath , self ).setUp ()
102+ build_files (DistInfoPkg .files , self .site_dir )
103+
104+
105+ class EggInfoPkg (OnSysPath , SiteDir ):
95106 files = {
96107 "egginfo_pkg.egg-info" : {
97108 "PKG-INFO" : """
@@ -128,7 +139,7 @@ def setUp(self):
128139 build_files (EggInfoPkg .files , prefix = self .site_dir )
129140
130141
131- class EggInfoFile (SiteDir ):
142+ class EggInfoFile (OnSysPath , SiteDir ):
132143 files = {
133144 "egginfo_file.egg-info" : """
134145 Metadata-Version: 1.0
@@ -149,14 +160,6 @@ def setUp(self):
149160 build_files (EggInfoFile .files , prefix = self .site_dir )
150161
151162
152- class LocalPackage :
153- def setUp (self ):
154- self .fixtures = ExitStack ()
155- self .addCleanup (self .fixtures .close )
156- self .fixtures .enter_context (tempdir_as_cwd ())
157- build_files (EggInfoPkg .files )
158-
159-
160163def build_files (file_defs , prefix = pathlib .Path ()):
161164 """Build a set of files/directories, as described by the
162165
0 commit comments