o V‡EVó ã@sbddlZddlZddlmZGdd„deƒZGdd„deƒZGdd„deƒZGd d „d ejƒZdS) éN)Útestc@ó*eZdZdd„Zejdd„ƒZdd„ZdS)ÚLockedcCót ¡|_dS©N)Ú threadingÚLockÚ_lock©Úself©r úA/usr/lib/python3/dist-packages/fasteners/tests/test_decorators.pyÚ__init__ózLocked.__init__cCó||j ¡ƒdSr©r Úlocked©r Úcbr r r Ú i_am_lockedszLocked.i_am_lockedcCrrrrr r r Úi_am_not_lockedszLocked.i_am_not_lockedN©Ú__name__Ú __module__Ú __qualname__rÚ fastenersrrrr r r r rs   rc@r)Ú ManyLockscCs*g|_td|ƒD] }|j t ¡¡qdS©Nr)r ÚrangeÚappendrr)r ÚamountÚ_ir r r r$sÿzManyLocks.__init__cCódd„|jDƒ}||ƒdS)NcSóg|]}| ¡‘qSr ©r©Ú.0Úlockr r r Ú +óz)ManyLocks.i_am_locked..©r ©r rÚgottenr r r r)s zManyLocks.i_am_lockedcCr")NcSr#r r$r%r r r r(/r)z-ManyLocks.i_am_not_locked..r*r+r r r r.s zManyLocks.i_am_not_lockedNrr r r r r#s   rc@s8eZdZdd„Zejdd„ƒZejdd„ƒZdd„Z d S) ÚRWLockedcCrr)rÚReaderWriterLockr r r r r r4rzRWLocked.__init__cCó||jjƒdSr©r Úownerrr r r Úi_am_read_locked7ózRWLocked.i_am_read_lockedcCr/rr0rr r r Úi_am_write_locked;r3zRWLocked.i_am_write_lockedcCr/rr0rr r r r?szRWLocked.i_am_not_lockedN) rrrrrÚ read_lockedr2Ú write_lockedr4rr r r r r-3s   r-c@s$eZdZdd„Zdd„Zdd„ZdS)ÚDecoratorsTestcs.tƒ}| ‡fdd„¡| ‡fdd„¡dS)Ncó ˆ |¡Sr)Ú assertTrue©Ú is_lockedr r r ÚFó z,DecoratorsTest.test_locked..cr8r)Ú assertFalser:r r r r<Gr=)rrr©r Úobjr r r Ú test_lockedDszDecoratorsTest.test_lockedcs0tdƒ}| ‡fdd„¡| ‡fdd„¡dS)Né csˆ t|ƒ¡Sr)r9Úall©r,r r r r<Ksz1DecoratorsTest.test_many_locked..csˆ dt|ƒ¡Sr)Ú assertEqualÚsumrDr r r r<Ls)rrrr?r r r Útest_many_lockedIszDecoratorsTest.test_many_lockedcsTtjj‰tjj‰tƒ}| ‡‡fdd„¡| ‡‡fdd„¡| ‡fdd„¡dS)Ncs ˆ |ˆ¡Sr©rE©r1)r Úwriterr r r<Ró z7DecoratorsTest.test_read_write_locked..cs ˆ |ˆ¡SrrHrI)Úreaderr r r r<SrKcr8r)Ú assertIsNonerIr r r r<Tr=)rr.ÚREADERÚWRITERr-r4r2rr?r )rLr rJr Útest_read_write_lockedNs z%DecoratorsTest.test_read_write_lockedN)rrrrArGrPr r r r r7Cs r7) rrrÚobjectrrr-ÚTestCaser7r r r r Ús