;
Ìâ"Ic               @   s:  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d Z d „  Z Gd „  d e j	 ƒ Z
 Gd „  d ƒ Z Gd	 „  d
 e j e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e  j ƒ Z Gd „  d e j e ƒ Z d „  Z e d k o e ƒ  n d S(   i    N(   u   supporti   c             C   s#   |  j  d k o |  j ƒ  |  j  k S(   Ni    (   u   maxsizeu   qsize(   u   q(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   qfull   s    c             B   s    |  Ee  Z d  „  Z d „  Z d S(   c             C   s5   | |  _  | |  _ t j ƒ  |  _ t j j |  ƒ d  S(   N(   u   fnu   argsu	   threadingu   Eventu   startedEventu   Threadu   __init__(   u   selfu   fnu   args(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   __init__   s    		c             C   s.   t  j d ƒ |  j j ƒ  |  j |  j Œ  d  S(   Ngš™™™™™¹?(   u   timeu   sleepu   startedEventu   setu   fnu   args(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   run   s    	N(   u   __name__u
   __module__u   __init__u   run(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   _TriggerThread   s   
	u   _TriggerThreadc             B   s    |  Ee  Z d  „  Z d „  Z d S(   c             C   s’   t  | | ƒ |  _ |  j j ƒ  | | Œ  |  _ |  j j j ƒ  p |  j d | ƒ n |  j j d ƒ |  j j ƒ  o |  j d | ƒ n |  j S(   Nu,   blocking function '%r' appeared not to blocki
   u,   trigger function '%r' appeared to not return(	   u   _TriggerThreadu   tu   startu   resultu   startedEventu   is_setu   failu   joinu   is_alive(   u   selfu
   block_funcu
   block_argsu   trigger_funcu   trigger_args(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   do_blocking_test2   s    		c             C   s½   t  | | ƒ |  _ |  j j ƒ  z= y | | Œ  Wn | k
 o ‚  Yn X|  j d | ƒ Wd  |  j j d ƒ |  j j ƒ  o |  j d | ƒ n |  j j j ƒ  p |  j d ƒ n Xd  S(   Nu   expected exception of kind %ri
   u,   trigger function '%r' appeared to not returnu(   trigger thread ended but event never set(   u   _TriggerThreadu   tu   startu   failu   joinu   is_aliveu   startedEventu   is_set(   u   selfu
   block_funcu
   block_argsu   trigger_funcu   trigger_argsu   expected_exception_class(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   do_exceptional_blocking_testA   s    			N(   u   __name__u
   __module__u   do_blocking_testu   do_exceptional_blocking_test(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   BlockingTestMixin0   s   
	u   BlockingTestMixinc             B   sM   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c             C   s   d |  _  t j ƒ  |  _ d  S(   Ni    (   u   cumu	   threadingu   Locku   cumlock(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   setUpW   s    	c          !   C   sî  | j  ƒ  o t d ƒ ‚ n | j d ƒ | j d ƒ | j d ƒ t d d d d g d d d d g d d d d g ƒ } | j ƒ  | j ƒ  | j ƒ  g } |  j | | | j j d ƒ x; t t	 d	 ƒ D]) } | j | ƒ |  j
 | j  ƒ  d
 ƒ qÉ W|  j
 t | ƒ d ƒ d t	 } d t	 } | j | ƒ |  j
 t | ƒ d ƒ y$ | j | d d ƒ|  j d ƒ Wn t j k
 o Yn Xy$ | j | d d ƒ|  j d ƒ Wn t j k
 o Yn X|  j | j | f | j d ƒ |  j | j | d d f | j d ƒ x t t	 ƒ D] } | j ƒ  qW|  j
 | j  ƒ  d ƒ y! | j d d ƒ |  j d ƒ Wn t j k
 o Yn Xy! | j d d ƒ |  j d ƒ Wn t j k
 o Yn X|  j | j d | j d ƒ |  j | j d  | j d! ƒ d  S("   Nu&   Call this function with an empty queueio   iM  iÞ   u   Queueu	   LifoQueueu   PriorityQueueu&   Didn't seem to queue the correct data!i   u   Queue should not be emptyu   Queue should not be fulli   i   u   Queue should be fullu   blocki    u(   Didn't appear to block with a full queueu   timeoutg{®Gáz„?u+   Didn't appear to time-out with a full queuei
   u   Queue should be emptyu*   Didn't appear to block with an empty queueu-   Didn't appear to time-out with an empty queueu   emptyi   (    T(    (    (   u   empty(   Ti
   (   u   empty(   u   qsizeu   RuntimeErroru   putu   dictu   getu   assertEqualsu	   __class__u   __name__u   rangeu
   QUEUE_SIZEu   assert_u   qfullu   failu   queueu   Fullu   do_blocking_testu   Trueu   Empty(   u   selfu   qu   target_orderu   actual_orderu   iu   lastu   full(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   simple_queue_test[   s`    ! 

% c          	   C   sn   xg | j  ƒ  } | d k  o | j ƒ  d  S|  j j } j ƒ  z |  j | 7_ Wd  | ~ QX| j ƒ  q d  S(   Ni    (   u   getu	   task_doneu   cumlocku   __exit__u	   __enter__u   cum(   u   selfu   qu   xu   _[1](    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   worker   s    
c          	   C   s¸   d |  _  x0 d D]( } t j d |  j d | f ƒ j ƒ  q Wx! t d ƒ D] } | j | ƒ qI W| j ƒ  |  j |  j  t	 t d ƒ ƒ d ƒ x d	 D] } | j d ƒ q“ W| j ƒ  d  S(
   Ni    i   u   targetu   argsid   u0   q.join() did not block until all tasks were doneiÿÿÿÿ(   i    i   (   i    i   (
   u   cumu	   threadingu   Threadu   workeru   startu   rangeu   putu   joinu   assertEqualsu   sum(   u   selfu   qu   i(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   queue_join_testš   s    	 & 
 c             C   sB   |  j  ƒ  } y | j ƒ  Wn t k
 o Yn X|  j d ƒ d  S(   Nu(   Did not detect task count going negative(   u	   type2testu	   task_doneu
   ValueErroru   fail(   u   selfu   q(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   test_queue_task_done§   s    c             C   s\   |  j  ƒ  } |  j | ƒ |  j | ƒ y | j ƒ  Wn t k
 o Yn X|  j d ƒ d  S(   Nu(   Did not detect task count going negative(   u	   type2testu   queue_join_testu	   task_doneu
   ValueErroru   fail(   u   selfu   q(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   test_queue_join±   s    c             C   s-   |  j  t ƒ } |  j | ƒ |  j | ƒ d  S(   N(   u	   type2testu
   QUEUE_SIZEu   simple_queue_test(   u   selfu   q(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   test_simple_queue¾   s    N(	   u   __name__u
   __module__u   setUpu   simple_queue_testu   workeru   queue_join_testu   test_queue_task_doneu   test_queue_joinu   test_simple_queue(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   BaseQueueTestV   s   
		5	
		
	u   BaseQueueTestc             B   s   |  Ee  Z e j Z d  S(   N(   u   __name__u
   __module__u   queueu   Queueu	   type2test(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu	   QueueTestÆ   s   
u	   QueueTestc             B   s   |  Ee  Z e j Z d  S(   N(   u   __name__u
   __module__u   queueu	   LifoQueueu	   type2test(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   LifoQueueTestÉ   s   
u   LifoQueueTestc             B   s   |  Ee  Z e j Z d  S(   N(   u   __name__u
   __module__u   queueu   PriorityQueueu	   type2test(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   PriorityQueueTestÌ   s   
u   PriorityQueueTestc             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   FailingQueueExceptionÒ   s   
u   FailingQueueExceptionc             B   s)   |  Ee  Z d  „  Z d „  Z d „  Z d S(   c             G   s)   d |  _ d |  _ t j j |  | Œ d  S(   NF(   u   Falseu   fail_next_putu   fail_next_getu   queueu   Queueu   __init__(   u   selfu   args(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   __init__Ö   s    		c             C   s6   |  j  o d |  _  t d ƒ ‚ n t j j |  | ƒ S(   Nu   You LoseF(   u   fail_next_putu   Falseu   FailingQueueExceptionu   queueu   Queueu   _put(   u   selfu   item(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   _putÚ   s    
	c             C   s3   |  j  o d |  _  t d ƒ ‚ n t j j |  ƒ S(   Nu   You LoseF(   u   fail_next_getu   Falseu   FailingQueueExceptionu   queueu   Queueu   _get(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   _getß   s    
	N(   u   __name__u
   __module__u   __init__u   _putu   _get(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   FailingQueueÕ   s   
		u   FailingQueuec             B   s    |  Ee  Z d  „  Z d „  Z d S(   c          4   C   s¶  | j  ƒ  o t d ƒ ‚ n x% t t d ƒ D] } | j | ƒ q. Wd | _ y$ | j d d d ƒ|  j d ƒ Wn t k
 o Yn Xd | _ y$ | j d d d ƒ|  j d ƒ Wn t k
 o Yn X| j d	 ƒ |  j	 t
 | ƒ d
 ƒ d | _ y- |  j | j d | j d ƒ |  j d ƒ Wn t k
 o Yn X| j d	 ƒ d | _ y0 |  j | j d | j d t ƒ |  j d ƒ Wn t k
 o Yn X| j d	 ƒ |  j	 t
 | ƒ d
 ƒ | j ƒ  |  j	 t
 | ƒ d ƒ | j d	 ƒ |  j	 t
 | ƒ d
 ƒ |  j | j d | j d ƒ x t t ƒ D] } | j ƒ  q*W|  j	 | j  ƒ  d ƒ | j d ƒ d | _ y | j ƒ  |  j d ƒ Wn t k
 o Yn X|  j	 | j  ƒ  d ƒ d | _ y! | j d d ƒ |  j d ƒ Wn t k
 o Yn X|  j	 | j  ƒ  d ƒ | j ƒ  |  j	 | j  ƒ  d ƒ d | _ y0 |  j | j d | j d t ƒ |  j d ƒ Wn t k
 o Yn X|  j	 | j  ƒ  d ƒ | j ƒ  |  j	 | j  ƒ  d ƒ d  S(   Nu&   Call this function with an empty queuei   u   oopsu   blocki    u)   The queue didn't fail when it should haveu   timeoutgš™™™™™¹?u   lastu   Queue should be fullu   fulli
   u   Queue should not be fullu   Queue should be emptyu   firstu   Queue should not be emptyu   emptyT(   u   full(    (   u   fullTi
   (    (   u   full(    (    (   u   empty(   u   qsizeu   RuntimeErroru   rangeu
   QUEUE_SIZEu   putu   Trueu   fail_next_putu   failu   FailingQueueExceptionu   assert_u   qfullu   do_blocking_testu   getu   do_exceptional_blocking_testu   fail_next_get(   u   selfu   qu   i(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   failing_queue_testç   sŽ     				
 	
	
	
c             C   s*   t  t ƒ } |  j | ƒ |  j | ƒ d  S(   N(   u   FailingQueueu
   QUEUE_SIZEu   failing_queue_test(   u   selfu   q(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   test_failing_queue8  s    N(   u   __name__u
   __module__u   failing_queue_testu   test_failing_queue(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   FailingQueueTestå   s   
	Qu   FailingQueueTestc               C   s   t  j t t t t ƒ d  S(   N(   u   supportu   run_unittestu	   QueueTestu   LifoQueueTestu   PriorityQueueTestu   FailingQueueTest(    (    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu	   test_main@  s    u   __main__(   u   queueu   sysu	   threadingu   timeu   unittestu   testu   supportu
   QUEUE_SIZEu   qfullu   Threadu   _TriggerThreadu   BlockingTestMixinu   TestCaseu   BaseQueueTestu	   QueueTestu   LifoQueueTestu   PriorityQueueTestu	   Exceptionu   FailingQueueExceptionu   Queueu   FailingQueueu   FailingQueueTestu	   test_mainu   __name__(    (    (    u,   /mit/python/lib/python3.0/test/test_queue.pyu   <module>   s&   	 &p[	