
oUNc           @   s  d  Z  d d l m Z d d l m Z d e j f d     YZ d e j f d     YZ d e j f d	     YZ	 d
 e j f d     YZ
 d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d  e j f d!     YZ d" e j f d#     YZ d$ S(%   sK   
Tests for L{twisted.python.usage}, a command line option parsing library.
i(   t   unittest(   t   usaget   WellBehavedc           B   sq   e  Z d  d d d g d d d g d d d g d	 d d
 d g g Z d d d g d d g g Z d   Z d   Z RS(   t   longt   wt   defaults   and a docstringt   anothert   ns   no docstringt   longonlyt   noshortt	   shortlesst   excepts   this one got docstringt   aflagt   fsO   

                 flagallicious docstringness for this here

                 t   floutt   oc         C   s   d |  j  d <d  S(   Ns   PONY!t   myflag(   t   opts(   t   self(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt
   opt_myflag   s    c         C   s   d | f |  j  d <d  S(   Ns   %s WITH A PONY!t   myparam(   R   (   R   t   value(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   opt_myparam    s    N(   t   __name__t
   __module__t   Nonet   optParameterst   optFlagsR   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR      s   		t   ParseCorrectnessTestc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   sJ   
    Test Options.parseArgs for correct values under good conditions.
    c         C   s2   d j    |  _ t   |  _ |  j j |  j  d S(   sL   
        Instantiate and parseOptions a well-behaved Options class.
        sA   --long Alpha -n Beta --shortless Gamma -f --myflag --myparam TofuN(   t   splitt   niceArgVR   t   nicet   parseOptions(   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   setUp)   s    c         C   sl   |  j  |  j j d d  |  j  |  j j d d  |  j  |  j j d d  |  j  |  j j d d  d	 S(
   s?   
        Checking that parameters have correct values.
        R   t   AlphaR   t   BetaR   R	   R
   t   GammaN(   t   assertEqualR   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_checkParameters6   s    c         C   s8   |  j  |  j j d d  |  j  |  j j d d  d S(   s:   
        Checking that flags have correct values.
        R   i   R   i    N(   R%   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_checkFlags?   s    c         C   s8   |  j  |  j j d d  |  j  |  j j d d  d S(   sP   
        Checking that custom flags and parameters have correct values.
        R   s   PONY!R   s   Tofu WITH A PONY!N(   R%   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_checkCustomsF   s    (   R   R   t   __doc__R!   R&   R'   R(   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR   %   s
   				t   TypedOptionsc           B   se   e  Z d  d d d e g d d d d e g d d d d e g d d d d	 e g g Z d
   Z e Z RS(   t   foointi  s   Foo intt   foofloatgQ@s	   Foo floatt   eggints   Egg int without defaultt   eggfloats   Egg float without defaultc         C   s   | |  _  d S(   sg   
        This option has an underscore in its name to exercise the _ to -
        translation.
        N(   t   underscoreValue(   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   opt_under_scoreW   s    N(   R   R   R   t   intt   floatR   R0   t   opt_u(    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR*   O   s   	t   TypedTestCasec           B   sD   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s?   
    Test Options.parseArgs for options with forced types.
    c         C   s   t    |  _ d  S(   N(   R*   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR!   e   s    c         C   s   g  } |  j  j |  |  j |  j  j d d  |  j t |  j  j d t   |  j |  j  j d d  |  j t |  j  j d t   |  j |  j  j d d  |  j |  j  j d d  d S(   s1   
        Test parsing of default values.
        R+   i  R,   gQ@R-   R.   N(	   R   R    R%   R   t   assert_t
   isinstanceR1   R2   R   (   R   t   argV(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_defaultValuesh   s      c         C   s  d j    } |  j j |  |  j |  j j d d  |  j t |  j j d t   |  j |  j j d d  |  j t |  j j d t   |  j |  j j d d  |  j t |  j j d t   |  j |  j j d d	  |  j t |  j j d t   d
 S(   s=   
        Test basic parsing of int and float values.
        s8   --fooint 912 --foofloat -823.1 --eggint 32 --eggfloat 21R+   i  R,   g̸R-   i    R.   g      5@N(	   R   R   R    R%   R   R5   R6   R1   R2   (   R   R7   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_parsingValuesv   s       c         C   s0   |  j  j d d g  |  j |  j  j d  d S(   sw   
        A dash in an option name is translated to an underscore before being
        dispatched to a handler.
        s   --under-scoret   fooN(   R   R    R%   R/   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_underscoreOption   s    c         C   s0   |  j  j d d g  |  j |  j  j d  d S(   sE   
        An option name with a dash in it can have an alias.
        s   -ut   barN(   R   R    R%   R/   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_underscoreOptionAlias   s    c         C   s,   d j    } |  j t j |  j j |  d S(   sB   
        Check that passing wrong values raises an error.
        s   --fooint eggN(   R   t   assertRaisesR   t
   UsageErrorR    (   R   R7   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_invalidValues   s    (	   R   R   R)   R!   R8   R9   R;   R=   R@   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR4   a   s   						t   WrongTypedOptionsc           B   s    e  Z d  d d d d g g Z RS(   t   barwrongs   Bar with wrong coercet   heN(   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRA      s   t   WeirdCallableOptionsc           B   sD   e  Z d    Z d   Z d d d d e g d d d d e g g Z RS(   c         C   s   t  d   d  S(   Nt   Ouch(   t   RuntimeError(   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   _bar   s    c         C   s   t  d   d  S(   Nt   Yay(   t
   ValueError(   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   _foo   s    RB   s   Bar with strange callablet   foowrongs   Foo with strange callableN(   R   R   RG   RJ   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRD      s   		t   WrongTypedTestCasec           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s:   
    Test Options.parseArgs for wrong coerce options.
    c         C   s/   t    } d j   } |  j t | j |  d S(   s=   
        Check that using a non callable type fails.
        s   --barwrong eggN(   RA   R   R>   t	   TypeErrorR    (   R   t   usR7   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_nonCallable   s    	c         C   s    t    } g  } | j |  d S(   sb   
        Test that the coerce functions are not called if no values are
        provided.
        N(   RD   R    (   R   RN   R7   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_notCalledInDefault   s    	c         C   su   t    } d j   } |  j t j | j |  } |  j t |  d  t    } d j   } |  j t | j |  d S(   sG   
        Test what happens when coerce functions raise errors.
        s   --foowrong blahs&   Parameter type enforcement failed: Yays   --barwrong blahN(	   RD   R   R>   R   R?   R    R%   t   strRF   (   R   RN   R7   t   e(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_weirdCallable   s    		(   R   R   R)   RO   RP   RS   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRL      s   			t
   OutputTestc           B   s   e  Z d    Z RS(   c         C   sA   t    } |  j t j | j d g  } |  j t |  d  d S(   sF   
        Error output case adjustment does not mangle options
        s   -Zs   option -Z not recognizedN(   R   R>   R   R?   R    R%   RQ   (   R   t   optRR   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_uppercasing   s    	(   R   R   RV   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRT      s   t   InquisitionOptionsc           B   s   e  Z d g Z d g Z RS(   t   expectRR   s   torture-devicet   ts   comfy-chairs   set preferred torture device(   RX   RR   (   s   torture-deviceRY   s   comfy-chairs   set preferred torture device(   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRW      s   	  t   HolyQuestOptionsc           B   s   e  Z d d g Z RS(   t	   horsebackt   hs   use a horses	   for-grailt   g(   R[   R\   s   use a horse(   s	   for-grailR]   (   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRZ      s    t   SubCommandOptionsc           B   s5   e  Z d	 g Z d d e d f d d e d f g Z RS(
   s   europian-swallows$   set default swallow type to Europiant   inquisitiont   inquests   Perform an inquisitiont	   holyquestt   quests   Embark upon a holy questN(   s   europian-swallowNs$   set default swallow type to Europian(   R   R   R   R   RW   RZ   t   subCommands(    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR^      s    			t   SubCommandTestc           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s   t    } | j d d g  |  j | d t  |  j | j d  |  j t | j t   |  j | j d t	  |  j | j d d  d  S(   Ns   --europian-swallowR_   s   europian-swallowRX   s   torture-devices   comfy-chair(
   R^   R    R%   t   Truet
   subCommandt
   failUnlessR6   t
   subOptionsRW   t   False(   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_simpleSubcommand  s    	c         C   s   t    } | j d d d g  |  j | d t  |  j | j d  |  j t | j t   |  j | j d t	  |  j | j d d  d  S(   NR_   s   --expects   --torture-device=feathers   europian-swallowRX   s   torture-devicet   feather(
   R^   R    R%   Ri   Rf   Rg   R6   Rh   RW   Re   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt"   test_subcommandWithFlagsAndOptions  s    	c         C   s   t    } | j d d d g  |  j | d t  |  j | j d  |  j t | j t   |  j | j d t	  |  j | j d d  d  S(	   NR`   s   --expects   --torture-device=feathers   europian-swallowR_   RX   s   torture-deviceRk   (
   R^   R    R%   Ri   Rf   Rg   R6   Rh   RW   Re   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt'   test_subcommandAliasWithFlagsAndOptions  s    	c         C   s   t    } | j d d g  |  j | d t  |  j | j d  |  j t | j t   |  j | j d t  |  j | j d t	  d  S(   NRa   s   --for-grails   europian-swallowR[   s	   for-grail(
   R^   R    R%   Ri   Rf   Rg   R6   Rh   RZ   Re   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt)   test_anotherSubcommandWithFlagsAndOptions  s    	c         C   sZ   t    } | j d g  |  j | d t  |  j | j d   |  j t | d   d  S(   Ns   --europian-swallows   europian-swallowRh   (   R^   R    R%   Re   Rf   R   t   failIft   hasattr(   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_noSubcommand&  s
    	c         C   s   t    } d | _ | j d g  |  j | d t  |  j | j d  |  j t | j t	   |  j | j d t
  |  j | j d d  d  S(   NR`   s   --europian-swallows   europian-swallowR_   RX   s   torture-devices   comfy-chair(   R^   t   defaultSubCommandR    R%   Re   Rf   Rg   R6   Rh   RW   Ri   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_defaultSubcommand-  s    		c            s   d t  j f d     Y  d t  j f   f d     Y} |   } | j d g  |  j t | j d   |  j | j j |  d  S(   Nt   SubOptc           B   s   e  Z d    Z RS(   c         _   s&   |  j  |  _ t j j |  | |  d  S(   N(   t   parentt	   sawParentR   t   OptionsR    (   R   t   at   kw(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR    9  s    (   R   R   R    (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRt   8  s   t   Optc              s   e  Z d  d   d f g Z RS(   R:   R   R<   (   R   R   Rc   (    (   Rt   (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRz   <  s   R:   Rv   (   R   Rw   R    Rg   Rp   Rh   R%   Rv   (   R   Rz   R   (    (   Rt   s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt$   test_subCommandParseOptionsHasParent7  s    	c            s   d t  j f d     Y  d t  j f   f d     Y} d t  j f   f d     Y} |   } | j d g  |   } | j d g  |  j t | j d	   |  j t | j d	   |  j | j j |  |  j | j j |  d
 S(   sh   
        The .parent pointer is correct even when the same Options class is
        used twice.
        Rt   c           B   s   e  Z RS(    (   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRt   J  s   t   OptFooc              s   e  Z d  d   d f g Z RS(   R:   R   t   quux(   R   R   Rc   (    (   Rt   (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR|   L  s   t   OptBarc              s   e  Z d  d   d f g Z RS(   R<   t   bR}   (   R   R   Rc   (    (   Rt   (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR~   P  s   R:   R<   Ru   N(   R   Rw   R    Rg   Rp   Rh   t   failUnlessIdenticalRu   (   R   R|   R~   t   oFoot   oBar(    (   Rt   s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_subCommandInTwoPlacesE  s    		(
   R   R   Rj   Rl   Rm   Rn   Rq   Rs   R{   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyRd      s   										
	t   HelpStringTestc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d j    |  _ t   |  _ d S(   s;   
        Instantiate a well-behaved Options class.
        sA   --long Alpha -n Beta --shortless Gamma -f --myflag --myparam TofuN(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR!   _  s    c         C   s8   y |  j  j   Wn  t k
 r3 } |  j |  n Xd S(   s,   
        __str__ shouldn't go boom.
        N(   R   t   __str__t	   Exceptiont   fail(   R   RR   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_noGoBoomj  s    c         C   sz   g  t  |  j  j   D]! } | j d  d k r | ^ q } |  j t |  d k  |  j | d j d  d k  d S(   sK   
        Extra whitespace in flag and parameters docs is stripped.
        R   i    t   flagalliciousN(   RQ   R   t
   splitlinest   findRg   t   len(   R   t   st   lines(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt&   test_whitespaceStripFlagsAndParameterss  s    =(   R   R   R!   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR   ^  s   			t   PortCoerceTestCasec           B   s    e  Z d  Z d   Z d   Z RS(   s3   
    Test the behavior of L{usage.portCoerce}.
    c         C   sO   |  j  d t j d   |  j  d t j d   |  j  d t j d   d S(   s4   
        Test the answers with valid input.
        i    t   0i  t   3210i  t   65535N(   R%   R   t
   portCoerce(   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_validCoerce  s    c         C   s\   |  j  t t j d  |  j  t t j d  |  j  t t j d  |  j  t t j d  d S(   s"   
        Test error path.
        t    s   -21t   212189R:   N(   R>   RI   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_errorCoerce  s    (   R   R   R)   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR   ~  s   	t   ZshCompleterTestCasec           B   sh   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   s   
    Test the behavior of the various L{twisted.usage.Completer} classes
    for producing output usable by zsh tab-completion system.
    c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sX   
        Completer produces zsh shell-code that produces no completion matches.
        s   some-options   :some-option:t   descrs   some actiont   repeats   *:some action:N(   R   t	   Completert
   _shellCodet   _ZSHR%   Re   (   R   t   ct   got(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_completer  s    c         C   s   t  j   } | j d t  j  } |  j | d  t  j d  } | j d t  j  } |  j | d  t  j d d d d t } | j d t  j  } |  j | d  d	 S(
   sn   
        CompleteFiles produces zsh shell-code that completes file names
        according to a glob.
        s   some-options   :some-option (*):_files -g "*"s   *.pys$   :some-option (*.py):_files -g "*.py"R   s   some actionR   s%   *:some action (*.py):_files -g "*.py"N(   R   t   CompleteFilesR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt
   test_files  s    c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sV   
        CompleteDirs produces zsh shell-code that completes directory names.
        s   some-options   :some-option:_directoriesR   s   some actionR   s   *:some action:_directoriesN(   R   t   CompleteDirsR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt	   test_dirs  s    c         C   s   t  j d  } | j d t  j  } |  j | d  t  j d d d g  } | j d t  j  } |  j | d  t  j d d d g d d	 d
 t } | j d t  j  } |  j | d  d S(   sw   
        CompleteList produces zsh shell-code that completes words from a fixed
        list of possibilities.
        t   ABCs   some-options   :some-option:(A B C)t   1t   2t   3s   :some-option:(1 2 3)R   s   some actionR   s   *:some action:(1 2 3)N(   R   t   CompleteListR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt	   test_list  s    	c         C   s   t  j d  } | j d t  j  } |  j | d  t  j d d d g  } | j d t  j  } |  j | d  t  j d d d g d d	 d
 t } | j d t  j  } d } |  j | |  d S(   s   
        CompleteMultiList produces zsh shell-code that completes multiple
        comma-separated words from a fixed list of possibilities.
        R   s   some-options-   :some-option:_values -s , 'some-option' A B CR   R   R   s-   :some-option:_values -s , 'some-option' 1 2 3R   s   some actionR   s.   *:some action:_values -s , 'some action' 1 2 3N(   R   t   CompleteMultiListR   R   R%   Re   (   R   R   R   t   expected(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_multiList  s    	c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sd   
        CompleteUsernames produces zsh shell-code that completes system
        usernames.
        s   some-options   :some-option:_usersR   s   some actionR   s   *:some action:_usersN(   R   t   CompleteUsernamesR   R   R%   Re   (   R   R   t   out(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_usernames  s    c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sc   
        CompleteGroups produces zsh shell-code that completes system group
        names.
        s   some-options   :group:_groupsR   s   some actionR   s   *:some action:_groupsN(   R   t   CompleteGroupsR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_groups  s    c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sU   
        CompleteHostnames produces zsh shell-code that completes hostnames.
        s   some-options   :some-option:_hostsR   s   some actionR   s   *:some action:_hostsN(   R   t   CompleteHostnamesR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_hostnames	  s    c         C   s~   t  j   } | j d t  j  } |  j | j d   t  j d d d t  } | j d t  j  } |  j | j d   d S(   s   
        CompleteUserAtHost produces zsh shell-code that completes hostnames or
        a word of the form <username>@<hostname>.
        s   some-options   :host | user@host:R   s   some actionR   s   *:some action:N(   R   t   CompleteUserAtHostR   R   t
   assertTruet
   startswithRe   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_userAtHost  s    c         C   sr   t  j   } | j d t  j  } |  j | d  t  j d d d t  } | j d t  j  } |  j | d  d S(   sv   
        CompleteNetInterfaces produces zsh shell-code that completes system
        network interface names.
        s   some-options   :some-option:_net_interfacesR   s   some actionR   s   *:some action:_net_interfacesN(   R   t   CompleteNetInterfacesR   R   R%   Re   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_netInterfaces$  s    (   R   R   R)   R   R   R   R   R   R   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR     s   									t   CompleterNotImplementedTestCasec           B   s   e  Z d  Z d   Z RS(   ss   
    Using an unknown shell constant with the various Completer() classes
    should raise NotImplementedError
    c      
   C   s   t  j t  j t  j t  j t  j t  j t  j t  j t  j	 t  j
 g
 } xJ | D]B } y |   } Wn | d  } n X|  j t | j d d  qI Wd S(   sM   
        Using an unknown shellType should raise NotImplementedError
        t   bad_shell_typeN(   R   R   R   R   R   R   R   R   R   R   R   R   R>   t   NotImplementedErrorR   (   R   t   classest   clst   action(    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   test_unknownShell8  s    (   R   R   R)   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyR   3  s   N(   R)   t   twisted.trialR    t   twisted.pythonR   Rw   R   t   TestCaseR   R*   R4   RA   RD   RL   RT   RW   RZ   R^   Rd   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/test/test_usage.pyt   <module>   s$   *@%^ 