
    d                         d Z ddlZddlZddlZddlZddlZddlmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ  ee          Zd	d
gZ G d de          Z G d de          ZdS )zBlackbox test for mdsearch    N)
HTTPServerBaseHTTPRequestHandler)mdssvc)BlackboxTestCase)mdscli)get_samba_logger)namefoobarc                       e Zd Zd ZdS )MdssvcHTTPRequestHandlerc           	         t          | j        d                   }| j                            |          }t	          j        |          }t	          j        | j        j                  }||k    rAt          	                    d|d|d           | 
                    ddd|d|d           d S t          | j        j        d	
          }|                     d           |                     dd           |                     dt          |                     |                                  | j                            |           d S )Nzcontent-lengthzBad request, expected:
z
Got:

i  zBad requestz
Expected: z
Got: utf-8)encoding   zcontent-typezapplication/json; charset=UTF-8)intheadersrfilereadjsonloadsserverjson_inloggererror
send_errorbytesjson_outsend_responsesend_headerlenend_headerswfilewrite)selfcontent_lengthbodyactual_jsonexpected_jsonresps         ?/usr/lib/python3/dist-packages/samba/tests/blackbox/mdsearch.pydo_POSTz MdssvcHTTPRequestHandler.do_POST)   sA   T\*:;<<z~..j$((
4;#677-''LLL]]]T_T_T_`aaaOOC)M +]]KKK9: : :
 FT[)G<<<3)JKKK)3t99555
    N)__name__
__module____qualname__r-    r.   r,   r   r   (   s#            r.   r   c                   4     e Zd Z fdZ fdZd Zd Z xZS )MdfindBlackboxTestsc                    t          t          |                                            t          dt          d          | _        t          j        t          j        | f          | _	        | j	        
                    d           | j	                                         t          j        d           t          j        d         | _        t"          D ]0}t%          | j        d|d	          }|                                 1d S )
N)z10.53.57.35i  F)bind_and_activate)targetargsT   
LOCAL_PATH/w)superr4   setUpr   r   r   	threadingThreadhttp_servert	setDaemonstarttimesleeposenviron	sharepath	testfilesopenclose)r&   filef	__class__s      r,   r>   zMdfindBlackboxTests.setUpC   s    !4((..000 !6!938: : : !)<)HPTwWWW
1L1 	 	D5s;;AGGIIII	 	r.   c                     t          t          |                                            t          D ] }t	          j        | j        d|           !d S )Nr;   )r=   r   tearDownrJ   rG   removerI   )r&   rM   rO   s     r,   rQ   zMdfindBlackboxTests.tearDownU   sY    %%..000 	8 	8DI67777	8 	8r.   c                     | j                                          | j                                          | j                                          d S )N)r   server_bindserver_activateserve_forever)r&   s    r,   rA   zMdfindBlackboxTests.http_serverZ   sD    !!!##%%%!!#####r.   c           	         t           j        d         }t           j        d         }t           j        d         }d}d}|                    d| j                  | j        _        |                    d| j                  | j        _        |                     d|d|d	|d
          }|                    d          	                                }| 
                    t          |           dS )z!Simple blackbox test for mdsearchUSERNAMEPASSWORDSMB_CONF_PATHz{
          "from": 0, "size": 50, "_source": ["path.real"],
          "query": {
            "query_string": {
              "query": "(samba*) AND path.real.fulltext:\"%BASEPATH%\""
            }
          }
        }z{
          "hits" : {
            "total" : { "value" : 2},
            "hits" : [
              {"_source" : {"path" : {"real" : "%BASEPATH%/foo"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/bar"}}}
            ]
          }
        }z
%BASEPATH%zmdsearch --configfile=z -U z%z# fileserver spotlight '*=="samba*"'r   N)rG   rH   replacerI   r   r   r   check_outputdecode
splitlinesassertEqualrJ   )r&   usernamepasswordconfigr   r   outputactuals           r,   test_mdsearchz!MdfindBlackboxTests.test_mdsearch_   s     :j):j)O, &oolDNKK'//dnMM"""pvpvpv  yA  yA  yA  CK  CK  CK  $L  M  Mw''2244F+++++r.   )r/   r0   r1   r>   rQ   rA   re   __classcell__)rO   s   @r,   r4   r4   A   so            $8 8 8 8 8
$ $ $
, , , , , , ,r.   r4   )__doc__rG   rE   r?   loggingr   http.serverr   r   samba.dcerpcr   samba.testsr   samba.samba3r   samba.loggerr   r/   r   rJ   r   r4   r2   r.   r,   <module>rn      s  ( !   				        : : : : : : : :       ( ( ( ( ( (       ) ) ) ) ) )		x	(	(	( 
		
    5   2=, =, =, =, =,* =, =, =, =, =,r.   