
    5f6                     ^    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
y)    )mock)base)matchers)versionutilsc                   ,   e Zd ZddZ ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z	 ej
                  d      d        Z
 ej
                  d      d        Z ej
                  d      d	        Z ej
                  d      d
        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Zej
                  j-                  ej0                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Zy)DeprecatedTestCasec                     d|v r&|du rt         j                  }n6t        t         d      }n%|du rt         j                  }nt        t         d      }|j	                  t
        j                  ||       y )Nin_favor_ofF+_deprecated_msg_with_alternative_no_removal._deprecated_msg_with_no_alternative_no_removal)r    _deprecated_msg_with_alternativegetattr_deprecated_msg_no_alternativeassert_called_withr   ANY)selfmock_reporter
no_removalexpected_detailsexpected_msgs        G/usr/lib/python3/dist-packages/oslo_log/tests/unit/test_versionutils.pyassert_deprecatedz$DeprecatedTestCase.assert_deprecated   sq    ,,U"+LL& A C U"+JJ& D F
 	(()5)9	;    z/oslo_log.versionutils.report_deprecated_featurec                     t        j                  t         j                  j                        d        }d} ||      }| j                  |t	        j
                  |             y )Nas_ofc                     | S N )datas    r   do_outdated_stuffz_DeprecatedTestCase.test_deprecating_a_function_returns_correct_value.<locals>.do_outdated_stuff2   s    Kr   zexpected return value)r   
deprecatedICEHOUSE
assertThatr   Equals)r   r   r!   expected_rvretvals        r   1test_deprecating_a_function_returns_correct_valuezDDeprecatedTestCase.test_deprecating_a_function_returns_correct_value/   sV     
	 	 |'>'>'G'G	H	 
I	 .";/ <=r   c                      G d dt               } |       j                  dd      }| j                  |t        j                  d             y )Nc                   f    e Zd Z ej                  ej                  j
                        d        Zy)MDeprecatedTestCase.test_deprecating_a_method_returns_correct_value.<locals>.Cr   c                     |S r   r   )r   argss     r   outdated_methodz]DeprecatedTestCase.test_deprecating_a_method_returns_correct_value.<locals>.C.outdated_method?   s    r   N)__name__
__module____qualname__r   r"   r#   r.   r   r   r   Cr+   >   s.    $\$$<+B+B+K+KL Mr   r2      of anything)r3   r4   )objectr.   r$   r   r%   )r   r   r2   r'   s       r   /test_deprecating_a_method_returns_correct_valuezBDeprecatedTestCase.test_deprecating_a_method_returns_correct_value;   s<    	 	
 $$Q60B CDr   c                     t        j                  t         j                  j                  d      d        } |        | j                  |dddd       y )Ndifferent_stuff()r   r
   c                       y r   r   r   r   r   r!   zYDeprecatedTestCase.test_deprecated_with_unknown_future_release.<locals>.do_outdated_stuffJ        r   do_outdated_stuff()BexarDwhatr
   r   	remove_in)r   r"   BEXARr   r   r   r!   s      r   +test_deprecated_with_unknown_future_releasez>DeprecatedTestCase.test_deprecated_with_unknown_future_releaseG   s]     
	 	 |'>'>'D'D-@
B	
B	 	}$9+>%,),	 	 	.r   c                     t        j                  t         j                  j                  d      d        } |        | j                  |dddd       y )Nr8   r9   c                       y r   r   r   r   r   r!   zWDeprecatedTestCase.test_deprecated_with_known_future_release.<locals>.do_outdated_stuffZ   r;   r   r<   GrizzlyIcehouser?   r   r"   GRIZZLYr   rC   s      r   )test_deprecated_with_known_future_releasez<DeprecatedTestCase.test_deprecated_with_known_future_releaseW   s]     
	 	 |'>'>'F'F-@
B	
B	 	}$9+>%.)3	 	 	5r   c                     t        j                  t         j                  j                        d        } |        | j                  |ddd       y )Nr   c                       y r   r   r   r   r   r!   zQDeprecatedTestCase.test_deprecated_without_replacement.<locals>.do_outdated_stuffj   s    r   r<   rG   rH   r@   r   rA   rI   rC   s      r   #test_deprecated_without_replacementz6DeprecatedTestCase.test_deprecated_without_replacementg   sT     
	 	 |'>'>'F'F	G	 
H	 	}$9%.)3 	 	5r   c                     t        j                  t         j                  j                  dd      d        } |        | j                  |dddd       y )Nzv2.0 APIzv3 API)r   r@   r
   c                       y r   r   r   r   r   r!   zNDeprecatedTestCase.test_deprecated_with_custom_what.<locals>.do_outdated_stuffx        r   rG   rH   r?   rI   rC   s      r    test_deprecated_with_custom_whatz3DeprecatedTestCase.test_deprecated_with_custom_whatu   s^     
	 	 |'>'>'F'F&0-5
7	
7	 	}$.+3%.)3	 	 	5r   c                     t        j                  t         j                  j                  d      d        } |        | j                  |ddd       y )Nr3   r   rA   c                       y r   r   r   r   r   r!   zWDeprecatedTestCase.test_deprecated_with_removed_next_release.<locals>.do_outdated_stuff   r;   r   r<   rG   HavanarN   rI   rC   s      r   )test_deprecated_with_removed_next_releasez<DeprecatedTestCase.test_deprecated_with_removed_next_release   sX     
	 	 |'>'>'F'F+,
.	
.	 	}$9%.)1 	 	3r   c                     t        j                  t         j                  j                  d      d        } |        | j                  |ddd       y )N   rU   c                       y r   r   r   r   r   r!   zQDeprecatedTestCase.test_deprecated_with_removed_plus_3.<locals>.do_outdated_stuff   r;   r   r<   rG   JunorN   rI   rC   s      r   #test_deprecated_with_removed_plus_3z6DeprecatedTestCase.test_deprecated_with_removed_plus_3   sX     
	 	 |'>'>'F'F+-
/	
/	 	}$9%.)/ 	 	1r   c                     t        j                  t         j                  j                  d      d        } |        | j                  |dddd       y )Nr   rU   c                       y r   r   r   r   r   r!   zODeprecatedTestCase.test_deprecated_with_removed_zero.<locals>.do_outdated_stuff   r;   r   Tr<   rG   r   r@   r   rA   rI   rC   s      r   !test_deprecated_with_removed_zeroz4DeprecatedTestCase.test_deprecated_with_removed_zero   sY    		 	 |'>'>'F'F+,
.	
.	 	}*.$9%.)2	 	 	4r   c                     t        j                  t         j                  j                  d       d        } |        | j                  |dddd       y )NrU   c                       y r   r   r   r   r   r!   zODeprecatedTestCase.test_deprecated_with_removed_none.<locals>.do_outdated_stuff   r;   r   Tr<   rG   r`   rI   rC   s      r   !test_deprecated_with_removed_nonez4DeprecatedTestCase.test_deprecated_with_removed_none   sY    		 	 |'>'>'F'F+/
1	
1	 	}*.$9%.)2	 	 	4r   c                     t        j                  t         j                  j                  dd      d        } |        | j                  |ddddd       y )	Nr8   r   r   r
   rA   c                       y r   r   r   r   r   r!   z_DeprecatedTestCase.test_deprecated_with_removed_zero_and_alternative.<locals>.do_outdated_stuff   rR   r   Tr<   rG   )r   r@   r   r
   rA   rI   rC   s      r   1test_deprecated_with_removed_zero_and_alternativezDDeprecatedTestCase.test_deprecated_with_removed_zero_and_alternative   s_    		 	 |'>'>'F'F-@+,
.	
.	 	}*.$9%.+>)2 	 	4r   c                     t        j                  t         j                  j                  d       G d dt                     } |       }| j	                  ||       | j                  |ddd       y )	Nr3   rU   c                       e Zd Zy)LDeprecatedTestCase.test_deprecated_class_without_init.<locals>.OutdatedClassNr/   r0   r1   r   r   r   OutdatedClassrk           r   rm   OutdatedClass()r\   KilorN   )r   r"   JUNOr5   assertIsInstancer   r   r   rm   objs       r   "test_deprecated_class_without_initz5DeprecatedTestCase.test_deprecated_class_without_init   sn     
	 	 |'>'>'C'C+-
/	F 	
/	oc=1}$5%+)/ 	 	1r   c                 ,   t        j                         d}ddd}t        j                  t        j                  j                  d       G fddt
                      |i |}| j                  |       | j                  d	|j                  j                         | j                  d
|j                  j                         | j                  |j                         | j                  |j                         | j                  |ddd       y )N)r3         
      )firstsecondr3   rU   c                   $     e Zd Z fdZ xZS )IDeprecatedTestCase.test_deprecated_class_with_init.<locals>.OutdatedClassc                 >    |_         |_        t        |           y)It is __init__ method.N)r-   kwargssuper__init__)r   r-   r   rm   	__class__mock_argumentss      r   r   zRDeprecatedTestCase.test_deprecated_class_with_init.<locals>.OutdatedClass.__init__   s     &*#(.%mT35r   )r/   r0   r1   r   __classcell__)r   rm   r   s   @r   rm   r~      s    6 6r   rm   r   r   ro   r\   rp   rN   )r   	MagicMockr   r"   rq   r5   rr   assertEqualr   r/   __doc__r-   r   r   )r   r   r-   r   rt   rm   r   s        @@r   test_deprecated_class_with_initz2DeprecatedTestCase.test_deprecated_class_with_init   s    ),		 	 |'>'>'C'C+-
/	6F 	6
/	6 T,V,c=1S\\%:%:;13<<3G3GH~223!6!67}$5%+)/ 	 	1r   c                     t        j                  t         j                  j                  d       G d dt                     }	  |       # |$ r Y nw xY w| j	                  |ddd       y )	Nr3   rU   c                       e Zd Zy)FDeprecatedTestCase.test_deprecated_exception_old.<locals>.OldExceptionNrl   r   r   r   OldExceptionr      rn   r   r   zOldException()rH   r\   rN   )r   r"   r#   	Exceptionr   )r   mock_logr   s      r   test_deprecated_exception_oldz0DeprecatedTestCase.test_deprecated_exception_old   sv    		 	 |'>'>'G'G+-
/	9 	
/		.  		 	x.>%/6 	 	Cs   A
 
AAc                     t        j                  t         j                  j                  d       G d dt                     } G d d|      }	  |       # |$ r Y nw xY w|j	                          y )Nr3   rU   c                       e Zd Zy)FDeprecatedTestCase.test_deprecated_exception_new.<locals>.OldExceptionNrl   r   r   r   r   r   
  rn   r   r   c                       e Zd Zy)FDeprecatedTestCase.test_deprecated_exception_new.<locals>.NewExceptionNrl   r   r   r   NewExceptionr         r   r   r   r"   r#   r   assert_not_called)r   r   r   r   s       r   test_deprecated_exception_newz0DeprecatedTestCase.test_deprecated_exception_new  sp    		 	 |'>'>'G'G+-
/	9 	
/		< 		.  		 	""$s   A AAc                     t        j                  t         j                  j                  d       G d dt                     } G d dt              }	  |       # |$ r Y nw xY w|j	                          y )Nr3   rU   c                       e Zd Zy)LDeprecatedTestCase.test_deprecated_exception_unrelated.<locals>.OldExceptionNrl   r   r   r   r   r     rn   r   r   c                       e Zd Zy)RDeprecatedTestCase.test_deprecated_exception_unrelated.<locals>.UnrelatedExceptionNrl   r   r   r   UnrelatedExceptionr      r   r   r   r   )r   r   r   r   s       r   #test_deprecated_exception_unrelatedz6DeprecatedTestCase.test_deprecated_exception_unrelated  sq    		 	 |'>'>'G'G+-
/	9 	
/		 		$&&! 		 	""$s   A A! A!register_optsc                 j    t        j                          |j                  t         j                         y r   )r   register_optionsassert_called_once_withdeprecated_opts)r   mock_register_optss     r   test_register_optionsz(DeprecatedTestCase.test_register_options*  s'     	%%'22((	*r   c                     t        j                  t         j                  j                  d       G d dt                     } |       }| j	                  ||       | j                  |ddd       y )	N   rU   c                       e Zd Zy)IDeprecatedTestCase.test_deprecated_mitaka_plus_two.<locals>.OutdatedClassNrl   r   r   r   rm   r   6  rn   r   rm   ro   MitakaOcatarN   )r   r"   MITAKAr5   rr   r   rs   s       r   test_deprecated_mitaka_plus_twoz2DeprecatedTestCase.test_deprecated_mitaka_plus_two3  sn     
	 	 |'>'>'E'E+-
/	F 	
/	oc=1}$5%-)0 	 	2r   c                     t        j                  t         j                  j                  d       G d dt                     } |       }| j	                  ||       | j                  |ddd       y )	Nr   rU   c                       e Zd Zy)IDeprecatedTestCase.test_deprecated_newton_plus_two.<locals>.OutdatedClassNrl   r   r   r   rm   r   E  rn   r   rm   ro   NewtonPikerN   )r   r"   NEWTONr5   rr   r   rs   s       r   test_deprecated_newton_plus_twoz2DeprecatedTestCase.test_deprecated_newton_plus_twoB  sn     
	 	 |'>'>'E'E+-
/	F 	
/	oc=1}$5%-)/ 	 	1r   c                     t        j                  t         j                  j                  d       G d dt                     } |       }| j	                  ||       | j                  |ddd       y )	Nr   rU   c                       e Zd Zy)HDeprecatedTestCase.test_deprecated_ocata_plus_two.<locals>.OutdatedClassNrl   r   r   r   rm   r   T  rn   r   rm   ro   r   QueensrN   )r   r"   OCATAr5   rr   r   rs   s       r   test_deprecated_ocata_plus_twoz1DeprecatedTestCase.test_deprecated_ocata_plus_twoQ  sn     
	 	 |'>'>'D'D+-
/	F 	
/	oc=1}$5%,)1 	 	3r   c                     t        j                  dt         j                  j                  dd       | j	                  |dddd       y )Noutdated_stuffdifferent_stuffr   rf   rp   r   r?   )r   deprecation_warningr"   KILOr   )r   r   s     r   test_deprecated_messagez*DeprecatedTestCase.test_deprecated_message`  sM     	(()9/;/F/F/K/K5F35	7
 	}$4+<%+)1	 	 	3r   N)F)r/   r0   r1   r   r   patchr(   r6   rD   rK   rO   rS   rX   r]   ra   rd   rh   ru   r   r   r   r   r5   r   CONFr   r   r   r   r   r   r   r   r   r      s   ;, TZZAB	> C	> TZZAB	E C	E TZZAB. C. TZZAB5 C5 TZZAB5 C5 TZZAB5 C5  TZZAB3 C3 TZZAB1 C1 TZZAB4 C4 TZZAB4 C4 TZZAB4 C4 TZZAB1 C1 TZZAB1 C12 TZZABC CC TZZAB% C%  TZZAB% C%  
ZZ|((/:* ;* TZZAB2 C2 TZZAB1 C1 TZZAB3 C3 TZZAB3 C3r   r   N)unittestr   oslotestr   	test_base	testtoolsr   oslo_logr   BaseTestCaser   r   r   r   <module>r      s'      &  !T3// T3r   