a ‡×X]'ã@sŠddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z ddlmZddlZe d¡Ze d¡ZGdd„dƒZejd d „ƒZejd d „ƒZd d„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z dd „Z!d!d"„Z"d#d$„Z#d%d&„Z$d'd(„Z%d)d*„Z&d+d,„Z'd-d.„Z(d/d0„Z)d1d2„Z*d3d4„Z+d5d6„Z,d7d8„Z-d9d:„Z.d;d<„Z/d=d>„Z0d?d@„Z1dAdB„Z2dS)Cé)Úprint_functionN)ÚjournalÚid128©Ú _make_lineZ 8441372f8dca4ca98694a6091fd8519fZ 8441370000000000000000001fd85000c@seZdZdd„Zddd„ZdS)Ú MockSendercCs g|_dS©N)Úbuf)Úself©r ú?/usr/lib64/python3.9/site-packages/systemd/test/test_journal.pyÚ__init__szMockSender.__init__Nc KsØd|g}|dur,t|d|ƒ}| d|¡||urJ|urJdurlnntjdd�ddd…\}}}|dur‚| d|¡|durš| d  |¡¡|dur°| d |¡| d d „| ¡Dƒ¡|j |¡dS) NzMESSAGE=Úhexz MESSAGE_ID=é)Úlimitréz CODE_FILE=zCODE_LINE={:d}z CODE_FUNC=css|]\}}t||ƒVqdSrr)Ú.0ÚkeyÚvalr r r Ú )óz"MockSender.send..)ÚgetattrÚappendÚ _tracebackÚ extract_stackÚformatÚextendÚitemsr ) r ZMESSAGEÚ MESSAGE_IDZ CODE_FILEZ CODE_LINEZ CODE_FUNCÚkwargsÚargsÚidr r r Úsends  "zMockSender.send)NNNN)Ú__name__Ú __module__Ú __qualname__r r"r r r r rsÿrc csLz dVWn<ttfyF}z |j|kr0t ¡‚WYd}~n d}~00dSr)ÚOSErrorÚIOErrorÚerrnoÚpytestÚskip)ÚcodeÚer r r Ú skip_oserror,s   r-ccs*z dVWnty$t ¡Yn0dSr)Ú ValueErrorr)r*r r r r Úskip_valueerror5s  r/cCs tjj}dSr)rÚJournalHandlerZ map_priority)Úpr r r Útest_priorities<sr2cCsFddi}t t¡� tjfi|¤ŽWdƒn1s80YdS)Nz X r)r)Úraisesr.rr0©Úkwr r r Ú"test_journalhandler_init_exceptionQs r6cCs"dddœ}tjtjfi|¤ŽdS)Nré)ÚXÚX3)rr0ÚloggingÚINFOr4r r r Útest_journalhandler_initVs r<c CsNt dtjddddd¡}tƒ}dd|jdœ}tjtjfi|¤Ž}| |¡dS)Nú test-loggerÚtestpathéÚtestrr7)r8r9Úsender_function)r:Ú LogRecordr;rr"rr0Úemit)ÚrecordÚsenderr5Úhandlerr r r Útest_journalhandler_infoZs  rGc Cs>t dtjddddd¡}tƒ}tjtj|jd�}| |¡dS)Nr=r>r?r@)rA)r:rBr;rrr0r"rC©rDrErFr r r Ú!test_journalhandler_no_message_ides  rIc Cs@t dtjddddd¡}tƒ}tjtj|jtd�}| |¡dS©Nr=r>r?r@©rAr) r:rBr;rrr0r"ÚTEST_MIDrCrHr r r Ú)test_journalhandler_message_id_on_handlerms ÿ rMc CsBt dtjddddd¡}tƒ}tjtj|jtjd�}|  |¡dSrJ) r:rBr;rrr0r"rLrrCrHr r r Ú-test_journalhandler_message_id_on_handler_hexvs ÿ rNc CsJt dtjddddd¡}t|jd<tƒ}tjtj|jt d�}|  |¡dS©Nr=r>r?r@rrK) r:rBr;Ú TEST_MID2Ú__dict__rrr0r"rLrCrHr r r Ú)test_journalhandler_message_id_on_messages  ÿ rRc CsLt dtjddddd¡}tj|jd<tƒ}tjtj|j t d�}|  |¡dSrO) r:rBr;rPrrQrrr0r"rLrCrHr r r Ú-test_journalhandler_message_id_on_message_hex‰s  ÿ rScCsRt ¡}t tj¡}t tj¡}t tj¡}t tjtjBtjB¡}t d¡}dS)Nr)rÚReaderZ LOCAL_ONLYZ RUNTIME_ONLYÚ SYSTEM_ONLY)Új1Új2Új3Zj4Zj5Zj6r r r Útest_reader_init_flags“s    rYcCsÈt t¡�t tj¡Wdƒn1s,0Ytƒ�"tj|jtjd�}Wdƒn1sd0Ytƒ�(tj|jtjtjBd�}Wdƒn1s¢0Ytj|jtjtj Bd�}dS)N)ÚpathÚflags) r)r3r.rrTZOS_ROOTr/ÚstrpathÚ CURRENT_USERrU)ÚtmpdirrVrWrXr r r Útest_reader_os_root›s *ÿ$ ÿ$ ÿr_cCs>tj|jd�}tjd|jd�tj|jd�}tj|jd�dS)N©rZr)rrTr\)r^rVrWr r r Útest_reader_init_path§sracCs<t t¡�tjddd�Wdƒn1s.0YdS)Nréÿÿÿÿr`©r)r3r&rrTr r r r Ú test_reader_init_path_invalid_fd®s rdcCs<t t¡�tjddd�Wdƒn1s.0YdS)Nrr`rcr r r r Ú%test_reader_init_path_nondirectory_fd²s recCs�t |jtj¡}ttjƒ�tj|d�}Wdƒn1s<0Yt ƒ� tjtj |d�}Wdƒn1sr0Ytjtj |d�}dS©Nr`) ÚosÚopenr\ÚO_RDONLYr-r(ÚENOSYSrrTr/ZSYSTEMr])r^ÚfdrVrWrXr r r Útest_reader_init_path_fd¶s *.rlcCshtj|jd�}|�Wdƒn1s(0Yt t¡�t|ƒWdƒn1sZ0YdSrf)rrTr\r)r3r&Únext©r^Újr r r Útest_reader_as_cmÄs  rpcCsPtj|jd�}|�*| tj¡| tjj¡Wdƒn1sB0YdSrf)rrTr\Zmessageid_matchrZSD_MESSAGE_JOURNAL_STARTZSD_MESSAGE_JOURNAL_STOPrrnr r r Útest_reader_messageid_matchÍs rqcCsTtj|jd�}|�.| ¡| t¡| tj¡Wdƒn1sF0YdSrf)rrTr\Z this_bootrLrrnr r r Útest_reader_this_bootÓs  rrcCsTtj|jd�}|�.| ¡| t¡| tj¡Wdƒn1sF0YdSrf)rrTr\Z this_machinerLrrnr r r Útest_reader_this_machineÚs  rsc Csjtj|jd�}|�Dttjƒ�| d¡}Wdƒn1s>0YWdƒn1s\0YdS)Nr`ZFOOBAR)rrTr\r-r(rjZ query_unique©r^roZansr r r Útest_reader_query_uniqueás  Fruc Cshtj|jd�}|�Bttjƒ�| ¡}Wdƒn1s<0YWdƒn1sZ0YdSrf)rrTr\r-r(rjZenumerate_fieldsrtr r r Útest_reader_enumerate_fieldsés  Drvc Cshtj|jd�}|�Bttjƒ�| ¡}Wdƒn1s<0YWdƒn1sZ0YdSrf©rrTr\r-r(rjZhas_runtime_filesrtr r r Útest_reader_has_runtime_filesñs  Drxc Cshtj|jd�}|�Bttjƒ�| ¡}Wdƒn1s<0YWdƒn1sZ0YdSrfrwrtr r r Ú test_reader_has_persistent_filesøs  DrycCs8ddd„i}tj|j|d�}| dd¡}| dd¡}dS)NZxxxcSsdS©NZyyyr ©Úargr r r Úrz(test_reader_converters..©rZÚ convertersóabcZzzzó€€)rrTr\Z_convert_field©r^rrorr r r Útest_reader_convertersÿs    rƒcCsBdd„dd„dœ}tj|j|d�}| ddddgdd gd œ¡}dS) NcSsdSrzr r{r r r r} rz+test_reader_convert_entry..cSsdS)NZYYYr r{r r r r} r)Úx1Úx2r~r€r�sdefs€�)r„Zy1r…Zy2)rrTr\Z_convert_entryr‚r r r Útest_reader_convert_entry sÿýr†cCsFtj|jd�}t ¡}| |¡| d¡t ddd¡}| |¡dS)Nr`i90i²ér7)rrTr\ÚtimeZ seek_realtimeÚdatetime)r^roZnowZlong_agor r r Útest_seek_realtimes   rŠcCsNttjƒ�t d¡}Wdƒn1s*0Y| d¡}td|d�dS)Nztest_journal.pyz message... zprinted message...)Úfile)r-r(ÚENOENTrÚstreamÚwriteÚprint)r�Úresr r r Útest_journal_stream"s ( r‘)3Z __future__rÚ contextlibr‰r(r:rgrˆZuuidÚ tracebackrZsystemdrrZsystemd.journalrr)ZUUIDrLrPrÚcontextmanagerr-r/r2r6r<rGrIrMrNrRrSrYr_rardrerlrprqrrrsrurvrxryrƒr†rŠr‘r r r r ÚsZ