a "e‰ ã@sjddlTddlmZmZmZddlmZddlmZddl Z ddl Z Gdd„de j ƒZ Gd d „d eƒZdS) é)Ú*é)Ú ProcessesÚProcessÚProcessWrapper)Ú SystemdDbus)ÚProcessesCollectionNc@sdeZdZe dd¡dd„ƒZe dd¡dd„ƒZe dd¡dd„ƒZd d „Ze dd¡d d „ƒZ d S)Ú TestProcessesTz%@TODO Create Mock for Processes classcCs:t ¡d}| ¡}| |t¡|D]}| |t¡q$dS)Nr)rÚallÚchildrenZassertIsInstancerr)ÚselfÚprocessr Úchild©rú?/usr/lib/python3.9/site-packages/tracer/tests/test_processes.pyÚ test_children s   zTestProcesses.test_childrencCs|tt ¡ƒ}tt ¡ƒ}| |tt ¡ƒ¡| || ¡¡| || ¡¡t ¡tt ¡ƒ}|  ||¡|  ||¡dS©N) rÚosÚgetpidÚgetppidZassertIsÚparentZassertInr Z reset_cacheÚ assertEqualZ assertIsNot)r r rZprocess2rrrÚtest_unique_processs    z!TestProcesses.test_unique_processcCsdtt ¡ƒ}| ¡tjtjjtjd}|  dt | ¡ƒ¡|  ¡|  dt | ¡ƒ¡|  ¡dS)N)Ústdinrr) rrrr Ú subprocessÚPopenÚsysÚ executableÚPIPErÚlenZ rebuild_cacheZ terminate)r r rrrrÚtest_process_caching"s z"TestProcesses.test_process_cachingcCsJtƒ}ddgd¢dœ|_tƒ}ddgd¢dœ|_tƒ}dddgdœ|_dS)NZsshdú/usr/sbin/sshd)r!z-DZfooZbar)ÚnameZexeZcmdline)ZsomeÚthingÚandZ argumentsZidkZwhatZ withoutparams)Ú ProcessMockÚdata)r Zp1Zp2Zp3rrrÚtest_name_sshd1sþþÿzTestProcesses.test_name_sshdcCstƒ}t ¡}t|ƒd}dS)Niç)rrÚpidsÚmax)r Zdbusr(Z nonexistingrrrÚ test_dbusDs zTestProcesses.test_dbusN) Ú__name__Ú __module__Ú __qualname__ÚunittestZskipIfrrr r'r*rrrrr s      r c@seZdZdd„Zdd„ZdS)r%cCs i|_dSr©r&)r rrrÚ__init__NszProcessMock.__init__cCs |j|Srr/)r r"rrrÚ_attrQszProcessMock._attrN)r+r,r-r0r1rrrrr%Msr%)Z__meta__Ztracer.resources.processesrrrZtracer.resources.SystemdDbusrZtracer.resources.collectionsrrrr.ZTestCaser r%rrrrÚs  D