
    ytf$                     J    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y)    N)handlers)BaseZMQTestCasec                   b    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y)
TestPubLogzinproc://zmqlogzmqc                 n    t        j                  d      }|j                  t         j                         |S )Nzmqtest)logging	getLoggersetLevelDEBUG)selfloggers     \/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/zmq/tests/test_log.pyr   zTestPubLog.logger   s)     ""9-&    Nc                    || j                   n|}| j                  }| j                  t        j                  t        j
                        \  }}t        j                  |      }|j                  t        j                         ||_        |j                  |       |j                  t        j                  |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

))#''377;S%%c*'"'"s}}elln5

3w##r   c                    | j                   }| j                  }t        j                  | j                        }|j
                  |usJ | j                  j                  |j                         t        j                  | j                  | j                        }| j                  j                  |j                         |j
                  |u sJ |j                  t        j                         | j                  |_        |j                  |       |j                  t        j                         }| j                  j                  |       |j#                  t        j$                  | j                  j'                                |j)                  | j                         dd l} |j,                  d       d}|j/                  |       |j1                         \  }}|dk(  sJ ||dz   j'                  d      k(  sJ |j3                  |       y )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~   ll%%djj1{{#%%%GNN+%%djj$,,?GNN+{{c!!!'!ZZ'"jj!C s}}djj&7&7&9:DJJ

4D**,###t++F3333W%r   c                    | j                  t        j                  t        j                        \  }}| j                  }t        j                  |      }|j                  t        j                         | j                  |_        |j                  |       |j                  |u sJ |j                  |j                  u sJ |j                  | j                  u sJ |j!                  t        j"                  | j                  j%                                dd l} |j(                  d       d}|j+                  |       |j-                         \  }}|dk(  sJ ||dz   j%                  d      k(  sJ |j/                  |       y )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.   ))#''377;S%%c*'!ZZ'"~~$$${{ckk))){{dll***s}}djj&7&7&9:

3D**,###t++F3333W%r   c                    | j                         \  }}}|j                  j                  | j                         |j                  j                  t
        j                        }| j                  j                  |       |j                  | j                         |j                  t
        j                  d       d|_        d}|j                  |       | j                  t
        j                  |j                   t
        j"                         |j%                         \  }}|dk(  sJ ||dz   j'                         k(  sJ |j)                  |       y )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DJJ'{{!!#''*D!TZZ s+'Dszz388S[[A))+t'''t++----W%r   c                 `   | j                         \  }}}|j                  t        j                  d       |j                  j                  | j                         |j                  j	                  t        j                        }| j                  j                  |       |j                  | j                         |j                  t        j                  d       |j                  d       d}|j                  |       | j                  t        j                  |j                   t        j"                         |j%                         \  }}|dk(  sJ d}|j'                  |       |j%                         \  }}	|dk(  sJ |j%                         \  }}
|dk(  sJ |	|
k(  sJ |j)                  |       y )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   sf   *.*>*>*@'!!#--5DJJ'&..55cgg>M*djj)  8S!#	Yszz=+=+=s{{K$2$A$A$C!!   !H.<.K.K.M++,9,H,H,J))+/IIIIW%r   c                 d   | j                         \  }}}| j                  dz   j                         }d|dgfd|dj                         gfd|dj                         z   dj                         gffD ]-  \  }}|j                  |       |j	                         }||k(  r-J  |j                  |       y )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jj7*224
z:./
J$5$5$789
Y-=-=-? ?ARARATUV
 	(MC
 KK))+Hx'''	( 	W%r   c                    | j                         \  }}}t        j                  d      |j                  t        j                  <   |j
                  j                  | j                         |j                  t        j                  |j                  j                                |j                  d       |j                         \  }}|dk(  sJ |j                  |       y )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+2+<+<=U+V7<<(DJJ's}}g&8&8&?&?&ABN#'')
s0000W%r   c                     | j                         \  }}}t        j                  d      }|j                  |       |j                  j                  | j                         |j                  t        j                  |j                  j                                |j                  d       |j                         \  }}|dk(  sJ |j                  d       |j                         \  }}|dk(  sJ |j                  |       y )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%%&<=	Y'DJJ's}}g&8&8&?&?&ABN#'')
s...._%'')
s////W%r   c                    | j                         \  }}}t        j                  d      }|j                  |t        j                         |j
                  j                  | j                         |j                  t        j                  |j                  j                                |j                  d       |j                         \  }}|dk(  sJ |j                  d       |j                         \  }}|dk(  sJ |j!                  |       y )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%%&BC	Y6DJJ's}}g&8&8&?&?&ABN#'')
s''''_%'')
s5555W%r   c                      G d d      }| j                         \  }}}d}|j                   ||             |j                         \  }}|dk(  sJ |dk(  sJ |j                  |       y )Nc                   $    e Zd ZdefdZdefdZy)4TestPubLog.test_custom_message_type.<locals>.MessagerR   c                     || _         y 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    xxr   N)__name__
__module____qualname__strrj   rm    r   r   Messagerf      s    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   st    	  	   $335GCL!,,.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      sP    EE 
$&8&.&"&0&&&&&r   r   )r
   r   r   zmq.logr   	zmq.testsr   r   rr   r   r   <module>rx      s$   
   
  %t& t&r   