o nnh@shdZddlmZddlZddlmZmZddlm Z m Z ddl m Z m Z Gdd d ZGd d d ZdS) z2Test metadata for passing data to delegated tests.) annotationsN)display generate_name)write_json_fileread_json_file) parse_diffFileDiffc@sTeZdZdZdddZddd Zdd d ZdddZedddZ edddZ dS)Metadataz4Metadata object for passing data to delegated tests.returnNonecCs$i|_d|_d|_d|_t|_dS)zInitialize metadata.N)changes cloud_configchange_description ci_providerr session_idselfrJ/usr/local/lib/python3.10/dist-packages/ansible_test/_internal/metadata.py__init__s  zMetadata.__init__difft.Optional[list[str]]cCspt|}t|ddd}tdd|D|_dd|D}dd|D}||D] }||jvr0q(d |j|<q(d S) z,Populate the changeset using the given diff.cSs|jjSN)newpath)krrr#sz+Metadata.populate_changes..)keycss$|] }|jjt|jjfVqdSr)rrtupleranges.0patchrrr %s"z,Metadata.populate_changes..cSs4g|]}|jj|jjkr|jjr|jjr|jjqSr)oldrrexistsr!rrr 's4z-Metadata.populate_changes..cSsg|] }|jjs|jjqSr)rr&r%rr!rrrr'(s))rrN)rsorteddictr )rrpatchesrenamesdeletesrrrrpopulate_changes s   zMetadata.populate_changesdict[str, t.Any]cCs t|j|j|j|j|jdS)z3Return a dictionary representation of the metadata.)r rrrr)r)r rrrto_dictrrrrrr/3szMetadata.to_dictrstrcCs,|}tjd||fddt||dS)z)Write the metadata to the specified file.z>>> Metadata: %s %s) verbosityN)r/rinfor)rrdatarrrto_file=szMetadata.to_filecCst|}t|S)z/Return metadata loaded from the specified file.)rr from_dict)rr4rrr from_fileEs zMetadata.from_filer4cCsBt}|d|_|d|_|d|_t|d|_|d|_|S)z5Return metadata loaded from the specified dictionary.r rrrr)r r rrChangeDescriptionr6rr)r4metadatarrrr6Ks    zMetadata.from_dictNr r )rrr r r r.)rr0r r )rr0r r )r4r.r r ) __name__ __module__ __qualname____doc__rr-r/r5 staticmethodr7r6rrrrr s     r c@sNeZdZdZdddZedddZedd d Zdd d Ze dddZ dS)r8zDescription of changes.r r cCs(d|_g|_g|_i|_i|_g|_dS)Ncommand changed_paths deleted_pathsregular_command_targetsfocused_command_targetsno_integration_pathsrrrrr[s  zChangeDescription.__init__rcC|j|jS)zOptional list of target names.)rFgetrCrrrrtargetsczChangeDescription.targetscCrI)z&Optional list of focused target names.)rGrJrCrrrrfocused_targetshrLz!ChangeDescription.focused_targetsr.cCs t|j|j|j|j|j|jdS)z=Return a dictionary representation of the change description.rB)r)rCrDrErFrGrHrrrrr/mszChangeDescription.to_dictr4cCsFt}|d|_|d|_|d|_|d|_|d|_|d|_|S)z=Return a change description loaded from the given dictionary.rCrDrErFrGrH)r8rCrDrErFrGrH)r4r rrrr6xs      zChangeDescription.from_dictNr:)r rr;)r4r.r r8) r<r=r>r?rpropertyrKrMr/r@r6rrrrr8Xs     r8)r? __future__rtypingtutilrriorrrrr r r8rrrrs C