
    Zd$                     R    d dl Z d dlZd dlZd dlmZ d dlmZ  G d de          ZdS )    N)handlers)BaseZMQTestCasec                   j    e Zd ZdZdZed             ZddZd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )
TestPubLogzinproc://zmqlogzmqc                 l    t          j        d          }|                    t           j                   |S )Nzmqtest)logging	getLoggersetLevelDEBUG)selfloggers     2lib/python3.11/site-packages/zmq/tests/test_log.pyr   zTestPubLog.logger   s-     "9--&&&    Nc                    || j         n|}| j        }|                     t          j        t          j                  \  }}t          j        |          }|                    t          j
                   ||_        |                    |           |                    t          j        |                                           t!          j        d           |||fS )N皙?)topicr   create_bound_pairr   PUBSUBr   
PUBHandlerr   r
   r   
root_topic
addHandler
setsockopt	SUBSCRIBEencodetimesleep)r   r   r   pubsubhandlers         r   connect_handlerzTestPubLog.connect_handler   s    #m

))#'37;;S%c**'''"'"""s}ellnn555
3w##r   c                    | j         }| j        }t          j        | j                  }|j        |usJ | j                            |j                   t          j        | j        | j                  }| j                            |j                   |j        |u sJ |	                    t          j                   | j        |_        |                    |           |                    t          j                  }| j                            |           |                    t          j        | j                                                   |                    | j                   dd l} |j        d           d}|                    |           |                                \  }}|dk    sJ ||dz                       d          k    sJ |                    |           d S )Nr   g      ?message   zmq.INFO
utf8)r   contextr   r   ifacectxsocketsappendsocketr   r
   r   r   r   r   r   r   r   r   r   connectr   r   inforecv_multipartremoveHandler)	r   r   r+   r"   r!   r   msg1r   msg2s	            r   test_init_ifacezTestPubLog.test_init_iface$   s   l%dj11;#%%%%GN+++%dj$,??GN+++{c!!!!'''!Z'"""jj!!C   s}dj&7&7&9&9:::DJ
4D**,,####t++F333333W%%%%%r   c                    |                      t          j        t          j                  \  }}| j        }t          j        |          }|                    t          j	                   | j
        |_        |                    |           |j        |u sJ |j        |j        u sJ |j        | j        u sJ |                    t          j        | j
                                                   dd l} |j        d           d}|                    |           |                                \  }}|dk    sJ ||dz                       d          k    sJ |                    |           d S )Nr   r   r%   r&   r'   r(   )r   r   r   r   r   r   r   r   r
   r   r   r   r   r.   r+   r)   r   r   r   r   r   r0   r1   r2   )	r   r    r!   r   r"   r   r3   r   r4   s	            r   test_init_socketzTestPubLog.test_init_socket@   s]   ))#'37;;S%c**'''!Z'"""~$$$${ck)))){dl****s}dj&7&7&9&9:::
3D**,,####t++F333333W%%%%%r   c                    |                                  \  }}}|j                            | j                   |j                            t
          j                  }| j                            |           |	                    | j                   |
                    t
          j        d           d|_        d}|                    |           |                     t
          j        |j        t
          j                   |                                \  }}|dk    sJ ||dz                                   k    sJ |                    |           d S )Nr   s   twoonlyignoreds   twoonly.INFOr'   )r#   r.   bindr*   r)   r   r   r,   r-   r/   r   r   r   r0   assertRaisesErrnoEAGAINrecvNOBLOCKr1   r   r2   )r   r   r"   r!   sub2r3   r   r4   s           r   test_root_topiczTestPubLog.test_root_topicW   s'   #3355DJ'''{!!#'**D!!!TZ   s+++'Dsz38S[AAA))++t''''t++------W%%%%%r   c                 ~   |                                  \  }}}|                    t          j        d           |j                            | j                   |j                            t          j                  }| j	        
                    |           |                    | j                   |                    t          j        d           |                    d           d}|                    |           |                     t          j        |j        t          j                   |                                \  }}|dk    sJ d}|                    |           |                                \  }}	|dk    sJ |                                \  }}
|dk    sJ |	|
k    sJ |                    |           d S )Nr   s   INFOdebug_messages   DEBUGinfo_message)r#   r   r   r   r.   r:   r*   r)   r   r,   r-   r/   setRootTopicdebugr;   r<   r=   r>   r1   r0   r2   )r   r   r"   sub_everythingsub_only_info	msg_debugr   msg_debug_responsemsg_infomsg_info_response_everythingmsg_info_response_onlyinfos              r   test_blank_root_topicz TestPubLog.test_blank_root_topich   s   *.*>*>*@*@'!!#-555DJ'''&.55cg>>M***dj)))  888S!!!#	Ysz=+=s{KKK$2$A$A$C$C!!    !H.<.K.K.M.M++,9,H,H,J,J))+/IIIIIW%%%%%r   c                    |                                  \  }}}| j        dz                                   }d|dgfd|d                                gfd|d                                z   d                                gffD ]6\  }}|                    |           |                                }||k    sJ 7|                    |           d S )Nz.INFOhello   hello
u   héllou   héllo
u   tøpic::héllou   .tøpic)r#   r   r   r0   r1   r2   )r   r   r"   r!   
base_topicmsgexpectedreceiveds           r   test_unicode_messagezTestPubLog.test_unicode_message   s    #3355j7*2244
z:./
J$5$5$7$789
Y-=-=-?-? ?ARARATATUV
 	( 	(MC
 KK))++Hx'''''W%%%%%r   c                    |                                  \  }}}t          j        d          |j        t          j        <   |j                            | j                   |                    t          j
        |j                                                   |                    d           |                                \  }}|dk    sJ |                    |           d S )Nz%(message)s UNITTEST
info messages   info message UNITTEST
)r#   r
   	Formatter
formattersINFOr.   r:   r*   r   r   r   r   r   r0   r1   r2   )r   r   r"   r!   r   rR   s         r   $test_set_info_formatter_via_propertyz/TestPubLog.test_set_info_formatter_via_property   s    #3355+2+<=U+V+V7<(DJ'''s}g&8&?&?&A&ABBBN###''))
s00000W%%%%%r   c                 .   |                                  \  }}}t          j        d          }|                    |           |j                            | j                   |                    t          j	        |j
                                                   |                    d           |                                \  }}|dk    sJ |                    d           |                                \  }}|dk    sJ |                    |           d S )NzUNITTEST %(message)srW   s   UNITTEST info messagedebug messages   UNITTEST debug message)r#   r
   rX   setFormatterr.   r:   r*   r   r   r   r   r   r0   r1   rE   r2   r   r   r"   r!   	formatterr   rR   s          r   test_custom_global_formatterz'TestPubLog.test_custom_global_formatter   s   #3355%&<==	Y'''DJ'''s}g&8&?&?&A&ABBBN###''))
s....._%%%''))
s/////W%%%%%r   c                 D   |                                  \  }}}t          j        d          }|                    |t          j                   |j                            | j                   |                    t          j
        |j                                                   |                    d           |                                \  }}|dk    sJ |                    d           |                                \  }}|dk    sJ |                    |           d S )NzUNITTEST DEBUG %(message)srW   s   info message
r]   s   UNITTEST DEBUG debug message)r#   r
   rX   r^   r   r.   r:   r*   r   r   r   r   r   r0   r1   rE   r2   r_   s          r   test_custom_debug_formatterz&TestPubLog.test_custom_debug_formatter   s   #3355%&BCC	Y666DJ'''s}g&8&?&?&A&ABBBN###''))
s'''''_%%%''))
s55555W%%%%%r   c                     G d d          }|                                  \  }}}d}|                     ||                     |                                \  }}|dk    sJ |dk    sJ |                    |           d S )Nc                   &    e Zd ZdefdZdefdZdS )4TestPubLog.test_custom_message_type.<locals>.MessagerR   c                     || _         d S NrR   )r   rR   s     r   __init__z=TestPubLog.test_custom_message_type.<locals>.Message.__init__   s    r   returnc                     | j         S rh   ri   )r   s    r   __str__z<TestPubLog.test_custom_message_type.<locals>.Message.__str__   s	    xr   N)__name__
__module____qualname__strrj   rm    r   r   Messagerf      sJ        C                 r   rs   rO   r&   rP   )r#   r0   r1   r2   )r   rs   r   r"   r!   rR   r   rT   s           r   test_custom_message_typez#TestPubLog.test_custom_message_type   s    	  	  	  	  	  	  	  	   $3355GGCLL!!!,,..x####:%%%%W%%%%%r   rh   )rn   ro   rp   r*   r   propertyr   r#   r5   r7   r@   rM   rU   r[   ra   rc   rt   rr   r   r   r   r      s        EE  X
$ 
$ 
$ 
$& & &8& & &.& & &"& & &0& & && & && & && & && & & & &r   r   )r
   r   r   zmq.logr   	zmq.testsr   r   rr   r   r   <module>rx      s   
   



       % % % % % %t& t& t& t& t& t& t& t& t& t&r   