o
    ÝîiB  ã                   @   sþ   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ de_G dd„ de jƒZG dd„ de jƒZG dd„ de jƒZG dd„ de jƒZedkr}e  ¡  dS dS )é    N)ÚApplication)Úsrpc)ÚValidationError)ÚService)ÚHttpRpc)ÚSoap11)ÚInteger)ÚString)Ú
ServerBase)ÚWsgiApplication)ÚMethodContext)ÚWsgiMethodContextÚtestc                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestValidationStringc                 C   s6   t dd}|  | |d¡d¡ |  | |d¡d¡ d S )Né   )Úmin_lenÚaaaTÚaF©r	   ÚassertEqualÚvalidate_string©ÚselfÚ
StrictType© r   ú_/var/www/html/LicenciasMIG/venv/lib/python3.10/site-packages/spyne/test/test_soft_validation.pyÚtest_min_len,   ó   
z!TestValidationString.test_min_lenc                 C   sJ   t dd}|  | |d¡d¡ |  | |d¡d¡ |  | |d¡d¡ d S )Nr   )Úmax_lenr   Tr   ÚaaaaFr   r   r   r   r   Útest_max_len2   ó   
z!TestValidationString.test_max_lenc                 C   sJ   t dd}|  | |d¡d¡ |  | |d¡d¡ |  | |d¡d¡ d S )Nz[a-z]©Úpatternr   TÚa1FÚ1)r	   r   Úvalidate_nativer   r   r   r   Útest_pattern9   s   
z!TestValidationString.test_patternN)Ú__name__Ú
__module__Ú__qualname__r   r!   r(   r   r   r   r   r   +   s    r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestValidationIntegerc                 C   ó6   t dd}|  | |d¡d¡ |  | |d¡d¡ d S )Nr   )Últé   TF©r   r   r'   r   r   r   r   Útest_ltD   r   zTestValidationInteger.test_ltc                 C   sJ   t dd}|  | |d¡d¡ |  | |d¡d¡ |  | |d¡d¡ d S )Nr   )Úler/   Té   Fr0   r   r   r   r   Útest_leJ   r"   zTestValidationInteger.test_lec                 C   r-   )Nr   )Úgtr3   TFr0   r   r   r   r   Útest_gtQ   r   zTestValidationInteger.test_gtc                 C   s6   t dd}|  | |d¡d¡ |  | |d¡d¡ d S )Nr   )ÚgeTr/   Fr0   r   r   r   r   Útest_geW   r   zTestValidationInteger.test_geN)r)   r*   r+   r1   r4   r6   r8   r   r   r   r   r,   C   s
    r,   c                   @   r   )ÚTestHttpRpcSoftValidationc                 C   s2   G dd„ dt ƒ}t|gtddtƒ ddd| _d S )Nc                   @   s:   e Zd Zeeddƒdd„ ƒZeedddƒdd„ ƒZd	S )
z4TestHttpRpcSoftValidation.setUp.<locals>.SomeServicer   r#   c                 S   ó   d S ©Nr   ©Úsr   r   r   Úsome_method`   ó   z@TestHttpRpcSoftValidation.setUp.<locals>.SomeService.some_methodr/   )r$   Ú
max_occursc                 S   r:   r;   r   r<   r   r   r   Úsome_other_methodc   r?   zFTestHttpRpcSoftValidation.setUp.<locals>.SomeService.some_other_methodN)r)   r*   r+   r   r	   r>   rA   r   r   r   r   ÚSomeService_   s
    
rB   Úsoft©Ú	validatorr   Útns©Úin_protocolÚout_protocolÚnamerF   )r   r   r   r   Úapplication)r   rB   r   r   r   ÚsetUp^   s   ýzTestHttpRpcSoftValidation.setUpc                 C   s>   t | jƒ}t||d| dddœdƒ}| |¡\}| |¡ |S )Nz/%sÚGETÚ	localhost)ÚQUERY_STRINGÚ	PATH_INFOÚREQUEST_METHODÚSERVER_NAMEzsome-content-type)r   rK   r   Úgenerate_contextsÚget_in_object)r   ÚmnÚqsÚserverÚctxr   r   r   Ú	__get_ctxn   s   
üû
z#TestHttpRpcSoftValidation.__get_ctxc                 C   sø   |   dd¡}|  |jjd¡ |   dd¡}|  |jd ¡ |   dd¡}|  |jjd¡ |   dd¡}|  |jjd¡ |   dd¡}|  |jjd¡ |   dd¡}|  |jjd¡ |   dd	¡}|  |jd ¡ |   dd¡}|  |jd ¡ |   dd
¡}|  |jd ¡ d S )Nr>   zs=1zClient.ValidationErrorzs=arA   zs=1&s=2zs=1&s=2&s=3zs=a&s=a&s=azs=a&s=aÚ )Ú#_TestHttpRpcSoftValidation__get_ctxr   Úin_errorÚ	faultcode)r   rX   r   r   r   Útest_http_rpc|   s$   z'TestHttpRpcSoftValidation.test_http_rpcN)r)   r*   r+   rL   r[   r^   r   r   r   r   r9   ]   s    r9   c                   @   s   e Zd Zdd„ ZdS )ÚTestSoap11SoftValidationc                 C   sv   G dd„ dt ƒ}t|gtddtƒ ddd}t|ƒ}t|tjƒ}dg|_| |¡\}| |¡ |  	t
|jtƒd	¡ d S )
Nc                   @   s"   e Zd Zeeddƒdd„ ƒZdS )z8TestSoap11SoftValidation.test_basic.<locals>.SomeServicer   r#   c                 S   r:   r;   r   r<   r   r   r   r>   –   r?   zDTestSoap11SoftValidation.test_basic.<locals>.SomeService.some_methodN)r)   r*   r+   r   r	   r>   r   r   r   r   rB   •   s    rB   rC   rD   r   rF   rG   ac  
            <SOAP-ENV:Envelope xmlns:ns0="tns"
                               xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
               <SOAP-ENV:Body>
                  <ns0:some_method>
                     <ns0:s>OK</ns0:s>
                  </ns0:some_method>
               </SOAP-ENV:Body>
            </SOAP-ENV:Envelope>
        T)r   r   r   r
   r   ÚSERVERÚ	in_stringrS   rT   r   Ú
isinstancer\   r   )r   rB   rK   rW   rX   r   r   r   Ú
test_basic”   s   ý
z#TestSoap11SoftValidation.test_basicN)r)   r*   r+   rc   r   r   r   r   r_   “   s    r_   Ú__main__)ÚunittestÚspyne.applicationr   Úspyne.decoratorr   Úspyne.errorr   Úspyne.servicer   Úspyne.protocol.httpr   Úspyne.protocol.soapr   Úspyne.model.primitiver   r	   Úspyne.serverr
   Úspyne.server.wsgir   Úspyner   r   Ú	transportÚTestCaser   r,   r9   r_   r)   Úmainr   r   r   r   Ú<module>   s*   6ÿ