
    b#                     f    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        j                  Z	dS )    N)
SCOPE_BASELdbErrorc                   `     e Zd Z fdZ fdZd Zd ZddZd Zd Z	d	 Z
d
 Zd Zd Z xZS )SchemaAttributesTestCasec                 P   t          t          |                                            t          j                                        | _        t          j                            | j                                                  | _	        | j	        
                    ddt          dg          }|                     t          |          d           |d         d         d         | _        |d         d         d         | _        t!          |d         d         d                   | _        d S )	N *)base
expressionscopeattrs   r   schemaNamingContextdefaultNamingContextforestFunctionality)superr   setUpsambatestsenv_loadparmlpconnect_samdb	samdb_urlsamdbsearchr   assertEquallen	schema_dnbase_dnintforest_level)selfres	__class__s     D/usr/lib/python3/dist-packages/samba/tests/dsdb_schema_attributes.pyr   zSchemaAttributesTestCase.setUp$   s    &--33555+**,,[..tw/@/@/B/BCC
 jRBjQTPUVVS1%%%Q 56q91v45a8A'< =a @AA    c                 V    t          t          |                                            d S N)r   r   tearDown)r"   r$   s    r%   r)   z!SchemaAttributesTestCase.tearDown1   s&    &--6688888r&   c                 >    d}| j                             |           d S )Nz@
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
)r   modify_ldif)r"   ldifs     r%   _ldap_schemaUpdateNowz.SchemaAttributesTestCase._ldap_schemaUpdateNow4   s'     	
t$$$$$r&   c                     |t          j        dt          j                              z   }|                    dd          }d|d| j        }|||fS )Nz%s-r   zCN=,)timestrftimegmtimereplacer   )r"   prefixobj_nameobj_ldap_nameobj_dns        r%   _make_obj_namesz(SchemaAttributesTestCase._make_obj_names=   sT    DM$>>> ((b11'xx8-00r&   Nc                     d|z   dz   |z   dz   |z   dz   |z   d|z  z   t          t          j        dd                    z   dz   }|||d	z   z  }|S )
Nz
dn: zA
objectClass: top
objectClass: attributeSchema
adminDescription: z
adminDisplayName: z
cn: z*
attributeId: 1.3.6.1.4.1.7165.4.6.1.8.%d.r   i z_
attributeSyntax: 2.5.5.12
omSyntax: 64
instanceType: 4
isSingleValued: TRUE
systemOnly: FALSE

)strrandomrandint)r"   	attr_nameattr_dnsub_oidextrar,   s         r%   _make_attr_ldifz(SchemaAttributesTestCase._make_attr_ldifC   s    
 "	"%	
 ""
% -/677 :=V^Av=V=V9W9WX[ EDL Dr&   c                    |                      d          \  }}}|                     ||ddt          j        j        z            }| j                            |           |                                  | j                            dt          j
                  }|                     ||d                    |                     t          |d         |                   d           |                     t          |d         |         d                   d           | j                            dt          j
                  }|                     |d	 |d         d
         D                        d S )NzschemaAttributes-IdxAttr-r   searchFlags: %d@ATTRIBUTESr
   r   r   CASE_INSENSITIVE
@INDEXLISTc                 ,    g | ]}t          |          S  r<   .0xs     r%   
<listcomp>zESchemaAttributesTestCase.test_AddIndexedAttribute.<locals>.<listcomp>n       &N&N&N!s1vv&N&N&Nr&   @IDXATTRr9   rC   r   dsdbSEARCH_FLAG_ATTINDEXr   add_ldifr-   r   ldbr   assertInr   r   r<   r"   r?   attr_ldap_namer@   r,   attr_residx_ress          r%   test_AddIndexedAttributez1SchemaAttributesTestCase.test_AddIndexedAttributeX   sK   /3/C/CD_/`/`,NG##Iw$5
8W$WY Y 	
D!!!""$$$ :$$-s~$NNnhqk222Xa[8991===Xa[8;<<>PQQQ *##S^#LLn&N&Nwqz*7M&N&N&NOOOOOr&   c                    |                      d          \  }}}|                     ||d          }| j                            |           |                                  | j                            dt          j                  }|                     ||d                    | 	                    t          |d         |                   d           | 	                    t          |d         |         d                   d           | j                            dt          j                  }|                     |d	 |d         d
         D                        d S )NzschemaAttributes-UnIdxAttr-   rF   rG   r   r   rH   rI   c                 ,    g | ]}t          |          S rK   rL   rM   s     r%   rP   zGSchemaAttributesTestCase.test_AddUnIndexedAttribute.<locals>.<listcomp>   s    )Q)Q)QQ#a&&)Q)Q)Qr&   rR   )r9   rC   r   rV   r-   r   rW   r   rX   r   r   r<   assertNotInrY   s          r%   test_AddUnIndexedAttributez3SchemaAttributesTestCase.test_AddUnIndexedAttributep   s:   /3/C/CDa/b/b,NG##Iw:: 	
D!!!""$$$ :$$-s~$NNnhqk222Xa[8991===Xa[8;<<>PQQQ *##S^#LL)Q)Q'!*Z:P)Q)Q)QRRRRRr&   c                    |                      d          \  }}}|                     ||ddt          j        j        z            }| j                            |           |                                  |                      d          \  }}}|                     ||ddt          j        j        z            }| j                            |           |                                  | j                            dt          j
                  }|                     ||d                    |                     t          |d         |                   d	           |                     t          |d         |         d                   d
           |                     ||d                    |                     t          |d         |                   d	           |                     t          |d         |         d                   d
           | j                            dt          j
                  }	|                     |d |	d         d         D                        |                     |d |	d         d         D                        d S )NzschemaAttributes-2IdxAttr-   rE   zschemaAttributes-Attr-   rF   rG   r   r   rH   rI   c                 ,    g | ]}t          |          S rK   rL   rM   s     r%   rP   zISchemaAttributesTestCase.test_AddTwoIndexedAttributes.<locals>.<listcomp>   rQ   r&   rR   c                 ,    g | ]}t          |          S rK   rL   rM   s     r%   rP   zISchemaAttributesTestCase.test_AddTwoIndexedAttributes.<locals>.<listcomp>   s    'O'O'O1A'O'O'Or&   rS   )
r"   r?   rZ   r@   r,   
attr_name2attr_ldap_name2attr_dn2r[   r\   s
             r%   test_AddTwoIndexedAttributesz5SchemaAttributesTestCase.test_AddTwoIndexedAttributes   sT   /3/C/CD`/a/a,NG##Iw$5
8W$WY Y 	
D!!!""$$$ 372F2FG_2`2`/_h##J!$5
8W$WY Y 	
D!!!""$$$ :$$-s~$NNnhqk222Xa[8991===Xa[8;<<>PQQQox{333Xa[9::A>>>Xa[9!<==?QRRR *##S^#LLn&N&Nwqz*7M&N&N&NOOOo'O'O
:8N'O'O'OPPPPPr&   c                 &   ddgd}t           j                            | j        |t           j                  }| j                            |           | j                            dt           j        dg          }|                     t          |          d           |                     t          |d         j                  d           |                     t          |d                   d           |                     d|d         v            |                     t          |d         d                   d           |                     t          |d         d         d                   d           t          j                            | j                                                  }|                                 |                                 | j                            dt           j        dg          }|                     t          |          d           |                     t          |d         j                  d           |                     t          |d                   d           |                     d|d         v            d S )NrF   HIDDENdn@TEST_EXTRArp   r
   r   r   r   r   rW   Message	from_dictr   FLAG_MOD_ADDmodifyr   r   r   r   r<   ro   
assertTruer   r   r   r   r   transaction_starttransaction_commitassertFalser"   mmsgr#   samdb2s        r%   test_modify_at_attributesz2SchemaAttributesTestCase.test_modify_at_attributes   s0    %J  k##DJ33CDD
#j]#.'4o   7 7S1%%%SVY777SVa(((Q/000SVM233Q777SVM21566AAA**47+<+<+>+>?? 	  """!!###j]#.'4o   7 7S1%%%SVY777SVa(((#a&011111r&   c                 &   ddgd}t           j                            | j        |t           j                  }| j                            |           | j                            dt           j        dg          }|                     t          |          d           |                     t          |d         j                  d           |                     t          |d                   d           |                     d|d         v            |                     t          |d         d                   d           |                     t          |d         d         d                   d           t          j                            | j                                                  }|                                 |                                 | j                            dt           j        dg          }|                     t          |          d           |                     t          |d         j                  d           |                     t          |d                   d           |                     d|d         v            d S )NrI   1rn   rp   rq   r   r   rr   r{   s        r%   test_modify_at_indexlistz1SchemaAttributesTestCase.test_modify_at_indexlist   s0    E  k##DJ33CDD
#j\'4o   7 7S1%%%SVY666SVa(((Q/000SVM233Q777SVM21566<<<**47+<+<+>+>?? 	  """!!###j\'4o   7 7S1%%%SVY666SVa(((#a&011111r&   c                 \   ddgd}t           j                            | j        |t           j                  }	 | j                            |           |                     d           d S # t          $ r8}|j        d         }| 	                    |t           j
                   Y d }~d S d }~ww xY w)NrI   r   )ro   z@TEST_NOT_EXTRAz9modify of @INDEXLIST with a failed constraint should failr   )rW   rs   rt   r   FLAG_MOD_DELETErv   failr   argsr   ERR_NO_SUCH_ATTRIBUTE)r"   r|   r}   errenums        r%    test_modify_fail_of_at_indexlistz9SchemaAttributesTestCase.test_modify_fail_of_at_indexlist   s    !$  k##DJ33FGG	>Jc"""IIQRRRRR 	> 	> 	>8A;DT3#<=========	>s   /A) )
B+3-B&&B+r(   )__name__
__module____qualname__r   r)   r-   r9   rC   r]   rb   rk   r   r   r   __classcell__)r$   s   @r%   r   r   "   s        B B B B B9 9 9 9 9% % %1 1 1   *P P P0S S S.$Q $Q $QL 2  2  2D 2  2  2D> > > > > > >r&   r   )
r1   r=   samba.testsr   rW   r   r   r   TestCaser   rK   r&   r%   <module>r      s   4       



 $ $ $ $ $ $ $ $Z> Z> Z> Z> Z>u{3 Z> Z> Z> Z> Z>r&   