ó
ÔËÞKc           @   sº  d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z d d l m	 Z	 m
 Z
 m Z d d l m Z m Z m Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ e e e ƒ d e e f d „  ƒ  YZ e e e ƒ d e j f d „  ƒ  YZ d „  Z e d k r¶e j ƒ  n  d S(   sú   Test interface declarations against ExtensionClass-like classes.

These tests are to make sure we do something sane in the presence of
classic ExtensionClass classes and instances.

$Id: test_odd_declarations.py 110736 2010-04-11 10:59:30Z regebro $
iÿÿÿÿN(   t   odd(   t	   Interfacet
   implementst   classProvides(   t   directlyProvidest
   providedByt   directlyProvidedBy(   t   classImplementst   classImplementsOnlyt   implementedByt   I1c           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR
      s    t   I2c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR      s    t   I3c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR      s    t   I31c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR       s    t   I4c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   !   s    t   I5c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   "   s    t   Oddc           B   s   e  Z e j Z RS(    (   R   R   R    t	   MetaClasst   __metaclass__(    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   $   s    t   Bc           B   s   e  Z e Z RS(    (   R   R   R   t   __implemented__(    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   &   s    t   Ac           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   /   s   t   Cc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   3   s   t   Testc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s)  t  ƒ  } t | t ƒ |  j g  t | ƒ D] } | j ƒ  ^ q) d d d d g ƒ |  j g  t | ƒ j ƒ  D] } | j ƒ  ^ qj d d d d d d g ƒ |  j t t | ƒ k ƒ |  j	 t
 t | ƒ k ƒ |  j t | ƒ j t
 ƒ ƒ |  j t | ƒ j t ƒ ƒ |  j	 t | ƒ j t ƒ ƒ d t t f d „  ƒ  Y} t | t ƒ d	 | f d
 „  ƒ  Y} t | t ƒ t | t ƒ | ƒ  } t | t ƒ |  j g  t | ƒ D] } | j ƒ  ^ qd d d g ƒ |  j g  t | ƒ j ƒ  D] } | j ƒ  ^ qÛd d d d d g ƒ |  j	 t t | ƒ k ƒ |  j	 t
 t | ƒ k ƒ |  j t | ƒ j t
 ƒ ƒ |  j	 t | ƒ j t ƒ ƒ |  j t | ƒ j t ƒ ƒ |  j t | ƒ j t ƒ ƒ d t t f d „  ƒ  Y} d	 | f d „  ƒ  Y} t | t ƒ t | t ƒ | ƒ  } t | t ƒ |  j g  t | ƒ D] } | j ƒ  ^ qd d d g ƒ |  j g  t | ƒ j ƒ  D] } | j ƒ  ^ qXd d d d d g ƒ |  j	 t t | ƒ k ƒ |  j	 t
 t | ƒ k ƒ |  j t | ƒ j t
 ƒ ƒ |  j	 t | ƒ j t ƒ ƒ |  j t | ƒ j t ƒ ƒ |  j t | ƒ j t ƒ ƒ d  S(   NR   R   R
   R   R   R   t   COnlyc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   I   s   t   Dc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   M   s   R   c           B   s   e  Z e Z RS(    (   R   R   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   `   s    c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   a   s   (   R   R   R   t   assertEqualR   t   getNamet	   flattenedt   assert_R
   t   failIfR   t   extendsR   R   R   R   R   R   (   t   selft   ct   iR   R   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_ObjectSpecification:   sX    	(.	(.	(.c         C   sß   d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d | | f d „  ƒ  Y} t | t t ƒ |  j g  t | ƒ D] } | j ƒ  ^ qh d d d	 d
 g ƒ t | t ƒ |  j g  t | ƒ D] } | j ƒ  ^ q° d d d d	 d
 g ƒ d  S(   NR   c           B   s   e  Z e e ƒ RS(    (   R   R   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   t   s   R   c           B   s   e  Z e e ƒ RS(    (   R   R   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   w   s   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   z   s   R
   R   R   R   R   (   R   R   R
   R   R   R	   R   R   (   R"   R   R   R   R$   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_classImplementss   s    ((c         C   s‹   d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d | | f d „  ƒ  Y} t | t t ƒ |  j g  t | ƒ D] } | j ^ qh d d g ƒ d  S(	   NR   c           B   s   e  Z e e ƒ RS(    (   R   R   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   „   s   R   c           B   s   e  Z e e ƒ RS(    (   R   R   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   ‡   s   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   Š   s   R
   R   (   R   R   R
   R   R   R	   R   (   R"   R   R   R   R$   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_classImplementsOnlyƒ   s    %c   	      C   s  d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} d	 t f d
 „  ƒ  Y} t | | | ƒ d t f d „  ƒ  Y} t | | ƒ d | | f d „  ƒ  Y} t | | ƒ | ƒ  } t | t t ƒ |  j t t | ƒ k ƒ |  j t t | ƒ k ƒ |  j | t | ƒ k ƒ |  j | t | ƒ k ƒ |  j | t | ƒ k ƒ |  j | t | ƒ k ƒ t | t | ƒ t ƒ |  j t t | ƒ k ƒ |  j	 t t | ƒ k ƒ |  j	 t t | ƒ k ƒ t | t | ƒ t ƒ |  j t t | ƒ k ƒ d  S(   Nt   IA1c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR(   ’   s    t   IA2c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR)   “   s    t   IBc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR*   ”   s    t   ICc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR+   •   s    R   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   –   s   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   š   s   R   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   ž   s   (
   R   R   R   R   R
   R   R   R   R   R    (	   R"   R(   R)   R*   R+   R   R   R   t   ob(    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_directlyProvides‘   s0    	c         C   s   |  j  t t t t ƒ d  S(   N(   t   assertRaisest	   TypeErrorR   R   R   (   R"   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt)   test_directlyProvides_fails_for_odd_class³   s    c         C   sB   y d t  f d „  ƒ  Y} Wn t k
 r- n X|  j t d ƒ d  S(   NR   c           B   s   e  Z e e ƒ RS(    (   R   R   R   R
   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   ¹   s   s7   Shouldn't be able to use directlyProvides on odd class.(   R   R/   R   t   False(   R"   R   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt+   TODO_test_classProvides_fails_for_odd_class·   s    	c         C   s•   d t  f d „  ƒ  Y} d t f d „  ƒ  Y} t | | ƒ d | f d „  ƒ  Y} t | t ƒ |  j g  t | ƒ D] } | j ƒ  ^ qo d d g ƒ d  S(   NR   c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   Â   s    t   C1c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR3   Ä   s   t   C2c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR4   È   s   R   (   R
   R   R   R   R   R	   R   (   R"   R   R3   R4   R$   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_implementedByÁ   s    ((	   R   R   R%   R&   R'   R-   R0   R2   R5   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   8   s   	9			"		
c          C   s<   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   t   doctestt   DocTestSuiteR    (   t   suite(    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt
   test_suiteÒ   s    t   __main__(   t   __doc__R:   R6   t   zope.interface.testsR    t   zope.interfaceR   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   t   objectR   R   R   R   t   TestCaseR   R=   R   t   main(    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   <module>   s,   	š	