ó
2(Vc           @   sÑ  d  Z  d d l Z 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 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 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 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.
iÿÿÿÿN(   t   odd(   t	   Interface(   t   implementer(   t   directlyProvides(   t
   providedBy(   t   directlyProvidedBy(   t   classImplements(   t   classImplementsOnly(   t   implementedBy(   t   _skip_under_py3kt   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   2   s   t   Cc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   6   s   t   Testc           B   sD   e  Z d  „  Z d „  Z d „  Z d „  Z e 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   L   s   t   Dc           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   P   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   c   s    c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   d   s   (   R   R   R   t   assertEqualR   t   getNamet	   flattenedt
   assertTrueR
   t   assertFalseR   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÷   t  t ƒ d t f d „  ƒ  Yƒ } t  t ƒ d t f d „  ƒ  Yƒ } d | | f d „  ƒ  Y} t | t t ƒ |  j g  t | ƒ D] } | j	 ƒ  ^ q€ 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 RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   x   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   R   R   R$   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_classImplementsv   s    ((c         C   s£   t  t ƒ d t f d „  ƒ  Yƒ } t  t ƒ d t f d „  ƒ  Yƒ } d | | f d „  ƒ  Y} t | t t ƒ |  j g  t | ƒ D] } | j	 ^ q€ 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   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$   (    (    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   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.pyR1   Í   s   t   C2c           B   s   e  Z RS(    (   R   R   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR2   Ñ   s   R   (   R
   R   R   R   R   R   R   (   R"   R   R1   R2   R$   (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   test_implementedByÊ   s    ((	   R   R   R%   R&   R'   R-   R	   R0   R3   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyR   ;   s   	9			"c          C   sH   d d  l  }  t j ƒ  } | j t j t ƒ ƒ | j |  j t ƒ ƒ | S(   Niÿÿÿÿ(   t   doctestt   unittestt	   TestSuitet   addTestt	   makeSuiteR   t   DocTestSuiteR    (   R4   t   suite(    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt
   test_suiteØ   s
    (   t   __doc__R5   t   zope.interface.testsR    t   zope.interfaceR   R   R   R   R   R   R   R   t   zope.interface._compatR	   R
   R   R   R   R   R   t   objectR   R   R   R   t   TestCaseR   R;   (    (    (    sN   /usr/lib/python2.7/dist-packages/zope/interface/tests/test_odd_declarations.pyt   <module>   s2   	