
    %
iN                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	  G d de j
                  Z G d de j
                  Z G d de          Z G d	 d
e          Zedk    r e	             dS dS )    N)TestSkippedtestmainc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
SecurityTestsc                     t          j        dd          d         | _        	 t          j        dd          d         | _        d S # t          j        $ r(}|j        t          j        k    r d | _        Y d }~d S d }~ww xY w)N zPower Usersr   Administrator)win32securityLookupAccountNamepwr_sid	admin_sid
pywintypeserrorwinerrorERROR_NONE_MAPPEDselfexcs     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/test/test_security.pysetUpzSecurityTests.setUp   s    $6r=II!L	"*<RQQRSTDNNN 	" 	" 	" |x999!DNNNNNNN	"s    A A;A66A;c                     d S N r   s    r   tearDownzSecurityTests.tearDown   s        c                     | j         t          d          |                     t          j        dd          d         t          j        dd          d                    d S Nz'No 'Administrator' account is availabler   r	   r   )r   r   assertEqualr
   r   r   s    r   	testEqualzSecurityTests.testEqual   se    >!GHHH+B@@C+B@@C	
 	
 	
 	
 	
r   c                     |                      | j        | j        k               | j        r%|                      | j        | j        k               d S d S r   )
assertTruer   r   r   s    r   	testNESIDzSecurityTests.testNESID$   sR    4555> 	<OODLDN:;;;;;	< 	<r   c                 $   |                      | j        d u           |                      d | j        k               |                     | j        d u            |                     d | j        k               |                     d | j                   d S r   )r"   r   assertFalseassertNotEqualr   s    r   testNEOtherzSecurityTests.testNEOther)   s    D0111,----...-...D$,/////r   c                 Z    d| j         i}|                     |d         | j                    d S )Nfoo)r   r   )r   ds     r   testSIDInDictzSecurityTests.testSIDInDict0   s0    DL!54<00000r   c           	          | j         t          d          |                     t          t	          j        dd          d                   t          t	          j        dd          d                              d S r   )r   r   r   
memoryviewr
   r   r   s    r   
testBufferzSecurityTests.testBuffer4   su    >!GHHH}6r?KKANOO}6r?KKANOO	
 	
 	
 	
 	
r   c                 L   | j         }| j        }t          j                    }t          j                    }t          j                    }t          j                    }|                    t          j        t          j        |           |+|                    t          j        t          j	        |           t          j                    }t          j                    }|-|
                    t          j        t          j        |dd           |
                    t          j        t          j	        |dd           t          dd          D ]^}	||                    |d           |                    |d           |                    d|d           |                    d|d           _d S )N   r   i@ )r   r   r
   SECURITY_DESCRIPTORACLAddAccessAllowedAceACL_REVISIONwin32conGENERIC_READGENERIC_ALLAddAuditAccessAceDELETErangeSetSecurityDescriptorOwnerSetSecurityDescriptorGroupSetSecurityDescriptorDaclSetSecurityDescriptorSacl)
r   r   r   sd1sd2sd3daclsd4saclxs
             r   
testMemoryzSecurityTests.testMemory<   s   ,N	/11/11/11 ""  &(=w	
 	
 	
  $$*H,@)   /11 "" ""*HOY1   	&(<gq!	
 	
 	
 q&!! 	6 	6A$..y!<<<**7A666))!T1555))!T15555	6 	6r   N)__name__
__module____qualname__r   r   r    r#   r'   r+   r.   rF   r   r   r   r   r      s        	" 	" 	"  
 
 
< < <
0 0 01 1 1
 
 
6 6 6 6 6r   r   c                       e Zd Zd Zd ZdS )DomainTestsc                     d | _         	 t          j                    | _         d S # t          j        $ r*}|j        t          j        k    r t          |          d }~ww xY wr   )	ds_handler
   DsBindr   r   ERROR_NO_SUCH_DOMAINr   r   s     r   r   zDomainTests.setUp\   se    	#*133DNNN" 	# 	# 	#|x<<<c"""	#s   # A%AAc                 J    | j         | j                                          d S d S r   )rM   closer   s    r   r   zDomainTests.tearDownf   s,    >%N  """"" &%r   N)rG   rH   rI   r   r   r   r   r   rK   rK   [   s2        # # ## # # # #r   rK   c                   &    e Zd Zd Zd Zd Zd ZdS )TestDSc                 ,    t          j                     d S r   )r
   DsGetDcNamer   s    r   testDsGetDcNamezTestDS.testDsGetDcNamel   s     	!#####r   c                     t          j                    }t          j        |          D ]S\  }}}t          j        ||          D ]\  }}}t          j        ||          }t          j        ||          D ]\  }}}Td S r   )r
   rN   DsListSitesDsListServersInSiteDsListInfoForServerDsListDomainsInSite)r   hstatusignoresiteserverinfodomains           r   testDsListServerInfozTestDS.testDsListServerInfoq   s     ""$1$=a$@$@ 	 	 FFD*7*KAt*T*T D D&$8FCC*7*KAt*T*T  &	 	r   c                     t          j                    }t          j        }t	          j        |          }t          j        |d|||f          }|                     ||d         d                    d S Nr      )r
   rN   ntsecurityconDS_FQDN_1779_NAMEwin32apiGetUserNameExDsCrackNamesr   )r   r\   fmt_offerednameresults        r   testDsCrackNameszTestDS.testDsCrackNamesz   sf     ""#5%k22+Aq+{TGTTvay|,,,,,r   c                     t          j        t           j                  }t          j        }t          j        |          }t          j        d t          j        |t          j        |f          }| 	                    ||d         d                    d S re   )
ri   rj   NameCanonicalrg   rh   r
   rk   DS_NAME_FLAG_SYNTACTICAL_ONLYDS_CANONICAL_NAMEr   )r   expectedrl   rm   rn   s        r   testDsCrackNamesSyntaxzTestDS.testDsCrackNamesSyntax   s~     )(*@AA#5%k22+7+G
 
 	6!9Q<00000r   N)rG   rH   rI   rV   rc   ro   ru   r   r   r   rS   rS   k   sP        $ $ $
  - - -1 1 1 1 1r   rS   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestTranslatec                     t          j        |          }t          j        |          }t          j        |||          }|                     ||           d S r   )ri   rj   r
   TranslateNamer   )r   fmt_fromfmt_torm   rt   gots         r   _testTranslatezTestTranslate._testTranslate   sR    %h//)&11)$&AAh'''''r   c                 Z    |                      t          j        t          j                   d S r   )r}   ri   NameFullyQualifiedDNNameSamCompatibler   s    r   testTranslate1zTestTranslate.testTranslate1   s$    H98;UVVVVVr   c                 Z    |                      t          j        t          j                   d S r   )r}   ri   r   r   r   s    r   testTranslate2zTestTranslate.testTranslate2   s$    H68UVVVVVr   c                 Z    |                      t          j        t          j                   d S r   )r}   ri   r   NameUniqueIdr   s    r   testTranslate3zTestTranslate.testTranslate3   s$    H98;PQQQQQr   c                 Z    |                      t          j        t          j                   d S r   )r}   ri   r   r   r   s    r   testTranslate4zTestTranslate.testTranslate4   s$    H183PQQQQQr   N)rG   rH   rI   r}   r   r   r   r   r   r   r   rw   rw      sm        ( ( (W W WW W WR R RR R R R Rr   rw   __main__)unittestrg   r   ri   r5   r
   r   pywin32_testutilr   r   TestCaser   rK   rS   rw   rG   r   r   r   <module>r      sI                   2 2 2 2 2 2 2 2K6 K6 K6 K6 K6H% K6 K6 K6\# # # # #(# # # # #1 #1 #1 #1 #1[ #1 #1 #1LR R R R RK R R R( zHJJJJJ r   