o
    j                     @   s   d dl Z 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 G dd dejZedkrce  dS dS )    N)etreeIgnored)const)Wsdl11)XmlDocument)Array)Boolean)String)Application)srpc)Service)
NullServerc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestNullServerc                 C   sB   G dd dt }t|gdt t d}d t|jdksJ d S )Nc                   @   s   e Zd Zeedd ZdS )z=TestNullServer.test_empty_return_type.<locals>.MessageServicec                 S   s   | S N sr   r   [/var/www/html/LicenciasMiG/venv/lib/python3.10/site-packages/spyne/test/test_null_server.pysend_message)      zJTestNullServer.test_empty_return_type.<locals>.MessageService.send_messageN__name__
__module____qualname__r   r
   r   r   r   r   r   MessageService(   s    r   some_tnsin_protocolout_protocolzabaaa)r   r   r   r   servicer   )selfr   applicationr   r   r   test_empty_return_type'   s
   z%TestNullServer.test_empty_return_typec                 C   sv   G dd dt }t|gdt t d}t|}td|jdks#J td|jdks/J d|jdks9J d S )Nc                   @   sD   e Zd Zeeeddd Zeedd Zeeeddd ZdS )	z3TestNullServer.test_ignored.<locals>.MessageService_returnsc                 S      t dS Nxyzr   r   r   r   r   send_message_14      zBTestNullServer.test_ignored.<locals>.MessageService.send_message_1c                 S   r'   r(   r   r   r   r   r   send_message_28   r+   zBTestNullServer.test_ignored.<locals>.MessageService.send_message_2c                 S      dS )NOKr   r   r   r   r   send_message_3<   r   zBTestNullServer.test_ignored.<locals>.MessageService.send_message_3N)r   r   r   r   r
   r*   r,   r/   r   r   r   r   r   3   s    



r   r   r   r)   r    r.   )	r   r   r   r   r   r!   r*   r,   r/   r"   r   r#   serverr   r   r   test_ignored2   s   zTestNullServer.test_ignoredc                    sZ   t   G  fdddt}t|gdt t d}t|}|jd t dg ks+J d S )Nc                       s    e Zd Zee fddZdS )z8TestNullServer.test_call_one_arg.<locals>.MessageServicec                    s     |  d S r   addr   queuer   r   r   L   s   zETestNullServer.test_call_one_arg.<locals>.MessageService.send_messageNr   r   r5   r   r   r   K   s    r   r   r   r    )setr   r   r   r   r!   r   r0   r   r5   r   test_call_one_argH   s   z TestNullServer.test_call_one_argc                    s   t   G  fdddt}t|gdt t d}t|}   |jjddd t dg ks1J    |jjdd t d	g ksEJ    |jjd
dd t dg ksZJ d S )Nc                       s"   e Zd Zeee fddZdS )z9TestNullServer.test_call_two_args.<locals>.MessageServicec                    s     | |f d S r   r3   r   kr5   r   r   r   \   s   zFTestNullServer.test_call_two_args.<locals>.MessageService.send_messageNr   r   r5   r   r   r   [   s    r   r   r   r    hobaar:   r    r;   Nr;   zobaaar   r;   N)r7   r   r   r   r   clearr!   r   r0   r   r5   r   test_call_two_argsX   s   z!TestNullServer.test_call_two_argsc                    s   t   G  fdddt}t|gdt t d}t|dd}   |jjddd	}t d
g ks3J t	d
|jd|jjdddgksHJ    |jjdd	 t dg ks\J    |jjddd t dg ksqJ d S )Nc                       s*   e Zd Zeeeeed fddZdS )z0TestNullServer.test_ostr.<locals>.MessageServicer%   c                    s     | |f | |gS r   r3   r9   r5   r   r   r   u   s   z=TestNullServer.test_ostr.<locals>.MessageService.send_messageN)r   r   r   r   r
   r   r   r   r5   r   r   r   t   s    r   r   r   T)ostrr    r;   r<   r=       z//tns:string/text())
namespacesr>   r?   r   r@   )r7   r   r   r   r   rA   r!   r   r   
fromstringjoinxpath	interfacensmap)r"   r   r#   ostr_serverretr   r5   r   	test_ostrq   s(   zTestNullServer.test_ostrc                 C   s   G dd dt }t|gdt t d}t|}tj}tj}z5dd t_| t	 dt_|j
  W d    n1 s;w   Y  tdt_|j
  W |t_|t_d S |t_|t_w )	Nc                   @   s   e Zd Zeeddd ZdS )z6TestNullServer.test_no_gc_collect.<locals>.PingServicer%   c                   S   r-   )NTr   r   r   r   r   ping   r   z;TestNullServer.test_no_gc_collect.<locals>.PingService.pingN)r   r   r   r   r	   rN   r   r   r   r   PingService   s    rO   r   r   c                   S   s   dd S )N   r   r   r   r   r   r   <lambda>   s    z3TestNullServer.test_no_gc_collect.<locals>.<lambda>r   inf)r   r   r   r   gccollectr   MIN_GC_INTERVALassertRaisesZeroDivisionErrorr!   rN   float)r"   rO   r#   r1   origin_collectorigin_MIN_GC_INTERVALr   r   r   test_no_gc_collect   s(   


z!TestNullServer.test_no_gc_collectN)	r   r   r   r$   r2   r8   rB   rM   r[   r   r   r   r   r   &   s    r   __main__)rS   unittestlxmlr   spyner   r   spyne.interface.wsdlr   spyne.protocol.xmlr   spyne.model.complexr   spyne.model.primitiver	   r
   spyne.applicationr   spyne.decoratorr   spyne.servicer   spyne.server.nullr   TestCaser   r   mainr   r   r   r   <module>   s&    