HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/samba/tests/dcerpc/__pycache__/mdssvc.cpython-310.pyc
o

�\e�@s�dZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZddlmZeed�Zgd	�ZGd
d�de�ZGdd
�d
e�ZdS)zTests for samba.dcerpc.mdssvc�N)�
HTTPServer�BaseHTTPRequestHandler)�mdssvc)�RpcInterfaceTestCase)�mdscli)�get_samba_logger)�name)�foo�bar�x+x�x*x�x=x�x'x�x?x�x"x�x\x�x(x�x xc@seZdZdd�ZdS)�MdssvcHTTPRequestHandlercCs�t|jd�}|j�|�}t�|�}t�|jj�}||kr3t�	d||f�|�
ddd||f�dSt|jjdd�}|�
d�|�d	d
�|�dt|��|��|j�|�dS)Nzcontent-lengthz"Bad request, expected:
%s
Got:
%s
i�zBad requestzExpected: %s
Got: %s
zutf-8)�encoding��zcontent-typezapplication/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�resp�r0�;/usr/lib/python3/dist-packages/samba/tests/dcerpc/mdssvc.py�do_POST1s&
��
z MdssvcHTTPRequestHandler.do_POSTN)�__name__�
__module__�__qualname__r2r0r0r0r1r0srcsHeZdZ�fdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Z�Z	S)
�MdssvcTestscs�tt|���t�d|���|_tdtdd�|_t	j
tj|fd�|_|j�
d�|j��tjd|_t�d�t�|jd	d
�}|��|_|�|j�tD]}td|j|fd�}|��qMdS)
Nz!ncacn_np:fileserver[/pipe/mdssvc])z10.53.57.35i�F)�bind_and_activate)�target�argsT�
LOCAL_PATH��	spotlight�/foo�%s/%s�w)�superr6�setUpr�get_loadparm�piperrr�	threading�Thread�http_server�t�	setDaemon�start�os�environ�	sharepath�time�sleepr�conn�fakepath�
disconnect�	testfiles�open�close)r*rO�file�f��	__class__r0r1rAKs$�



�zMdssvcTests.setUpcs0tt|���tD]}t�d|j|f�q	dS)Nr>)r@r�tearDownrRrJ�removerL)r*rUrWr0r1rYbs�zMdssvcTests.tearDowncCs"|j��|j��|j��dS)N)r�server_bind�server_activate�
serve_forever)r*r0r0r1rFgs

zMdssvcTests.http_servercCs�|�d|j�|j_|�d|j�|j_t�|jdd�|_|j�|j||j	�}t
�d�|�|j�}|�
||�|�|j�|j�|j�dS)Nz
%BASEPATH%r<r=r;)�replacerLrrr#rrOrC�searchrPrMrN�get_results�assertEqualrTrQ)r*�query�expectrr#r_�resultsr0r0r1�run_testls
zMdssvcTests.run_testcCs$d}d}ddg}|�d|||�dS)Nz�{
          "from": 0, "size": 100, "_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"}}}
            ]
          }
        }r	r
z*=="samba*"�re)r*�exp_json_query�fake_json_response�exp_resultsr0r0r1�test_mdscli_search~s	zMdssvcTests.test_mdscli_searchcCs(d}d}d}gd�}|�||||�dS)Nz�kMDItemFSName=="x+x"||kMDItemFSName=="x\*x"||kMDItemFSName=="x=x"||kMDItemFSName=="x'x"||kMDItemFSName=="x?x"||kMDItemFSName=="x x"||kMDItemFSName=="x(x"||kMDItemFSName=="x\"x"||kMDItemFSName=="x\\x"a�{
          "from": 0, "size": 100, "_source": ["path.real"],
          "query": {
            "query_string": {
              "query": "(file.filename:x\\+x OR file.filename:x\\*x OR file.filename:x=x OR file.filename:x'x OR file.filename:x\\?x OR file.filename:x\\ x OR file.filename:x\\(x OR file.filename:x\\\"x OR file.filename:x\\\\x) AND path.real.fulltext:\"%BASEPATH%\""
            }
          }
        }a�{
          "hits" : {
            "total" : {"value" : 2},
            "hits" : [
              {"_source" : {"path" : {"real" : "%BASEPATH%/x+x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x*x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x=x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x'x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x?x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x(x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x\"x"}}},
              {"_source" : {"path" : {"real" : "%BASEPATH%/x\\x"}}}
            ]
          }
        })	rrr
rrrrrrrf)r*�sl_queryrgrhrir0r0r1�test_mdscli_search_escapes�s�z&MdssvcTests.test_mdscli_search_escapes)
r3r4r5rArYrFrerjrl�
__classcell__r0r0rWr1r6Isr6)�__doc__rJrMrD�loggingr�http.serverrr�samba.dcerpcr�samba.testsr�samba.samba3r�samba.loggerrr3rrRrr6r0r0r0r1�<module>s