
    bd+                        S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJrJr  S SKJr  S SKr\R"                  " S5      r\R"                  " S5      r " S S5      r\R*                  S	 5       r\R*                  S
 5       rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S r,S  r-S! r.S" r/S# r0S$ r1S% r2S& r3g)'    )print_functionN)journalid128
_make_line 8441372f8dca4ca98694a6091fd8519f 8441370000000000000000001fd85000c                   (    \ rS rSrS r  SS jrSrg)
MockSender   c                     / U l         g Nbuf)selfs    ;/usr/lib/python3/dist-packages/systemd/test/test_journal.py__init__MockSender.__init__   s	        Nc                    SU-   /nUb!  [        USU5      nUR                  SU-   5        XCs=L a	  Us=L a  c   O  O[        R                  " SS9S   S S u  p4nUb  UR                  SU-   5        Ub   UR                  S	R	                  U5      5        Ub  UR                  S
U-   5        UR                  S UR                  5        5       5        U R                  R                  U5        g )NzMESSAGE=hexMESSAGE_ID=   )limitr      z
CODE_FILE=zCODE_LINE={:d}z
CODE_FUNC=c              3   <   #    U  H  u  p[        X5      v   M     g 7fr   r   ).0keyvals      r   	<genexpr>"MockSender.send.<locals>.<genexpr>*   s     HXSJs((s   )getattrappend	tracebackextract_stackformatextenditemsr   )	r   MESSAGE
MESSAGE_ID	CODE_FILE	CODE_LINE	CODE_FUNCkwargsargsids	            r   sendMockSender.send   s     W$%!UJ7BKK*+6Y66.7.E.EA.Nq.QRTST.U+I) KKy01 KK(//	:; KKy01HHHr   r   )NNNN)__name__
__module____qualname____firstlineno__r   r1   __static_attributes__ r   r   r   r      s     (,7;r   r   c              #      #     S v   g ! [         [        4 a+  nUR                  U :X  a  [        R                  " 5         e S nAff = f7fr   )OSErrorIOErrorerrnopytestskip)codees     r   skip_oserrorrA   -   s8     W 77d?KKMs"   A	 AA&?AAc               #   `   #     S v   g ! [          a    [        R                  " 5          g f = f7fr   )
ValueErrorr=   r>   r8   r   r   skip_valueerrorrD   6   s$      s   .	 .+.+.c                     [         R                  R                  n U " [        R                  5      [         R
                  :X  d   eU " [        R                  5      [         R
                  :X  d   eU " [        R                  S-
  5      [         R
                  :X  d   eU " [        R                  S-   5      [         R                  :X  d   eU " [        R                  S-
  5      [         R                  :X  d   eU " [        R                  5      [         R                  :X  d   eU " [        R                  S-   5      [         R                  :X  d   eU " [        R                  S-
  5      [         R                  :X  d   eU " [        R                  5      [         R                  :X  d   eU " [        R                  S-   5      [         R                  :X  d   eU " [        R                  S-
  5      [         R                  :X  d   eU " [        R                  5      [         R                  :X  d   eU " [        R                  S-   5      [         R                  :X  d   eU " [        R                  5      [         R                  :X  d   eU " [        R                  5      [         R                  :X  d   eU " [        R                  S-   5      [         R                   :X  d   eg )N   )r   JournalHandlermap_priorityloggingNOTSET	LOG_DEBUGDEBUGLOG_INFOINFOLOG_WARNINGWARNLOG_ERRERRORLOG_CRITFATALCRITICAL	LOG_ALERT)ps    r   test_prioritiesrX   =   s   ++AW^^g&7&7777W]]g&7&7777W]]Qg&7&7777W]]Qg&6&6666W\\Ag&6&6666W\\?g&6&6666W\\Ag&9&9999W\\Ag&9&9999W\\?g&9&9999W\\Agoo555W]]Qgoo555W]]goo555W]]Qg&6&6666W]]g&6&6666Wg&6&6666W!"g&7&7777r   c                  F   SS0n [         R                  " [        5         [        R                  " S0 U D6  S S S 5        [         R                  " [        5         [        R                  R                  U 5        S S S 5        g ! , (       d  f       NQ= f! , (       d  f       g = f)Nz X  r   r8   )r=   raisesrC   r   rG   	with_argskws    r   "test_journalhandler_init_exceptionr^   R   se    
B	z	"$$ 
#	z	"((, 
#	" 
#	"	"	"s   B B
B
B c                      SSS.n [         R                  " [        R                  40 U D6  [        R                  U S'   [         R                  R	                  U 5        g )Nr      )XX3level)r   rG   rI   rN   r[   r\   s    r   test_journalhandler_initrd   Y   sC    aB7<<.2.,,BwK$$R(r   c            	         [         R                  " S[         R                  SSSS S 5      n [        5       nSSUR                  S.n[
        R                  " [         R                  40 UD6nUR                  U 5        [        UR                  5      S:X  d   eSUR                  S	   ;   d   eS
UR                  S	   ;   d   e[        5       n[
        R                  R                  [         R                  SSUR                  S.5      nUR                  U 5        [        UR                  5      S:X  d   eSUR                  S	   ;   d   eS
UR                  S	   ;   d   e[
        R                  R                  5         g )Ntest-loggertestpathrF   testr   r`   )ra   rb   sender_functionzX=3r   zX3=4)rc   ra   rb   ri   )rI   	LogRecordrN   r   r1   r   rG   emitlenr   r[   )recordsenderr]   handlers       r   test_journalhandler_inforp   _   s6   }gllJ6SWY]^F\FaFKK	8B$$W\\8R8GLLvzz?aFJJqM!!!VZZ]"""\F$$..!RSgmgrgr/stGLLvzz?aFJJqM!!!VZZ]""" $$&r   c            	      j   [         R                  " S[         R                  SSSS S 5      n [        5       n[        R
                  " [         R                  UR                  S9nUR                  U 5        [        UR                  5      S:X  d   e[        S UR                  S    5       5      (       d   eg )Nrf   rg   rF   rh   )ri   c              3   L   #    U  H  oR                  S 5      (       + v   M     g7f)r   N)
startswith)r   ms     r   r    4test_journalhandler_no_message_id.<locals>.<genexpr>z   s     F1<<...s   "$r   )rI   rj   rN   r   r   rG   r1   rk   rl   r   allrm   rn   ro   s      r   !test_journalhandler_no_message_idrx   t   s    }gllJ6SWY]^F\F$$W\\6;;OGLLvzz?aF

1FFFFFr   c            	      t   [         R                  " S[         R                  SSSS S 5      n [        5       n[        R
                  " [         R                  UR                  [        S9nUR                  U 5        [        UR                  5      S:X  d   eS[        R                  -   UR                  S   ;   d   eg Nrf   rg   rF   rh   ri   r*   r   r   )rI   rj   rN   r   r   rG   r1   TEST_MIDrk   rl   r   r   rw   s      r   )test_journalhandler_message_id_on_handlerr}   |   s    }gllJ6SWY]^F\F$$W\\6;;08:GLLvzz?a8<<'6::a=888r   c            	         [         R                  " S[         R                  SSSS S 5      n [        5       n[        R
                  " [         R                  UR                  [        R                  S9nUR                  U 5        [        UR                  5      S:X  d   eS[        R                  -   UR                  S   ;   d   eg rz   )rI   rj   rN   r   r   rG   r1   r|   r   rk   rl   r   rw   s      r   -test_journalhandler_message_id_on_handler_hexr      s    }gllJ6SWY]^F\F$$W\\6;;08>GLLvzz?a8<<'6::a=888r   c            	         [         R                  " S[         R                  SSSS S 5      n [        U R                  S'   [        5       n[        R                  " [         R                  UR                  [        S9nUR                  U 5        [        UR                  5      S:X  d   eS[        R                  -   UR                  S   ;   d   eg 	Nrf   rg   rF   rh   r*   r{   r   r   )rI   rj   rN   	TEST_MID2__dict__r   r   rG   r1   r|   rk   rl   r   r   rw   s      r   )test_journalhandler_message_id_on_messager      s    }gllJ6SWY]^F$-FOOL!\F$$W\\6;;08:GLLvzz?a9==(FJJqM999r   c            	         [         R                  " S[         R                  SSSS S 5      n [        R                  U R
                  S'   [        5       n[        R                  " [         R                  UR                  [        S9nUR                  U 5        [        UR                  5      S:X  d   eS[        R                  -   UR                  S   ;   d   eg r   )rI   rj   rN   r   r   r   r   r   rG   r1   r|   rk   rl   r   rw   s      r   -test_journalhandler_message_id_on_message_hexr      s    }gllJ6SWY]^F$-MMFOOL!\F$$W\\6;;08:GLLvzz?a9==(FJJqM999r   c                     [         R                  " 5       n [         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  5      n[         R                  " [         R                  [         R                  -  [         R                  -  5      n[         R                  " S5      ng )Nr   )r   Reader
LOCAL_ONLYRUNTIME_ONLYSYSTEM_ONLY)j1j2j3j4j5j6s         r   test_reader_init_flagsr      s    		B	**	+B	,,	-B	++	,B	**W-A-AAGDWDWW	XB		Br   c                    [         R                  " [        5         [        R                  " [        R
                  5        S S S 5        [        5          [        R                  " U R                  [        R
                  S9nS S S 5        [        5          [        R                  " U R                  [        R
                  [        R                  -  S9nS S S 5        [        R                  " U R                  [        R
                  [        R                  -  S9ng ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)N)pathflags)
r=   rZ   rC   r   r   OS_ROOTrD   strpathCURRENT_USERr   )tmpdirr   r   r   s       r   test_reader_os_rootr      s    	z	"w' 
#		^^")//3 
 
	^^")//G4H4H"HJ 
 
V^^%oo0C0CC
EB 
#	"		 
	s#   %D.D)?D:
D&)
D7:
Ec                     [         R                  " U R                  S9n[         R                  " SU R                  S9  [         R                  " U R                  S9n[         R                  " U R                  S9  g )Nr   r   )r   r   r   )r   r   r   s      r   test_reader_init_pathr      sH    	V^^	,BNN16>>*	V^^	,BNN'r   c                      [         R                  " [        5         [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r=   rZ   r:   r   r   r8   r   r    test_reader_init_path_invalid_fdr      s(    	w	qr" 
 			   :
Ac                      [         R                  " [        5         [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r8   r   r   %test_reader_init_path_nondirectory_fdr      s(    	w	qq! 
 		r   c                 *   [         R                  " U R                  [         R                  5      n[	        [
        R                  5         [        R                  " US9nS S S 5        [        W5      / :X  d   e[        5          [        R                  " [        R                  US9nS S S 5        [        W5      / :X  d   e[        R                  " [        R                  US9n[        U5      / :X  d   eg ! , (       d  f       N= f! , (       d  f       Ne= fNr   )osopenr   O_RDONLYrA   r<   ENOSYSr   r   listrD   SYSTEMr   )r   fdr   r   r   s        r   test_reader_init_path_fdr      s    		-B	ell	#^^$ 
$8r>>		^^GNN4 
8r>>	,,2	6B8r>> 
$	# 
	s   	C3$D3
D
Dc                 D   [         R                  " U R                  S9nU   UR                  (       a   e S S S 5        UR                  (       d   e[        R
                  " [        5         [        U5        S S S 5        g ! , (       d  f       NP= f! , (       d  f       g = fr   )r   r   r   closedr=   rZ   r:   nextr   js     r   test_reader_as_cmr      sa    FNN+A	
88|8 
88O8	w	Q 
 		 
 
 	s   B +B 
B
Bc                    [         R                  " U R                  S9nU   UR                  [        R
                  5        UR                  [        R                  R                  5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   messageid_matchr   SD_MESSAGE_JOURNAL_STARTSD_MESSAGE_JOURNAL_STOPr   r   s     r   test_reader_messageid_matchr      sO    FNN+A	
	%889	%77;;< 
s   A	A33
Bc                     [         R                  " U R                  S9nU   UR                  5         UR                  [        5        UR                  [        R
                  5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   	this_bootr|   r   r   s     r   test_reader_this_bootr      sF    FNN+A	
		H	HLL! 
   AA//
A=c                     [         R                  " U R                  S9nU   UR                  5         UR                  [        5        UR                  [        R
                  5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   this_machiner|   r   r   s     r   test_reader_this_machiner      sG    FNN+A	
		x 	x||$ 
r   c                 N   [         R                  " U R                  S9nU   [        [        R
                  5         UR                  S5      nS S S 5        S S S 5        [        W[        5      (       d   eU[        5       :X  d   eg ! , (       d  f       N>= f! , (       d  f       NG= f)Nr   FOOBAR)	r   r   r   rA   r<   r   query_unique
isinstancesetr   r   anss      r   test_reader_query_uniquer      so    FNN+A	
%,,'..*C ( 
 c3#%<< (' 
s"   BBB
B	B
B$c                 L   [         R                  " U R                  S9nU   [        [        R
                  5         UR                  5       nS S S 5        S S S 5        [        W[        5      (       d   eU[        5       :X  d   eg ! , (       d  f       N>= f! , (       d  f       NG= fr   )	r   r   r   rA   r<   r   enumerate_fieldsr   r   r   s      r   test_reader_enumerate_fieldsr      so    FNN+A	
%,,'$$&C ( 
 c3#%<< (' 
s"   BBB
B	B
B#c                    [         R                  " U R                  S9nU   [        [        R
                  5         UR                  5       nS S S 5        S S S 5        WSL d   eg ! , (       d  f       N= f! , (       d  f       N'= fNr   Fr   r   r   rA   r<   r   has_runtime_filesr   s      r   test_reader_has_runtime_filesr      Z    FNN+A	
%,,'%%'C ( 
 %<< (' 
"   A5A$A5$
A2	.A55
Bc                    [         R                  " U R                  S9nU   [        [        R
                  5         UR                  5       nS S S 5        S S S 5        WSL d   eg ! , (       d  f       N= f! , (       d  f       N'= fr   r   r   s      r    test_reader_has_persistent_filesr     r   r   c                     SS 0n[         R                  " U R                  US9nUR                  SS5      nUS:X  d   eUR                  SS5      nUS:X  d   eg )Nxxxc                     gNyyyr8   args    r   <lambda>(test_reader_converters.<locals>.<lambda>  s    er   r   
converters   abcr   zzz   )r   r   r   _convert_fieldr   r   r   r   s       r   test_reader_convertersr     s_    +,JFNNzBA


5&
)C%<<


5+
.C+r   c                     S S S.n[         R                  " U R                  US9nUR                  SSSS/SS/S	.5      nUS
SSS/SS/S	.:X  d   eg )Nc                     gr   r8   r   s    r   r   +test_reader_convert_entry.<locals>.<lambda>      Ur   c                     g)NYYYr8   r   s    r   r   r     r   r   )x1x2r   r   r   s   defs   )r   y1r   y2r   r   )r   r   r   _convert_entryr   s       r   test_reader_convert_entryr     s{    **,JFNNzBA


6#.$*F#3$/#=? @C %% %.&46 6 6 6r   c                    [         R                  " U R                  S9nUR                  SS5      n[        R
                  S:  a  UR                  c   eUR                  SS5      n[        R
                  S:  a  UR                  c   eUR                  SS5      n[        R
                  S:  a  UR                  c   eg g )Nr   _SOURCE_REALTIME_TIMESTAMPl   ZKT. )r   __REALTIME_TIMESTAMPCOREDUMP_TIMESTAMP)r   r   r   r   sysversion_infotzinfo)r   r   r   s      r   test_reader_convert_timestampsr   &  s    FNN+A


79I
JC
4zz%%%


13C
DC
4zz%%%


/1A
BC
4zz%%%  r   c                     [         R                  " U R                  S9n[        R                  " 5       nUR	                  U5        UR	                  S5        [
        R
                  " SSS5      nUR	                  U5        g )Nr   i90  i     r`   )r   r   r   timeseek_realtimedatetime)r   r   nowlong_agos       r   test_seek_realtimer  5  sW    FNN+A
))+COOCOOE  q!,HOOHr   c                      [        [        R                  5         [        R                  " S5      n S S S 5        W R                  S5      nUS;   d   e[        SU S9  g ! , (       d  f       N2= f)Nztest_journal.pyzmessage...
)   Nzprinted message...)file)rA   r<   ENOENTr   streamwriteprint)r  ress     r   test_journal_streamr
  @  sT    	ell	# 12 
$ ,,~
&C*	
V, 
$	#s   A
A+)4
__future__r   
contextlibr   r<   rI   r   r   uuidr   r$   systemdr   r   systemd.journalr   r=   UUIDr|   r   r   contextmanagerrA   rD   rX   r^   rd   rp   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r8   r   r   <module>r     s   %     	   
  " & 9978II89	 2    8*-)'*G99::
E(#"="%6&	-r   