a "e @sddlTddlmZddlmZddlmZmZddlm Z ddl m Z m Z m Z mZzddlmZWnddlmZYn0Gd d d ejZGd d d eZGd dde ZGdddeZGdddeZGdddeZdddZedkredS))*)Tracer)Rules) Applications Application)AffectedProcess)ProcessesCollectionPackagesCollectionApplicationsCollectionAffectedProcessesCollection)patchc@s0eZdZddZedddddZdd Zd S) TestRulescCs>tt_tttttd|_d|j_t dddt t _ dS)N)memoryiZkernelT)nameignore) r rZ_appsrPackageManagerMockrdump_memory_mocktracerZ timestampZ_append_application ProcessesMockrZprocesses_factoryselfr|j}|t|ttdtdg||tdS)Nbazqux)rZtrace_affectedZassertSetEqualsetrfindassertIsInstancer )rZ init_systemaffectedrrrtest_trace_affecteds $zTestRules.test_trace_affectedcCsV|jtdt}||t|t|d|d}||t ||j ddS)Nrrr) rZtrace_applicationrrAffectedProcessMockrr Z assertEquallenrpid)rr processrrrtest_trace_application s   z TestRules.test_trace_applicationN)__name__ __module__ __qualname__rr r!r'rrrrrs  rc@sXeZdZddZddZeddZeddZed d Zd d Z d dZ ddZ dS) ProcessMockcCs||_||_||_||_dSN)r%files_name _create_time)rr%r create_timer-rrr__init__+szProcessMock.__init__cCs|jSr,r.rrrrr1szProcessMock.namecCs|jSr,r2rrrr real_name4szProcessMock.real_namecCsdSNFrrrrris_interpreted8szProcessMock.is_interpretedcCsdSr4rrrrr is_session<szProcessMock.is_sessioncCs|jSr,)r/rrrrr0@szProcessMock.create_timecCsgSr,rrrrrchildrenCszProcessMock.childrencCsdSr,rrrrrparentFszProcessMock.parentN) r(r)r*r1rpropertyr3r5r6r0r7r8rrrrr+*s   r+c@seZdZdddZdS)r#NcCs||_t|_t|_dSr,)r%rZpackagesr-)rr%rrrr1KszAffectedProcessMock.__init__)Nr(r)r*r1rrrrr#Jsr#c@seZdZeddZdS)rc CsHttdddgdtdddgdtd d d gd td ddddggS)NZfooiWfile1Zfile2file3Zbari'Zfile10Zfile11Zfile12r"ri )file7r=r>rafile4file9)r r+rrrrallSs zProcessesMock.allN)r(r)r* staticmethodrFrrrrrRsrc@seZdZddZdS) PackageMockcCs||_||_||_dSr,)rmodifiedr-)rrrIr-rrrr1^szPackageMock.__init__Nr:rrrrrH]srHc@sXeZdZeddgdeddgdeddgd ed d gd gZd dZddZdS)rAi r<Bi\)rDZfile5Zfile6CrC)rAZfile8rEDi"r@csttfdd|jS)Ncs |jkSr,)rI)p unix_timerrmz8PackageManagerMock.packages_newer_than..)r filter _packages)rrPrrOrpackages_newer_thanlsz&PackageManagerMock.packages_newer_thancCs$|jD]}|j|kr|jSqdSr,)rTrr-)rpkg_namepackagerrr package_filesos  z PackageManagerMock.package_filesN)r(r)r*rHrTrUrXrrrrrdsrNcCsDi}tD]2}|jD]&}||vr2|||q|g||<qq |Sr,)rrFr-append)userrr&filerrrrus  r__main__)N)Z__meta__Ztracer.resources.tracerrZtracer.resources.rulesrZtracer.resources.applicationsrrZtracer.resources.processesrZtracer.resources.collectionsr r r r Z unittest.mockr ZmockZunittestZTestCaserobjectr+r#rrHrrr(mainrrrrs$