B §@`âã@sjdZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z m Z Gdd„dej ƒZdS)z& This script tests utility functions. éN)Úiter_tree_entriesÚiter_tree_filesÚRecursionErrorÚnormalize_filec@sÒeZdZdZdd„Zdd„Zdd„Zedd „ƒZed d „ƒZ d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Ze ejd*kd+¡d,d-„ƒZd.S)/Ú IterTreeTestzG The ``IterTreeTest`` class tests `pathspec.util.iter_tree_files()`. c Cs.x(|D] }t tj |j| |¡¡¡qWdS)z' Create the specified directories. N)ÚosÚmkdirÚpathÚjoinÚtemp_dirÚospath)ÚselfÚdirsÚdir©rú.reraise)rIÚDOES_NOT_EXIST)Zon_errorN) r%rrCÚOSErrorr0rr r1rDÚerrnoÚENOENT)r rNrGrrrÚtest_2_6_detect_broken_linkss z)IterTreeTest.test_2_6_detect_broken_linkscCs4| ¡| dg¡tt|jƒƒ}| |tƒ¡dS)z* Tests that broken links are ignored. )rIrON)r%rr0rr r1)r r3rrrÚtest_2_7_ignore_broken_links)s z)IterTreeTest.test_2_7_ignore_broken_linkscCsz| ¡| dg¡| ddddg¡| dddd d g¡tt|jd d ƒ}| |tt|j dd dddddddg ƒƒ¡dS)z8 Tests to make sure directory links can be ignored. r-rIrJzDir/CzDir/D)r@rI)rArJ)zDir/CxzDir/C)zDir/DxzDir/D)r>r-F)Z follow_linksr@rAzDir/CxzDir/Dxr>N) r%rrrr0rr r1r2r )r r3rrrÚtest_2_8_no_follow_links4s2z%IterTreeTest.test_2_8_no_follow_linkscCsh| dddg¡| dddddd g¡d d „t|jƒDƒ}| |tt|jdddddddd dg ƒƒ¡d S) z- Tests to make sure all files are found. r,r-z Dir/Innerr.r/zDir/czDir/dz Dir/Inner/ez Dir/Inner/fcSsh|] }|j’qSr)r )Ú.0Úentryrrrú gsz.IterTreeTest.test_3_entries..N)rrrr r1r0r2r )r r3rrrÚtest_3_entriesVs,zIterTreeTest.test_3_entries)ééz$pathlib entered stdlib in Python 3.4cCs0ddlm}t|dƒƒ}tdƒ}| ||¡dS)z- Tests passing pathlib.Path as argument. r)ÚPathza.txtN)Úpathlibr\rr1)r r\Z first_specZ second_specrrrÚtest_4_normalizing_pathlib_pathts  z,IterTreeTest.test_4_normalizing_pathlib_pathN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrÚ staticmethodrr r#r%r(r+r4r8r;r?rBrHrLrSrTrUrYr!ZskipIfÚsysÚ version_infor^rrrrrs,  %$ "r)rbrQrÚos.pathr)rdr&r!Z pathspec.utilrrrrZTestCaserrrrrÚs