@@ -276,6 +276,25 @@ def setup(self) -> None:
276
276
with open (path , 'w' , encoding = 'utf8' ) as f :
277
277
f .write (content )
278
278
279
+ # Precalculate steps for find_steps()
280
+ steps : Dict [int , List [FileOperation ]] = {}
281
+ for path , _ in self .files :
282
+ m = re .match (r'.*\.([0-9]+)$' , path )
283
+ if m :
284
+ num = int (m .group (1 ))
285
+ assert num >= 2
286
+ target_path = re .sub (r'\.[0-9]+$' , '' , path )
287
+ module = module_from_path (target_path )
288
+ operation = UpdateFile (module , path , target_path )
289
+ steps .setdefault (num , []).append (operation )
290
+ for num , paths in self .deleted_paths .items ():
291
+ assert num >= 2
292
+ for path in paths :
293
+ module = module_from_path (path )
294
+ steps .setdefault (num , []).append (DeleteFile (module , path ))
295
+ max_step = max (steps ) if steps else 2
296
+ self .steps = [steps .get (num , []) for num in range (2 , max_step + 1 )]
297
+
279
298
def teardown (self ) -> None :
280
299
assert self .old_cwd is not None and self .tmpdir is not None , \
281
300
"test was not properly set up"
@@ -312,23 +331,7 @@ def find_steps(self) -> List[List[FileOperation]]:
312
331
313
332
Defaults to having two steps if there aern't any operations.
314
333
"""
315
- steps : Dict [int , List [FileOperation ]] = {}
316
- for path , _ in self .files :
317
- m = re .match (r'.*\.([0-9]+)$' , path )
318
- if m :
319
- num = int (m .group (1 ))
320
- assert num >= 2
321
- target_path = re .sub (r'\.[0-9]+$' , '' , path )
322
- module = module_from_path (target_path )
323
- operation = UpdateFile (module , path , target_path )
324
- steps .setdefault (num , []).append (operation )
325
- for num , paths in self .deleted_paths .items ():
326
- assert num >= 2
327
- for path in paths :
328
- module = module_from_path (path )
329
- steps .setdefault (num , []).append (DeleteFile (module , path ))
330
- max_step = max (steps ) if steps else 2
331
- return [steps .get (num , []) for num in range (2 , max_step + 1 )]
334
+ return self .steps
332
335
333
336
334
337
def module_from_path (path : str ) -> str :
0 commit comments