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_cachingcCsztƒ}ddgd¢dœ|_| ¡dks(J‚tƒ}ddgd¢dœ|_| ¡dksPJ‚tƒ}dddgdœ|_| ¡dksvJ‚dS)NZsshdú/usr/sbin/sshd)r!z-DZfooZbar)ÚnameZexeZcmdline)ZsomeÚthingÚandZ argumentsZidkZwhatzssh-thing-sessionZ withoutparams)Ú ProcessMockÚdatar")r Zp1Zp2Zp3rrrÚtest_name_sshd1s"þþÿzTestProcesses.test_name_sshdcCsFtƒ}t ¡}t|ƒd}| dd¡dus.J‚| |d¡dusBJ‚dS)NiçrZPAMNameF)rrÚpidsÚmaxZhas_service_property_from_pid)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