
    f                        d dl Z d dlZd dl d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	  G d d	e j                        Z G d
 de      Z G d de      Z G d de      Z G d de      Zd Zd Zedk(  r e        yy)    N)*)BrokenImplementation)instancesOfObjectImplements)objectImplements)	Interface)	Attributec                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)InterfaceTestsc                      y N selfs    u/var/dept/share/cheung/public_html/OutSchool/python/env/lib/python3.12/site-packages/Interface/tests/testInterface.pysetUpzInterfaceTests.setUp           c                      y r   r   r   s    r   tearDownzInterfaceTests.tearDown   r   r   c                 V   t         j                  t              sJ t        j                  t              sJ t        j                  t
              sJ t        j                  t              rJ t        j                  t              sJ t        j                  t              sJ t        j                  t              rJ t        j                  t
              sJ t        j                  t              rJ t        j                  t              rJ t        j                  t              rJ y r   )	ICisImplementedByInstancesOfCI1ABDEI2r   s    r   testClassImplementsz"InterfaceTests.testClassImplements    s    ,,Q///,,Q///,,Q///00333,,Q///,,Q///00333,,Q///0033300333003333r   c                    t         }t         |t              v sJ t         |t              v sJ t         |t              vsJ t
         |t              v sJ t
         |t              vsJ t        }t         |t                     v sJ t         |t	                     v sJ t         |t                     vsJ t
         |t                     v sJ t
         |t                     vsJ y r   )r   r   r   r   r   r   r   r   )r   fs     r   testUtilzInterfaceTests.testUtil/   s    'QqTzzQqTzz1::QqTzz1::QqsV||QqsV||13<<QqsV||13<<r   c                    t         j                  t                     sJ t        j                  t	                     sJ t        j                  t                     sJ t        j                  t                     rJ t        j                  t                     sJ t        j                  t                     sJ t        j                  t	                     rJ t        j                  t                     sJ t        j                  t                     rJ t        j                  t                     rJ t        j                  t                     rJ y r   )	r   isImplementedByr   r   r   r   r   r   r   r   s    r   testObjectImplementsz#InterfaceTests.testObjectImplements?   s    !!!#&&&!!!#&&&!!!#&&&%%ac***!!!#&&&!!!#&&&%%ac***!!!#&&&%%ac***%%ac***%%ac****r   c                 X    t               }| j                  t        |j                         y r   )r   assertRaisesr   ma)r   as     r   testDeferredClassz InterfaceTests.testDeferredClassN   s    C.5r   c                 ~   t         j                  t              sJ t         j                  t              sJ t         j                  t              sJ t        j                  t              rJ t        j                  t              rJ t        j                  t              sJ t        j                  t               rJ y r   )BazInterfaceextendsBobInterfaceBarInterfaceFunInterfacer   s    r   testInterfaceExtendsInterfacez,InterfaceTests.testInterfaceExtendsInterfaceS   s    ##L111##L111##L111''555''555##L111''5555r   c                 l    ddl m}  |t        t              sJ t	        j
                  t              sJ y )Nr   )verifyClass)Interface.Verifyr4   FooInterfaceFoor   r%   r   )r   r4   s     r   testVerifyImplementationz'InterfaceTests.testVerifyImplementation\   s)    0<---((,,,r   c                 
   t        t        j                               }|j                          | j	                  |g d       t        t        j                  d            }|j                          | j	                  |g d       y )Nf21f22f23   a1f11f12r;   r<   r=   )list_I2namessortassertEqual)r   rE   s     r   
test_nameszInterfaceTests.test_namesa   sV    SYY[!5::< 56SYYq\"EJJL IJr   c                    t         j                         D cg c]  }|d   	 }}|j                          | j                  |g d       t         j                  d      D cg c]  }|d   	 }}|j                          | j                  |g d       t         j                  d      D ]!  \  }}| j                  ||j                         # y c c}w c c}w )Nr   r:   r>   r?   )rD   namesAndDescriptionsrF   rG   __name__)r   ndrE   nameds        r   test_namesAndDescriptionsz(InterfaceTests.test_namesAndDescriptionsg   s    !$!9!9!;<2A<<ejjl 56!$!9!9!!<=2A==uzz| IJ//2 	/GD!T1::.	/ ==s   C Cc                 V   | j                  t        j                  d      j                  d       | j                  t        j                  d      j                  d       | j                  t        j	                  d|       |        | j                  t        t        j                  d       y )NrA   r<   f33)rG   rD   getDescriptionForrK   queryDescriptionForr(   KeyErrorr   s    r   test_getDescriptionForz%InterfaceTests.test_getDescriptionForp   sy    ..u5>>F..u5>>F00=tD(C$9$95Ar   c                     t         j                  d      }| j                  |j                  d       | j                  |j                  d       y )Nr@   This is an attribute)rD   rR   rG   rK   __doc__)r   descriptions     r   testAttrzInterfaceTests.testAttrv   s?    ++D1--t4,,.DEr   N)rK   
__module____qualname__r   r   r    r#   r&   r+   r2   r8   rH   rO   rU   rZ   r   r   r   r
   r
      sA    4  +6
6-
K/BFr   r
   c                   (    e Zd Z ed      Zd Zd Zy)_I1rW   c                       y r   r   r   r   r   rA   z_I1.f11       tr   c                       y r   r   r   r   r   rB   z_I1.f12   r`   r   N)rK   r[   r\   r   r@   rA   rB   r   r   r   r^   r^   |   s    	)	*Br   r^   c                       e Zd Zy)__I1NrK   r[   r\   r   r   r   rc   rc          r   rc   c                       e Zd Zy)___I1Nrd   r   r   r   rg   rg      re   r   rg   c                       e Zd Zd Zd Zd Zy)rD   c                       y r   r   r   r   r   r;   z_I2.f21   r`   r   c                       y r   r   r   r   r   r<   z_I2.f22   r`   r   c                       y r   r   r   r   r   r=   z_I2.f23   r`   r   N)rK   r[   r\   r;   r<   r=   r   r   r   rD   rD      s    r   rD   c                  4    t        j                  t              S r   )unittest	makeSuiter
   r   r   r   
test_suitero      s    n--r   c                  Z    t        j                         j                  t                      y r   )rm   TextTestRunnerrunro   r   r   r   mainrs      s    !!*,/r   __main__)rm   r   unitfixturesInterface.Exceptionsr   Interface.Implementsr   r   Interface.Attributer   TestCaser
   r^   rc   rg   rD   ro   rs   rK   r   r   r   <module>rz      s~       5 < 1  )aFX&& aFH)  3  D % 
.0 ZF r   