
    b"                     J    d Z ddlZddlZddlZddlmZ  G d de          ZdS )zTest ntlm_auth
This test program will start ntlm_auth with the given command line switches and
see if it will get the expected results.
    N)BlackboxTestCasec                   L     e Zd Z fdZd Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 d	dZ xZS )
NTLMAuthTestCasec                    t          t          |                                            t          j                            t          j        dd                    }t          j                            |d          | _        t          j
                                        | _        | j                            d          | _        d S )NBINDIRz./bin	ntlm_authzwinbind separator)superr   setUpospathnormpathgetenvjoinntlm_auth_pathsambatestsenv_loadparmlpgetwinbind_separator)selfbindir	__class__s     </usr/lib/python3/dist-packages/samba/tests/ntlm_auth_base.pyr
   zNTLMAuthTestCase.setUp   s    %%++---!!")Hg">">?? gll6;??+**,,!%-@!A!A    c                     |                                 }|                    d          }|dk    rt          d          |d |         S )N
zFailed to read line)readlinefind	Exception)r   text_streambufnewlines       r   readLinezNTLMAuthTestCase.readLine&   sH    ""$$((4..b==12228G8}r   c                 Z    |                     |           |                     d           d S )Nr   )write)r   r"   r#   s      r   	writeLinezNTLMAuthTestCase.writeLine-   s0    #$r   NFntlmssp-client-1squid-2.5-ntlmsspc                 D   |                      t          j        | j        t          j                             |t          d          g }|                    | j                   |                    d|z             |                    d|z             |r|                    d|z             |r|                    d           n)|t          d          |                    d|z             |r|                    d|z             |r|                    d	|z             |                    d
| j        j        z             g }|                    | j                   |                    d|	z             |                    d
| j        j        z             |
so|||t          d          |                    d|z             |                    d|z             |                    d|z             |t          d          n||                    d|z             d}t          j
        |t          j        t          j        dd          }t          j
        |t          j        t          j        dd          }	 |dk    r|	dk    rz|                     |j        d           |                     |j                  }|                      |                    d                     |                     |j        |           |                     |j                  }|                      |                    d                     |                     |j        |           |                     |j                  }|                      |                    d                     |                    ddd          }|                     |j        |           |                     |j                  }|                    d          }n&|dk    r|	dk    rz|                     |j        d           |                     |j                  }|                      |                    d                     |                     |j        |           |                     |j                  }|                      |                    d                     |                     |j        |           |                     |j                  }|                      |                    d                     |                    ddd          }|                     |j        |           |                     |j                  }|                    d          }n|dk    r|	dk    r{|                     |j        d           |                     |j                  }	 |                    d          rd}n+|                      |                    d          p|                    d                     |                     |j        |           |                     |j                  }|                    d          rd}n|                      |                    d          p)|                    d          p|                    d                     |                     |j        |           |                     |j                  }|                    d          rd}nDn|                     d            |du r|dk    r|                     |j        d!           |                     |j                  }|                      |                    d"                     |                     |j        d#           |                     |j                  }|                      |                    d$                     |du r|	dk    r|                     |j        d!           |                     |j                  }|                      |                    d"                     |                     |j        d#           |                     |j                  }|                      |                    d$                     |j                                         |                                 |                     |j        d           |j                                         |                                 |                     |j        d           |S #  |                                 |                                 |                                 |                                  xY w)%Nzclient_username requiredz--helper-protocol=%sz--username=%sz--domain=%sz--use-cached-credszclient_password requiredz--password=%sz--target-service=%sz--target-hostname=%sz--configfile=%sz0Server credentials required if not using winbindz6Server must be using winbind for require-membership-ofz--require-membership-of=%sFr   T)stdoutstdinbufsizeuniversal_newlinesr)   r*   YRzYR zTT zAF AFKK   z
gss-spnegozAF * zgss-spnego-clientzNA * zKK zHelper protocols not handledGKzGK GFzGF )
assertTruer   accessr   X_OKr!   appendr   
configfile
subprocessPopenPIPEr(   r-   r%   r,   
startswithreplacefailclosewaitassertEqual
returncodekill)r   client_usernameclient_passwordclient_domainclient_use_cached_credsserver_usernameserver_passwordserver_domainclient_helperserver_helperserver_use_winbindrequire_membershiptarget_hostnametarget_serviceclient_argsserver_argsresultserver_procclient_procr#   s                       r   
run_helperzNTLMAuthTestCase.run_helper1   s	    		$"5rw??@@@"6777 4.///1MABBB?_<=== 	>}}<===" 	B34444& :;;;@AAA 	G4~EFFF 	I5GHHH,tw/AABBB 4.///1MABBB,tw/AABBB! 
	V&/*A]EZ RSSS@AAA@AAA}}<===!- XYYY . "-""#?BT#TUUU  &{:?R\Rakl  BF  G  G  G &{:?R\Rakl  BF  G  G  Ge	 222}H[7[7[{0$777mmK$677u 5 5666{0#666mmK$677u 5 5666{0#666mmK$677u 5 5666 kk$a00{0#666mmK$677.."444,9V9V{0$777mmK$677u 5 5666{0#666mmK$677u 5 5666{0#666mmK$677u 5 5666 kk$a00{0#666mmK$67700"555-<:W:W{0$777mmK$677w// !&OOCNN5$9$9$RS^^E=R=RSSSNN;#4c:::--(:;;C~~d++ !%OOCNN5$9$9$kS^^E=R=R$kVYVdVdejVkVklllNN;#4c:::--(:;;C~~g.. !%+. 		8999~~-3E"E"E{0$777mmK$677u 5 5666{0$777mmK$677u 5 5666~~-3F"F"F{0$777mmK$677u 5 5666{0$777mmK$677u 5 5666##%%%[3Q777##%%%[3Q777M	s   [e Af)NNNFNNNr)   r*   FNNN)__name__
__module____qualname__r
   r%   r(   rX   __classcell__)r   s   @r   r   r      s        B B B B B       
 $(#'!%+0#'#'!%!3!4&+&*#'"&a a a a a a a ar   r   )__doc__r   r   r;   samba.testsr   r    r   r   <module>r`      s   & 
 
			      ( ( ( ( ( (u u u u u' u u u u ur   