o
    jK                     @   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
 G dd de jZG d	d
 d
Zedkr<e   dS dS )    N)FakeApp)	Interface)Wsdl11)XmlDocument)Faultc                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )
FaultTestsc                 C   sR   t  }| |jd | |jd | |jd | |jd  | t|d d S )NServerr    zFault(Server: 'Fault'))r   assertEqual	faultcodefaultstring
faultactordetailreprselffault r   _/var/www/html/LicenciasMiG/venv/lib/python3.10/site-packages/spyne/test/model/test_exception.pytest_ctor_defaults   s   zFaultTests.test_ctor_defaultsc                 C   ,   t dd}| |jd | t|d d S )NOther)r   zFault(Other: 'Fault'))r   r
   r   r   r   r   r   r   !test_ctor_faultcode_w_senv_prefix$      
z,FaultTests.test_ctor_faultcode_w_senv_prefixc                 C   r   )NTesting)r   zFault(Server: 'Testing'))r   r
   r   r   r   r   r   r   test_ctor_explicit_faultstring)   r   z)FaultTests.test_ctor_explicit_faultstringc           	      C   s   ddl m} dd l}|jjj}|jjj|jjj }|d}t }t}t 	d |||d |
 \}| |jd|  | |djd|  | |djd	 | |d
jd | |d d S )Nr   Elementtestingurn:ignoredz	{%s}Faultr   z	%s:Serverr   r   r   r	   r   )
lxml.etreer   spyne.const.xmlconstxmlNS_SOAP11_ENVPREFMAPr   r   	to_parentgetchildrenr
   tagfindtextassertFalsefindall)	r   r   spynens_soap_envsoap_envelementr   clschildr   r   r   test_to_parent_wo_detail.   s   

z#FaultTests.test_to_parent_wo_detailc                 C   sf   ddl m} |d}|d}t|d}t}t d |||d | \}| |dd|u  d S )Nr   r   r   	something)r   r   r   )r    r   r   r   r&   r'   
assertTruer)   )r   r   r0   r   r   r1   r2   r   r   r   test_to_parent_w_detailA   s   

z"FaultTests.test_to_parent_w_detailc                 C   s   ddl m} ddl m} ddlm}m}m} || }||d}||d}d| |_||d}	d	|	_||d
}
d|
_t 	d t
|}| |jd|  | |jd	 | |jd | |jd  d S )Nr   r   
SubElement)r%   
SOAP11_ENVr$   r   r   z%s:otherr   r   r   phreddy)r    r   r8   r!   r%   r9   r$   r*   r   from_elementr   r
   r   r   r   r   )r   r   r8   r%   r9   r$   r/   r0   fcodefstractorr   r   r   r   test_from_xml_wo_detailM   s    



z"FaultTests.test_from_xml_wo_detailc           
      C   s   ddl m} ddl m} ddlm} ||d}||d}d|_||d}d	|_||d
}d|_||d}t d t|}	| 	|	j
|u  d S )Nr   r   r7   )r9   r   r   zsoap11env:otherr   r   r   r:   r   )r    r   r8   r!   r9   r*   r   r;   r   r5   r   )
r   r   r8   r9   r0   r<   r=   r>   r   r   r   r   r   test_from_xml_w_detailc   s   



z!FaultTests.test_from_xml_w_detailc           
      C   s  ddl m} G dd dt}tt }|| ||}t|}|d |	|}| 
t|jd |jd }|jd }| ||u  | 
|j|d | 
|d	d | 
t|jd |j d }	| 
|	j|d
 | 
|	d	d | 
|	dd | 
t|	d d S )Nr   XSDc                   @      e Zd ZdZedd ZdS )z5FaultTests.test_add_to_schema_no_extends.<locals>.clsnsc                 S      dS N
testing:Myr   r   appr   r   r   get_type_name_nsz      zFFaultTests.test_add_to_schema_no_extends.<locals>.cls.get_type_name_nsN__name__
__module____qualname____namespace__classmethodrJ   r   r   r   r   r1   x       r1   prot://addr   z{ns}clscomplexTypenamer0   typerG   )r!   rB   r   r   r   	add_classget_namespace_prefixr   build_interface_documentget_schema_infor
   lentypesclassesr5   r(   getelementsvalues)
r   rB   r1   	interfaceprefwsdlschemac_clsc_elte_eltr   r   r   test_add_to_schema_no_extendsu   s(   






z(FaultTests.test_add_to_schema_no_extendsc                 C   s  ddl m} G dd dt}G dd dt}tt }|| ||}t|}|d |	|}| 
t|jd | 
t|jd tt|j }tt|j }	| ||u  | 
|	j|d	 | 
|	d
d ddlm}
 t|
j|	dd | 
t|	d d S )Nr   rA   c                   @   rC   )z5FaultTests.test_add_to_schema_w_extends.<locals>.baserD   c                 S   rE   )Nztesting:Baser   rH   r   r   r   rJ      rK   zFFaultTests.test_add_to_schema_w_extends.<locals>.base.get_type_name_nsNrL   r   r   r   r   base   s    rj   c                   @   rC   )z4FaultTests.test_add_to_schema_w_extends.<locals>.clsrD   c                 S   rE   rF   r   rH   r   r   r   rJ      rK   zEFaultTests.test_add_to_schema_w_extends.<locals>.cls.get_type_name_nsNrL   r   r   r   r   r1      rR   r1   rS   rT   rU   rV   )etreeT)pretty_print)r!   rB   r   r   r   rX   rY   r   rZ   r[   r
   r\   r]   r^   nextiterra   r5   r(   r_   lxmlrk   printtostring)r   rB   rj   r1   rb   rc   rd   re   rf   rg   rk   r   r   r   test_add_to_schema_w_extends   s&   




z'FaultTests.test_add_to_schema_w_extendsN)rM   rN   rO   r   r   r   r3   r6   r?   r@   ri   rr   r   r   r   r   r      s    r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )DummySchemaEntriesc                 C   s   || _ g | _g | _d S N)rI   _complex_types	_elementsrH   r   r   r   __init__   s   
zDummySchemaEntries.__init__c                 C      | j ||f d S rt   )ru   append)r   r1   ctr   r   r   add_complex_type      z#DummySchemaEntries.add_complex_typec                 C   rx   rt   )rv   ry   )r   r1   eltr   r   r   add_element   r|   zDummySchemaEntries.add_elementN)rM   rN   rO   rw   r{   r~   r   r   r   r   rs      s    rs   __main__)unittest
spyne.testr   spyne.interfacer   spyne.interface.wsdlr   spyne.protocol.xmlr   spyne.model.faultr   TestCaser   rs   rM   mainr   r   r   r   <module>   s     