+
    Dfjl	                    |    ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt  ! R R]
P                  4      tR	# )
    )annotations)credentialserror)FilePasswordDB)defer)unittest)tapc                      ] tR t^tRtRt]P                  ! RR4      t]P                  ! RR4      t	R R lt
R R	 ltR
 R ltR R ltR R ltR R ltRtR# )WordsTapTestsz/
Ensures that the twisted.words.tap API works.
s   admin:admin
joe:foo
s   admins   joes   barc                   V ^8  d   QhRR/#    returnNone )formats   "=/usr/lib/python3/dist-packages/twisted/words/test/test_tap.py__annotate__WordsTapTests.__annotate__   s      t     c                    V P                  4       V n        \        V P                  R4      V n        V P                  P	                  V P
                  4       V P                  P                  4        R# )z
Create a file with two users.
wbN)mktempfilenameopenfilewritePASSWD_TEXTflushselfs   &r   setUpWordsTapTests.setUp   sG     -			(()		r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s      $ r   c                :    V P                   P                  4        R# )z 
Close the dummy user database.
N)r   closer    s   &r   tearDownWordsTapTests.tearDown   s     			r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   %   s     4 4t 4r   c                    \         P                  ! 4       pVP                  RR.4       V P                  VR,          R4       R# )z=
Tests that the --hostname parameter gets passed to Options.
z
--hostnamemyhosthostnameN)r	   OptionsparseOptionsassertEqualr!   opts   & r   test_hostnameWordsTapTests.test_hostname%   s6     kkm,12Z(3r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   -   s      T r   c                    \         P                  ! 4       pVP                  RV P                  P                  .4       V P                  V4       R# )z9
Tests the --passwd command for backwards-compatibility.
z--passwdNr	   r-   r.   r   name
_loginTestr0   s   & r   test_passwdWordsTapTests.test_passwd-   s6     kkm*diinn56r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   5   s      4 r   c                    \         P                  ! 4       pVP                  RRV P                  P                  ,           .4       V P                  V4       R# )z4
Tests that the --auth command generates a checker.
z--authzfile:Nr6   r0   s   & r   	test_authWordsTapTests.test_auth5   s;     kkm(Gdiinn$<=>r   c                    V ^8  d   QhRRRR/# )r   r1   ztap.Optionsr   zdefer.Deferred[None]r   )r   s   "r   r   r   =   s     K Kk K.B Kr   c                @  a  S P                  \        VR,          4      ^4       VR,          ^ ,          pS P                  VP                  S P                  4      \
        P                  4       R V 3R llpVP                  S P                  4      P                  V4      # )z
This method executes both positive and negative authentication
tests against whatever credentials checker has been stored in
the Options class.

@param opt: An instance of L{tap.Options}.
credCheckersc                    V ^8  d   QhRRRR/# )r   usernamezbytes | tuple[()]r   r   r   )r   s   "r   r   .WordsTapTests._loginTest.<locals>.__annotate__K   s     	< 	<!2 	<t 	<r   c                T   < SP                  V SP                  P                  4       R # )N)r/   adminrC   )rC   r!   s   &r   
_gotAvatar,WordsTapTests._loginTest.<locals>._gotAvatarK   s    Xtzz':':;r   )	r/   lenassertFailurerequestAvatarIdjoeWrongr   UnauthorizedLoginrF   addCallback)r!   r1   checkerrG   s   f&  r   r8   WordsTapTests._loginTest=   s     	S0115"%n"5a"8##DMM2E4K4K	
	< 	< &&tzz2>>zJJr   )r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   UsernamePasswordrF   rL   r"   r'   r2   r9   r=   r8   __static_attributes__r   r   r   r   r      sW     ,K((8<E++FF;H4K Kr   r   N)
__future__r   twisted.credr   r   twisted.cred.checkersr   twisted.internetr   twisted.trialr   twisted.wordsr	   TestCaser   r   r   r   <module>r_      s/    # + 0 " " AKH%% AKr   