4343from pathlib import Path
4444from typing import List
4545
46- __version__ = '1.8.2 '
46+ __version__ = '1.8.3 '
4747
4848_LOGGER = logging .getLogger ('tftest' )
4949
@@ -107,8 +107,7 @@ def parse_args(init_vars=None, tf_vars=None, targets=None, **kw):
107107 ]
108108 for arg in _TG_KV_ARGS :
109109 if kw .get (f"tg_{ arg } " ):
110- cmd_args += [f'--terragrunt-{ arg .replace ("_" , "-" )} ' ,
111- kw [f"tg_{ arg } " ]]
110+ cmd_args += [f'--terragrunt-{ arg .replace ("_" , "-" )} ' , kw [f"tg_{ arg } " ]]
112111 if kw .get ('tg_parallelism' ):
113112 cmd_args .append (f'--terragrunt-parallelism { kw ["tg_parallelism" ]} ' )
114113 if isinstance (kw .get ('tg_override_attr' ), dict ):
@@ -149,9 +148,10 @@ def parse_args(init_vars=None, tf_vars=None, targets=None, **kw):
149148 cmd_args += list (
150149 itertools .chain .from_iterable (
151150 ("-var" ,
152- "{}={}" .format (k , json .dumps (v ) if isinstance (v , (dict , list )) else v ))
153- for k , v in tf_vars .items ()
154- ))
151+ "{}={}" .format (k ,
152+ json .dumps (v ) if isinstance (v , (dict ,
153+ list )) else v ))
154+ for k , v in tf_vars .items ()))
155155 if targets :
156156 cmd_args += [("-target={}" .format (t )) for t in targets ]
157157 if kw .get ('tf_var_file' ):
@@ -329,8 +329,7 @@ def __init__(self, tfdir, basedir=None, binary='terraform', env=None,
329329 self .env = os .environ .copy ()
330330 self .tg_run_all = False
331331 self ._plan_formatter = lambda out : TerraformPlanOutput (json .loads (out ))
332- self ._output_formatter = lambda out : TerraformValueDict (
333- json .loads (out ))
332+ self ._output_formatter = lambda out : TerraformValueDict (json .loads (out ))
334333 self .enable_cache = enable_cache
335334 if not cache_dir :
336335 self .cache_dir = Path (os .path .dirname (
@@ -365,13 +364,11 @@ def remove_readonly(func, path, excinfo):
365364 for tg_dir in glob .glob (path , recursive = True ):
366365 if os .path .isdir (tg_dir ):
367366 shutil .rmtree (tg_dir , onerror = remove_readonly )
368- _LOGGER .debug (
369- 'Restoring original TF files after prevent destroy changes' )
367+ _LOGGER .debug ('Restoring original TF files after prevent destroy changes' )
370368 if restore_files :
371369 for bkp_file in Path (tfdir ).rglob ('*.bkp' ):
372370 try :
373- shutil .copy (str (bkp_file ),
374- f'{ str (bkp_file ).strip (".bkp" )} ' )
371+ shutil .copy (str (bkp_file ), f'{ str (bkp_file ).strip (".bkp" )} ' )
375372 except (IOError , OSError ):
376373 _LOGGER .exception (
377374 f'Unable to restore terraform file { bkp_file .resolve ()} ' )
@@ -384,12 +381,12 @@ def _abspath(self, path):
384381 """Make relative path absolute from base dir."""
385382 return path if os .path .isabs (path ) else os .path .join (self ._basedir , path )
386383
387- def _dirhash (self , directory , hash , ignore_hidden = False , exclude_directories = [], excluded_extensions = []):
384+ def _dirhash (self , directory , hash , ignore_hidden = False ,
385+ exclude_directories = [], excluded_extensions = []):
388386 """Returns hash of directory's file contents"""
389387 assert Path (directory ).is_dir ()
390388 try :
391- dir_iter = sorted (Path (directory ).iterdir (),
392- key = lambda p : str (p ).lower ())
389+ dir_iter = sorted (Path (directory ).iterdir (), key = lambda p : str (p ).lower ())
393390 except FileNotFoundError :
394391 return hash
395392 for path in dir_iter :
@@ -403,7 +400,8 @@ def _dirhash(self, directory, hash, ignore_hidden=False, exclude_directories=[],
403400 hash .update (chunk )
404401 elif path .is_dir () and path .name not in exclude_directories :
405402 hash = self ._dirhash (path , hash , ignore_hidden = ignore_hidden ,
406- exclude_directories = exclude_directories , excluded_extensions = excluded_extensions )
403+ exclude_directories = exclude_directories ,
404+ excluded_extensions = excluded_extensions )
407405 return hash
408406
409407 def generate_cache_hash (self , method_kwargs ):
@@ -423,18 +421,23 @@ def generate_cache_hash(self, method_kwargs):
423421 if path_param in method_kwargs :
424422 if isinstance (method_kwargs [path_param ], list ):
425423 params [path_param ] = [
426- sha1 (open (fp , 'rb' ).read ()).hexdigest () for fp in method_kwargs [path_param ]]
424+ sha1 (open (fp , 'rb' ).read ()).hexdigest ()
425+ for fp in method_kwargs [path_param ]
426+ ]
427427 else :
428428 params [path_param ] = sha1 (
429429 open (method_kwargs [path_param ], 'rb' ).read ()).hexdigest ()
430430
431431 # creates hash of all file content within tfdir
432432 # excludes .terraform/, hidden files, tfstate files from being used for hash
433- params ["tfdir" ] = self ._dirhash (
434- self .tfdir , sha1 (), ignore_hidden = True , exclude_directories = [".terraform" ], excluded_extensions = ['.backup' , '.tfstate' ]).hexdigest ()
433+ params ["tfdir" ] = self ._dirhash (self .tfdir , sha1 (), ignore_hidden = True ,
434+ exclude_directories = [".terraform" ],
435+ excluded_extensions = ['.backup' , '.tfstate'
436+ ]).hexdigest ()
435437
436- return sha1 (json .dumps (params , sort_keys = True ,
437- default = str ).encode ("cp037" )).hexdigest () + ".pickle"
438+ return sha1 (
439+ json .dumps (params , sort_keys = True ,
440+ default = str ).encode ("cp037" )).hexdigest () + ".pickle"
438441
439442 def _cache (func ):
440443
@@ -597,7 +600,8 @@ def workspace(self, name=None):
597600
598601 @_cache
599602 def plan (self , input = False , color = False , refresh = True , tf_vars = None ,
600- targets = None , output = False , tf_var_file = None , state = None , use_cache = False , ** kw ):
603+ targets = None , output = False , tf_var_file = None , state = None ,
604+ use_cache = False , ** kw ):
601605 """
602606 Run Terraform plan command, optionally returning parsed plan output.
603607
@@ -629,8 +633,7 @@ def plan(self, input=False, color=False, refresh=True, tf_vars=None,
629633 try :
630634 return self ._plan_formatter (result .out )
631635 except json .JSONDecodeError as e :
632- raise TerraformTestError (
633- 'Error decoding plan output: {}' .format (e ))
636+ raise TerraformTestError ('Error decoding plan output: {}' .format (e ))
634637
635638 @_cache
636639 def apply (self , input = False , color = False , auto_approve = True , tf_vars = None ,
0 commit comments