{G_Tc@sddlmZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Z ddl Ze jdddgZe jdddgZed Zd ejfd YZd efd YZdeefdYZdeefdYZdejfdYZdeefdYZdeefdYZdejfdYZdeefdYZdeefdYZdefdYZd ejfd!YZ d"ee fd#YZ!d$ee fd%YZ"d&efd'YZ#d(e#fd)YZ$d*e#fd+YZ%d,efd-YZ&d.e&fd/YZ'd0e&fd1YZ(d2Z)e*d3kre)ndS(4i(tcontextmanagerN(t test_support(tassert_python_oktwarningstblockedt _warningstfreshccsx9ttfD]+}y|jjWq tk r7q Xq WytjWntk r]nXtj}|j}z)||_|jd|t_dVWd|t_||_XdS(s8Use a specific warnings implementation in warning_tests.tonceN( tsyst warning_testst__warningregistry__tcleartAttributeErrort NameErrorRtfilterst simplefilter(tmoduletto_cleartoriginal_warningstoriginal_filters((s./usr/local/lib/python2.7/test/test_warnings.pytwarnings_states$         tBaseTestcBs eZdZdZdZRS(s'Basic bookkeeping required for testing.cCssdtkrtd=nttdr4t`nttdrLt`n|jtjdRARF(((s./usr/local/lib/python2.7/test/test_warnings.pyR Bs      t CFilterTestscBseZeZRS((RRt c_warningsR(((s./usr/local/lib/python2.7/test/test_warnings.pyRGst PyFilterTestscBseZeZRS((RRt py_warningsR(((s./usr/local/lib/python2.7/test/test_warnings.pyRIst WarnTestscBszeZdZdZdZdZdZeje e dddZ dZ d Z d Zd ZRS( s2Test warnings.warn() and warnings.warn_explicit().c Cstjdtd|j}|jjdxetdD]W}d|}|jj||jt|dj ||j |dj t kq;WWdQXdS(NR+RRismulti %di( RR#R-RRtrangeR(R.RCR3R2R"R&(RR)tiRE((s./usr/local/lib/python2.7/test/test_warnings.pyt test_messages c Cst|jtjdtd|jg}tjd|jtj j |dj dtj d|jtj j |dj dWdQXWdQXdS(NR+Rtspam1iswarning_tests.pytspam2( RRRR#R-R tinnerR.tostpathtbasenametfilenametouter(RR)((s./usr/local/lib/python2.7/test/test_warnings.pyt test_filenames  c Cst|jmtjdtd|jK}tjddd|jtj j |dj dtj ddd|jtj j |dj dtjd dd |jtj j |dj d tj d dd |jtj j |dj dtj d dd|jtj j |dj d tjddd|jtj j |dj dWdQXWdQXdS(NR+Rtspam3t stackleveliiswarning_tests.pytspam4tspam5istest_warnings.pytspam6sspam6.5itspam7i'R( RRRR#R-R RQR.RRRSRTRURV(RR)((s./usr/local/lib/python2.7/test/test_warnings.pyttest_stacklevels*c Cstj}zqt`t|jVtjdtd|j4}tjddd|j|dj tj WdQXWdQXWd|t_XdS(NR+Rtspam8RYii( R t__file__RRRR#R-RQR.RUR(RRUR)((s./usr/local/lib/python2.7/test/test_warnings.pyttest_missing_filename_not_mains *targvstest needs sys.argvc Cstj}tj}z~t`dt_t|jZtjdtd|j8}tjddd|j |dj t j dWdQXWdQXWd|t_|t_XdS( Nt__main__R+Rtspam9RYiii( R R`RRRRR#R-RQR.RURRb(RRUt module_nameR)((s./usr/local/lib/python2.7/test/test_warnings.pyt$test_missing_filename_main_with_argvs   . c Cstj}tj}tj}z}t`dt_t`t|jStjdt d|j1}tj ddd|j |dj dWdQXWdQXWd|t_|t_|t_XdS(NRcR+Rtspam10RYii( R R`RRRbRRRR#R-RQR.RU(RRUReRbR)((s./usr/local/lib/python2.7/test/test_warnings.pyt'test_missing_filename_main_without_argvs    '  c Cstj}tj}tj}zt`dt_dgt_t|jStjdt d|j1}tj ddd|j |dj dWdQXWdQXWd|t_|t_|t_XdS( NRcRBR+Rtspam11RYii( R R`RRRbRRRR#R-RQR.RU(Rt file_nameReRbR)((s./usr/local/lib/python2.7/test/test_warnings.pyt1test_missing_filename_main_with_argv_empty_string,s     '  c Csv|jt|jjdtdd|jt|jjdddd|jttf|jjdtdddddS(Nitregistryi*(R't TypeErrorRR;tNoneR&R R=(R((s./usr/local/lib/python2.7/test/test_warnings.pyttest_warn_explicit_type_errorsAs cCsCdtfdY}|jt|jj|WdQXdS(Nt BadStrWarningcBseZdZdZRS(s-Warning with a bad format string for __str__.cSsdidd6S(NsA bad formatted string %(err)sthere is no %(err)sterr((R((s./usr/local/lib/python2.7/test/test_warnings.pyt__str__Vs(RRRRr(((s./usr/local/lib/python2.7/test/test_warnings.pyRpTs(R=R'R7RR((RRp((s./usr/local/lib/python2.7/test/test_warnings.pyt test_bad_strPs(RRRRNRWR^Ratunittestt skipUnlessRRRfRhRkRoRs(((s./usr/local/lib/python2.7/test/test_warnings.pyRKs  $   t CWarnTestscBseZeZdZRS(cCs6|jt|jk|jt|jjddS(Nt func_code(t assertFalseRRRR((R((s./usr/local/lib/python2.7/test/test_warnings.pyttest_acceleratedcs(RRRHRRy(((s./usr/local/lib/python2.7/test/test_warnings.pyRv^st PyWarnTestscBseZeZdZRS(cCs6|jt|jk|jt|jjddS(NRw(RxRRR2RR((R((s./usr/local/lib/python2.7/test/test_warnings.pyttest_pure_pythonls(RRRJRR{(((s./usr/local/lib/python2.7/test/test_warnings.pyRzgst WCmdLineTestscBs#eZdZdZdZRS(cCstjd|j|j|jj|jjd|j|jj|jjd|j|jj|jjd|jjd|jt|jjdWdQXdS(NRs 1:2:3:4:5:6sbogus::Warningsignore:2::4:-5serror::Warning::0sconvert to error(RR#RR't _OptionErrort _setoptionR&R((R((s./usr/local/lib/python2.7/test/test_warnings.pyttest_improper_inputsscCs/tddd\}}}|jd|dS(Ns-Wxxxs-ctpasss0Invalid -W option ignored: invalid action: 'xxx'(RtassertIn(RtrctoutRq((s./usr/local/lib/python2.7/test/test_warnings.pyttest_improper_optionscCsBtddd\}}}|j|j|jd|dS(Ns-Wis-cs?import sys; sys.modules['warnings'].warn('foo', RuntimeWarning)tRuntimeWarning(RRxtstript assertNotIn(RRRRq((s./usr/local/lib/python2.7/test/test_warnings.pyttest_warnings_bootstraps (RRRRR(((s./usr/local/lib/python2.7/test/test_warnings.pyR|qs tCWCmdLineTestscBseZeZRS((RRRHR(((s./usr/local/lib/python2.7/test/test_warnings.pyRstPyWCmdLineTestscBseZeZRS((RRRJR(((s./usr/local/lib/python2.7/test/test_warnings.pyRst_WarningsTestscBsSeZdZeZdZdZdZdZdZ dZ dZ RS(s'Tests specific to the _warnings module.c Csytjd|j^}|jjddtdd|jt|jjd|j`|jt|jjdWdQXdS(NRR!RBisconvert to error( RR#RR%R=R'R&R(R(RR)((s./usr/local/lib/python2.7/test/test_warnings.pyt test_filters c Csatd}zA|jj}iatjdtd|j}|jj|jjddt|jj |tdd|j |dj ||2|jj |tdd|j t |d i|j_ia|jj d|j |dj j|j|2|j`ia|jj |tdd|j t |d WdQXWd||j_XdS( Nsonceregistry testR+RRR"tfilei*ii(R&Rt onceregistryR RR#R-R$R%R;R.R3R/R(targs(RR3toriginal_registryR)((s./usr/local/lib/python2.7/test/test_warnings.pyttest_onceregistrys.      c Cstd}|jj}zitjdtd|jH}|jji}|jj|tddd||j|dj ||jt |d|jt |d|2|j`i}i}|jj|tdd d||j|dj ||jt |d|jt |d|2d |j_i}i}|jj|tdd d||jt |d WdQXWd||j_XdS( Nsdefaultaction testR+Rsi*Rliii+R,i,i( R&Rt defaultactionRR#R-R$R;R.R3R/(RR3toriginalR)RlR ((s./usr/local/lib/python2.7/test/test_warnings.pyttest_default_actions:      c Csd}tjd|jX|jjddt|j`tjd#}|jj||j }WdQXWdQX|j ||dS(Nsdel showwarning testRR1R"tstderr( RR#RR%R&t showwarningRtcaptured_outputR(tgetvalueR(RREtstreamtresult((s./usr/local/lib/python2.7/test/test_warnings.pyttest_showwarning_missings c Cs{tjd|j`|jjddt|jj}d|j_z|jt|jjdWd||j_XWdQXdS(NRR1R"isWarning!( RR#RR%R&RR'RmR((Rtold_showwarning((s./usr/local/lib/python2.7/test/test_warnings.pyttest_showwarning_not_callables  c Csfd}tjd|jU|jjddt|j`tjd }tj ||j }WdQXWdQX|j |j ddd||j dd \}}tjjtjd d }|jd d }|\}} } } t| } |j |||j | dtj|j | d|dtj|| jd} |j || dS(Nstest show_warningRR1R"Rs isToo many newlines in %riis.pyt:it s (RR#RR%R&RRRR RQRR.tcounttsplitRRRStsplitextR`trsplittintRt linecachetgetlineR( RRERRt first_linet second_linet expected_filetfirst_line_partsRStlinet warning_classR3t expected_line((s./usr/local/lib/python2.7/test/test_warnings.pyttest_show_warning_outputs&     cCszt}|d}zUtjd|j:}|jjddtd|d<|jjdtWdQXWd||dsH        {  ,g