U .c[@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl mZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddlZddlm Z m!Z!ddlm"Z"dd lm#Z#dd lm$Z$dd lm%Z%dd lm&Z&mZddl$Z'ddl(Z(ddl)Z)ej*ej+hZ,d de-ej.dDZ/e0e/ej.dksdt1dddigdfZ2e3dZ4e3dZ5Gddde j6Z7Gddde#Z8Gddde8Z9Gddde#Z:Gddde j6Z;Gd d!d!e j6ZGd&d'd'e j6Z?Gd(d)d)e&Z@Gd*d+d+e=e j6ZAGd,d-d-eZBGd.d/d/eAZCGd0d1d1eCZDGd2d3d3e$ZEGd4d5d5e=e j6ZFGd6d7d7ZGGd8d9d9eFeGe j6ZHGd:d;d;eCeGe j6ZIdZLe"dd?ZMe"dd@ZNeddAddBZOedddCdZPGdDdEdEe#ZQeQdFdGdHdIZReQdJdKdLdMZSeQdNdOdPdQZTeQdRdSdTdUZUe8ddVdZVe8dWdXdZWGdYdZdZe j6ZXGd[d\d\e j6ZYGd]d^d^e#ZZGd_d`d`eZZ[e[dFdadHdIZ\e[dJdbdLdMZ]e[dNdcdPdQZ^e[dRdddTdUZ_Gdedfdfe#Z`Gdgdhdhe j6Zae"ddZbdidjZcGdkdldle#ZdGdmdndne j6ZeGdodpdpe jfZgGdqdrdreeZhGdsdtdte j6ZidudvZjekdwkre ldS)xzTTest date/time type. See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases N)array) ltlegtgeeqnetruedivfloordivmod)support)is_resource_enabled ALWAYS_EQLARGESTSMALLEST)MINYEARMAXYEAR timedeltatzinfo)timetimezone)datedatetimecCsg|]}tt|fqS)pickle).0protorr8/opt/alt/python38/lib64/python3.8/test/datetimetester.py )sr! g@A@abcrinfnanc@s$eZdZddZddZddZdS) TestModulecCs$t}||jd||jddS)Nr"')datetime_module assertEqualrr)selfrrrr test_constants<szTestModule.test_constantsc Csdd|jjkr|dt}tddt|D}tddddd d d d d dg }|||tgdS)NZ_Purez"Only run for Fast C implementationcss&|]}|ds|ds|VqdS)__N) startswithendswith)rnamerrr Fs z/TestModule.test_name_cleanup..rrrrZ datetime_CAPIrrrrsys) __class____name__skipTestr)setdirr*)r+rnamesZallowedrrr test_name_cleanupAs   zTestModule.test_name_cleanupcCsd|jjkr|dtj}||ddd||ddd||ddd ||d dd||ddd||d dd ||d d d ||dd d||d d d||dd d ||dd d ||dd d||dd d||dd d dS)N_Fastz'Only run for Pure Python implementationr#)r3r4r5r)Z_divide_and_roundr*)r+Zdarrrr test_divide_and_roundMs"  z TestModule.test_divide_and_roundN)r4 __module__ __qualname__r,r9rGrrrr r':s r'c@s6eZdZd ddZddZddZdd Zd d Zd S) FixedOffset*cCs>t|trt|d}t|tr(t|d}||_||_||_dSNminutes) isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr+offsetr0Z dstoffsetrrr __init__ns    zFixedOffset.__init__cCs |jSN)rRlowerr+rrr __repr__vszFixedOffset.__repr__cCs|jSrW)rQr+dtrrr utcoffsetxszFixedOffset.utcoffsetcCs|jSrW)rRr[rrr tznamezszFixedOffset.tznamecCs|jSrW)rSr[rrr dst|szFixedOffset.dstN)rK)r4rHrIrVrZr]r^r_rrrr rJls  rJc@seZdZdddZddZdS)PicklableFixedOffsetNcCst||||dSrW)rJrVrTrrr rVszPicklableFixedOffset.__init__cCs|jSrW)__dict__rYrrr __getstate__sz!PicklableFixedOffset.__getstate__)NNN)r4rHrIrVrbrrrr r`s r`c@seZdZddZdS)_TZInfocCstSrW)random)r+r)rrr r]sz_TZInfo.utcoffsetNr4rHrIr]rrrr rcsrcc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestTZInfoc Cs>t}tddddddd|}|t|W5QRXdS)Nr@ r=r)rcr assertRaises TypeErrorr])r+Ztz1dt1rrr test_refcnt_crash_bug_22044s z&TestTZInfo.test_refcnt_crash_bug_22044cCs@t}tj}|t|j||t|j||t|j|dSrW)rrmaxrkNotImplementedErrorr^r]r_)r+Zuselessr\rrr test_non_abstractnesss z TestTZInfo.test_non_abstractnesscCsrGdddt}|t|t|dd}||tt}|t|j||t|j ||t|j |dS)Nc@seZdZddZdS)z9TestTZInfo.test_subclass_must_override..NotEnoughcSs||_||_dSrW)Z_NotEnough__offsetZ_NotEnough__name)r+rUr0rrr rVszBTestTZInfo.test_subclass_must_override..NotEnough.__init__N)r4rHrIrVrrrr NotEnoughsrrr=ZNotByALongShot) r assertTrue issubclassassertIsInstancernowrkrpr^r]r_)r+rrrr\rrr test_subclass_must_overrides  z&TestTZInfo.test_subclass_must_overridecCsntdd}||ttdfD]F}|||tdd|||d|| |tddq"dS)Nr=ZThreerMrK) rJrurrrvr*r]rr^r_)r+Zfor\rrr test_normals   zTestTZInfo.test_normalcCsTtt}|t|ttD]0\}}}|||}||}|t|tqdSrW)r__new__assertIstypepickle_choicesdumpsloads)r+origpickler unpicklerrgreenderivedrrr test_pickling_bases    zTestTZInfo.test_pickling_basec Cstdd}t|dfft|fft|dfffD]\}}||}|d}||t|t|||| d|||d|t D]`\}}}| ||} | | } || t|t| ||| d||| d|qq*dS)NrMcookieEST) rr`rr^rurrzr{r*r]r|r}r~) r+rUZotypeargsrZonamerrrrrrrr test_pickling_subclasss$        z!TestTZInfo.test_pickling_subclasscs`tddGfdddt}|}tddddd|d }||}||||dS) Nr"hourscs0eZdZdZfddZfddZddZdS) z0TestTZInfo.test_issue23600..UKSummerTimez~Simple time zone which pretends to always be in summer time, since that's what shows the failure. csSrWrr[) DSTOFFSETrr r]sz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsetcsSrWrr[)DSTDIFFrr r_sz4TestTZInfo.test_issue23600..UKSummerTime.dstcSsdS)N UKSummerTimerr[rrr r^sz7TestTZInfo.test_issue23600..UKSummerTime.tznameN)r4rHrI__doc__r]r_r^rrrrr rs  rrgrC r)rrrfromutcr*r])r+rtzutrrr test_issue23600s  zTestTZInfo.test_issue23600N) r4rHrIrnrqrwrxrrrrrrr rfs  rfc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestTimeZonecCs8ttddd|_ttdd d|_tddd|_dS)N#@rACDTr>rr")rrrrrDTrYrrr setUpszTestTimeZone.setUpcCs8|j|jtjtjtjfD]}|t||dqdSrW) rrrutcminror*strr^r+rrrr test_strs  zTestTimeZone.test_strcCs>t}|j|jtjtjtjfD]}t|}||t |qdSrW) r)rrrrrroreprr*eval)r+rrZtzreprrr test_reprs zTestTimeZone.test_reprcCsNtddd}|tjdt|tjd| |tjd|dS)N;rrN)rr*rrr]ZEROrro)r+limitrrr test_class_memberss zTestTimeZone.test_class_membersc Cs\|tjttd|tjttdd|tjttddtddtddfD](}t|}||dtdddqZtddtdfD]"}|t t||t t| q|t tdW5QRX|t tdW5QRX|t tt dW5QRX|t tt dW5QRX|t tt dd W5QRXdS) NrUTCr" microsecondssecondsrMrKABCextra) rzrrr assertIsNotr*assertNotEqualr]rk ValueErrorrlr)r+Z subminuterZinvalidrrr test_constructors&     zTestTimeZone.test_constructorcCs |tjt||jtdSrW)rurrrrrYrrr test_inheritanceszTestTimeZone.test_inheritancec Cs|j}dD]<}|t}||t|||| t| |q |t|jdW5QRX|t|jdW5QRXdS)N)rg?rr>)rHOURr*rr]rkrlr)r+dummyhrUrrr test_utcoffsets  zTestTimeZone.test_utcoffsetc Cs\|tj|j|t|jdW5QRX|t|jdW5QRXdS)Nrr>) assertIsNonerrr_rrkrlrrYrrr test_dst%s   zTestTimeZone.test_dstc Csn|dtjd|dttd|dtdtd|dtdtd|dttddd|d tdtd d|d ttd d|d ttd d d|dttd d  d|dttd d dd|dttd d d d|t|j dW5QRX|t|j dW5QRXdS)Nrz UTC-05:00z UTC+09:30rz UTC-00:01rMZXYZz UTC+01:06:40rz UTC-01:06:40zUTC+01:06:40.000001r"zUTC-01:06:40.000001rr>) r*rrr^rrrrkrlrrYrrr test_tzname+s*  zTestTimeZone.test_tznamec Cs|ttj|jW5QRX|ttjdW5QRX|j|jt fD]J}|jj |d}||}| ||| || ||jj tjdqTdS)Nz not datetimer) rkrrrrrrlrrEasternreplacer*r])r+rZutctimelocalrrr test_fromutcAs   zTestTimeZone.test_fromutcc Cs>|tttt|tttt|tdttdtd|tttttkW5QRX|tttth|ttdk| ttdktt}||t k| |t k||t k| |t k||t k| |t k| |t k||t k| |t k||t kdS)Nrr) rrrrr*rkrlassertInrs assertFalserrrrrrr test_comparisonMs& zTestTimeZone.test_comparisoncCstddd}tjtjtjfD]^}||||j|d||||j|d|| ||j|d qdS)Nr"r) rrrrorr*r^rr]r_r+rrrrr test_aware_datetimebs    z TestTimeZone.test_aware_datetimecCs|j|jtjtjfD]2}tD](\}}}||||}|||qqtj }tD](\}}}||||}| ||qRdSrW) rrrrror|r~r}r*rrz)r+rrrrtz_copyrrr test_picklemszTestTimeZone.test_picklecCsP|j|jtjtjfD]}t|}|||qtj}t|}|||dSrW) rrrrrocopyr*rrzr+rrrrr test_copyws   zTestTimeZone.test_copycCsP|j|jtjtjfD]}t|}|||qtj}t|}| ||dSrW) rrrrrorZdeepcopyr*rrzrrrr test_deepcopys   zTestTimeZone.test_deepcopyc Cstdddtddddtdddddg}|dd|D|D]&}|jd |d t|W5QRXq@td d td d dg}|dd|D|D]<}|jd|d $|tt|W5QRXW5QRXqdS)NrrrrrNr?BrrNrrcSsg|] }| qSrrrdeltarrr r!sz7TestTimeZone.test_offset_boundaries..Zgood)Z test_typerrr")rrcSsg|] }| qSrrrrrr r!sZbad)rextendsubTestrrkr)r+Z time_deltasrZbad_time_deltasrrr test_offset_boundariess     z#TestTimeZone.test_offset_boundariescCs,|tjt|ttddtdS)Nr"r)rrrrrrYrrr test_comparison_with_tzinfosz(TestTimeZone.test_comparison_with_tzinfoN)r4rHrIrrrrrrrrrrrrrrrrrrrrr rs"    rc@seZdZddZddZdS)HarmlessMixedComparisoncCs|ddd}||dk||dk|d|k|d|k||ddg|g|g|ddgg||tk||tk||tk||tk||tk||tk||tk||tk||tk||tkdS)Nr"r)theclassrrsrrrr)r+merrr test_harmless_mixed_comparisons"z6HarmlessMixedComparison.test_harmless_mixed_comparisoncs|ddd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d|tfd ddS) Nr"csdkSNrrrrrr zGHarmlessMixedComparison.test_harmful_mixed_comparison..csdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rr)rrkrlrYrrr test_harmful_mixed_comparisonsz5HarmlessMixedComparison.test_harmful_mixed_comparisonN)r4rHrIrrrrrr rsrc@seZdZeZddZddZddZej ddZ d d Z d d Z d dZ ddZddZddZddZddZddZddZddZej dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Z d5d6Z!d7S)8 TestTimeDeltac Csv|j}t}|||dddddddd||d|dd||dd|dd||ddd|dd||dd|dd||dd|d d ||dd |d d ||dd |d d||dd|d d||dd|d d||dd|dd||dd|dd ||dd |dd ||dd |dd||dd|dd||dd|dddS)Nr)weeksdaysrrNr millisecondsrr"rrrrr@rr<rMrg$I$I?gUUUUUU?g?gMbP?)r*r)r+rtdrrr rs*zTestTimeDelta.test_constructorcCsb|j}t}|d}|dd}|ddd}|||||ddd||||dd||||dd|| |d|| |d|| |dd|| |dd d |t|||t| |||dd |||ddd |||d |d||d d |||d d |||d |dd|d ||dd||d |dd||d |ddd|d ||ddd||d |ddd||d| ||d| |||d| | ||d|dd||dd|d||d|dd|d||dd||d|d||d |dd||d|ddd||d |dd||d|ddd||d|d||d|dd||d|d||d |dd||d|ddd||d |dd||d|ddd|dd}|d|dd||d|dd||dd|d||dd|d||d|dd||d |dd|||dd!d"|d#d||dd!d$|d%d|d|dd||d|dd||d|d&d||d |d&d||d|dd||d|dd||d|d'd||d|d'd|td(d D]$}|||d|t|dqtd(d D]$}|||d|t|dq||dd!d)|d%d||d*d d+|d*d d,|ddd||d*dd|d*dd|ddddS)-Nr@rrrrEiDQrBrQX>Qir#FiX'r?rr"i@i6i@?xrr=rAr>r<rr翶~Ϛ?@g6+1?iS g@gr;g`""K?-?ɚ;r>B)r*r__rsub__absrangeround)r+rrabcusirrr test_computationss   ""  zTestTimeDelta.test_computationscstddD]\|tfdd|tfdd|tfdd|tfddq d|tfd d|tfd d|tfd d|tfd d|tfd ddS)NrKr"?csSrWrrrrrr rRrz.csSrWrrr rr rSrcsSrWrrr rr rTrcsSrWrrr rr rUrrcsSrWrrrzerorr rZrcsSrWrrr rr r[rcsSrWrrr rr r\rcsdS)Nrrrrr r]rcsdS)Nrrrrrr r^r)rrkrlZeroDivisionErrorrYr)rrr r test_disallowed_computationsMsz*TestTimeDelta.test_disallowed_computationscCs,td}|t|jt|t|jtdS)NrK)rrkr__mul__NAN __truediv__)r+rrrr test_disallowed_special`sz%TestTimeDelta.test_disallowed_specialcCsDd\}}}t|||}||j|||j|||j|dS)N)r"r@rr*rrr)r+rrrrrrr test_basic_attributesfs   z#TestTimeDelta.test_basic_attributescCsptdd}||ddD]}t|d}|||qdD](}t|d}|||tddqBdS) Nmrg8~A)g ˟ $@g ˟ $rrg.Ar)rr?irr")rr* total_seconds)r+rrZmsrrr test_total_secondsms   z TestTimeDelta.test_total_secondscCs.tddddddd}tdd }|||dS) NdrB8r<rgArrrrNrrr"r)rr*r+t1t2rrr test_carriesys zTestTimeDelta.test_carriescCstddddddd}t}|t|t||tdd 7}|td d 7}||||t|t||d i}d ||<|t|d |||d dS)NrrBrr<riz rr@r1rr"rA)rr*hashlen)r+rr drrr test_hash_equalitys" z TestTimeDelta.test_hash_equalitycCsBd}t|}tD],\}}}|||}||}|||qdS)N)r"8)rr|r}r~r*r+rrrrrrrrrr test_picklings   zTestTimeDelta.test_picklingcs$tdddtddd}||||k||k||k||k||kdD]}t|}||k||k||k||k||k||k||k||k||k||k||k||kqntD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfdd|tfddq(dS)NrAr=rC)r=r=r=)rArCrC)rAr=r>FTcskSrWrrZbadargrrr rrz,TestTimeDelta.test_compare..cskSrWrrr,rr rrcskSrWrrr,rr rrcskSrWrrr,rr rrcskSrWrrr,rr rrcskSrWrrr,rr rrcskSrWrrr,rr rrcskSrWrrr,rr rr)rr*rsr OTHERSTUFFrkrlr+r rrr,r test_comparesF   zTestTimeDelta.test_comparec Cst}|j}|t|dd|t|dd|t|dd|t|dd|t|d d d d d |t|dddd d|t|ddd ddd|t|ddd|t|ddd|t|ddd d ddddS)Nr"z1 day, 0:00:00rz-1 day, 0:00:00rAz2 days, 0:00:00r?z-2 days, 0:00:00r:rrz12:58:59r=rCz2:03:04irr')rrrNrz-210 days, 23:12:34rz0:00:00.001000rz0:00:00.000003rrrrrNrrz999999999 days, 23:59:59.999999)rr*r)r+rrrrr rs$zTestTimeDelta.test_strcCsd|jj}|t|dd||t|ddd||t|dddd ||t|jd d d ||t|d ||t|jddd||t|jdddd||t|jdddd|dS)N datetime.r"z %s(days=1)r#rAz%s(days=10, seconds=2)r;z,%s(days=-10, seconds=2, microseconds=400000)rrz%s(seconds=60)z%s(0)rrz%s(microseconds=100))rrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100)rr4r*rr+r0rrr rs2 zTestTimeDelta.test_reprcCstddddddtddtddd tdd d d fD]Z}t|}||d |dd}t|}|||t|j|j|j}|||q2dS)Nrrrrr16err"rrrAr=rrrr2 ) rrrsr.rr*rrr)r+rsZtd2rrr test_roundtrips    zTestTimeDelta.test_roundtripcCs~|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)Nr6rrg~.Arr")rurrro resolutionrsr*rYrrr test_resolution_infosz"TestTimeDelta.test_resolution_infocCstj}tj|}||8}|t|j||t|j| tj|}||7}|t|j||t|j| |tddtd}|t|jd|t|jd|t|j d|t|j d|t|j ddS) NcSstj SrW)rrorrrr rrz-TestTimeDelta.test_overflow..r"ʚ;geAg#B ;g|=gr{>) rr<rrk OverflowError__sub____add__rorr)r+tinyrdayrrr test_overflow s   zTestTimeDelta.test_overflowcCs.td}|t|jt|t|jt dSNr")rrkr?rINF)r+rCrrr _test_overflow_special sz$TestTimeDelta._test_overflow_specialcCst}|j}||dd|d||dd|d||dd|dd||dd|dd||dd|d d||d d|d d||d d|d d||dd|dd||dd|dd||dd|dd||dd|dd||dd|ddd}|d}||d|d|d||d|d|d||d|d|d|d d||d|d|d||d|d|d||d|d|d|d d||d dd |d!d||d d|jd |j|jdS)"Ng-C6:?rrg-C6:gMb@?rgMb@ga2U0*C?r"ga2U0*Crg~jtX?rAg~jtXr?gƠ>rgƠ?i|tArg?rg?r)rrgٿgɿrr )rr*r<)r+rrZ us_per_hourZ us_per_dayrrr test_microsecond_rounding&s0  z'TestTimeDelta.test_microsecond_roundingcCs&tdd}||j|j|jfddS)Nrr)rrrr)r+rrrr test_massive_normalizationGs z(TestTimeDelta.test_massive_normalizationcCsR|td|tdd|tddd|tdd|tddS)Nr"rr)rsrrrYrrr test_boolLs zTestTimeDelta.test_boolcsGfdddtdd}|t|||dddd}|t|||d ||}|t|t|}|t|||j|j||j|j||j|j|t |t |||ddS) Ncs$eZdZefddZddZdS)z0TestTimeDelta.test_subclass_timedelta..Tcs|j|j|jSrWr8)rTrr from_tdVsz8TestTimeDelta.test_subclass_timedelta..T.from_tdcSs&|jd|jd|jd}t|S)Nrg @rK)rrrr)r+sumrrr as_hoursZs z9TestTimeDelta.test_subclass_timedelta..T.as_hoursN)r4rHrI staticmethodrQrSrrOrr rPUsrPr"rrrir7i) rrzr{r*rSrQrrrr)r+rr t3t4rrOr test_subclass_timedeltaSs    z%TestTimeDelta.test_subclass_timedeltac CsGdddt}|ddd}tdd}ddd |ddd fd d d |ddd fd dd |dddfg}|D]B\}}}||(|||}||||||W5QRXqjdS)Nc@s eZdZdS)z6TestTimeDelta.test_subclass_date..DateSubclassNr4rHrIrrrr DateSubclassssrYr"r>raddcSs||SrWrr%rrrr rzrz2TestTimeDelta.test_subclass_date..rEraddcSs||SrWrr\rrr r{rsubcSs||SrWrr\rrr r|rrC)rrrr*ru) r+rYd1rtestsr0funcexpectedactrrr test_subclass_daters     z TestTimeDelta.test_subclass_datec CsGdddt}|ddddd}tddd}d d d |ddd d fddd |ddd d fddd |ddddfg}|D]B\}}}||(|||}||||||W5QRXqvdS)Nc@s eZdZdS)z>TestTimeDelta.test_subclass_datetime..DateTimeSubclassNrXrrrr DateTimeSubclasssrerZr"r>r)rrNr[cSs||SrWrr\rrr rrz6TestTimeDelta.test_subclass_datetime..rE r]cSs||SrWrr\rrr rrr^cSs||SrWrr\rrr rrrC)rrrr*ru) r+rer_rr`r0rarbrcrrr test_subclass_datetimes    z$TestTimeDelta.test_subclass_datetimecCstdddd}tdd}|||d|||dtdd d }tdd }|||d |||dtd }|tt|||tt||dS)Nr"rrrgó@irArfrNrrMg@r)rr*rkrr r )r+rsecondminutezerotdrrr test_divisions   zTestTimeDelta.test_divisioncCstddd}tdd}||}||tddtddd}||}||tddtd}|tt|||tt|d dS NrArfrjr"rMrr?rr#)rr*rkrr rl)r+rrlrrmrrr test_remainders   zTestTimeDelta.test_remaindercCstddd}tdd}t||\}}||d||tddtddd}t||\}}||d||tddtd}|tt|||tt|d dSro)rdivmodr*rkrrl)r+rrlqrprmrrr test_divmods     zTestTimeDelta.test_divmodc Csdd}|tt|dd>W5QRX|tt|dd>W5QRXdD]L}|tt||W5QRX|tt||W5QRXq\dS)NcsGfdddt}|S)NcseZdZfddZdS)zFTestTimeDelta.test_issue31293..get_bad_float..BadFloatcsSrWrrY bad_ratiorr as_integer_ratioszWTestTimeDelta.test_issue31293..get_bad_float..BadFloat.as_integer_ratioN)r4rHrIrwrrurr BadFloatsrx)float)rvrxrrur get_bad_floatsz4TestTimeDelta.test_issue31293..get_bad_floatr"r)r)rK)r"rAr=)rkrlrr)r+rzrvrrr test_issue31293s    zTestTimeDelta.test_issue31293c sfGfdddt}GfdddGfdddtdD] |jdzt|d d Wntk rzYnXzt|d d Wntk rYnXzt|d d Wnttfk rYnXztd |d Wnttfk rYnXz|d td Wntk r(YnXztd |d Wntk rTYnXW5QRXq>dS) Ncs<eZdZfddZfddZfddZfddZd S) z-TestTimeDelta.test_issue31752..BadIntcsSrWrr+otherProdrr rsz5TestTimeDelta.test_issue31752..BadInt.__mul__csSrWrr|r~rr __rmul__sz6TestTimeDelta.test_issue31752..BadInt.__rmul__csSrWrr|r~rr __floordiv__sz:TestTimeDelta.test_issue31752..BadInt.__floordiv__csSrWrr|r~rr __rfloordiv__sz;TestTimeDelta.test_issue31752..BadInt.__rfloordiv__N)r4rHrIrrrrrr~rr BadInts   rcs$eZdZfddZfddZdS)z+TestTimeDelta.test_issue31752..ProdcsSrWrr|Sumrr rAsz3TestTimeDelta.test_issue31752..Prod.__add__csSrWrr|rrr __radd__sz4TestTimeDelta.test_issue31752..Prod.__radd__N)r4rHrIrArrrrr rs rcseZdZfddZdS)z*TestTimeDelta.test_issue31752..SumcsSrWrr| divmodresultrr __divmod__sz5TestTimeDelta.test_issue31752..Sum.__divmod__N)r4rHrIrrrrr rsr)Nr)rr"rA)rrrr"rrr)rPrrrlr)r+rr)rrrr test_issue31752s:  zTestTimeDelta.test_issue31752N)"r4rHrIrrrrrr Zrequires_IEEE_754rrrr!r&r*r/rrr;r=rDrGrLrMrNrWrdrhrnrqrtr{rrrrr rs<S   (  !rc@seZdZddZdS) TestDateOnlycCstddd}tdddddd}t|j}||td||}||||||}||||||}||||| }t|j}||td||}||||||}||||||}||||dS) Nr"rAr=rCr>r1r?)rrrr*)r+r\rrdt2rrr test_delta_non_days_ignoreds*    z(TestDateOnly.test_delta_non_days_ignoredN)r4rHrIrrrrr rsrc@seZdZdZdS) SubclassDater"Nr4rHrIZsub_varrrrr r7src@sXeZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&dEdFZ'dGdHZ(dIdJZ)dKdLZ*dMdNZ+dOdPZ,dQdRZ-dSS)TTestDatecCs<|ddd}||jd||jd||jddS)Nr=r")rr*yearmonthrCr[rrr r@szTestDate.test_basic_attributescCsz|ddd|jfD]\}t|}||d|dd}t|}|||||j|j|j }|||qdS)Nr"rAr=r2r9) rtodayrrsr.rr*rrrCr+r\r:rrrr r;Fs   zTestDate.test_roundtripc CsdD]\}}}}||||}||||j|}|||t|dr||jd||jd||jd||jdqt t t ddD]|}||dd}|}|j|}||||dkr|j|d}||ddd}||||||dqdddd dd ddd dd dg }d D]\}} ||dd}t t dd |D]r\} } | d kr| r| d7} t d| dD]@} ||| | }||||||j||d7}qqbq8dS) N))r"r"r"r")r"rrr)rAr"r"n)iriri hourrr"r@rrrf))rT)rFrgrA) rr* toordinal fromordinalhasattrrrlrk microsecondrrrzip) r+ymr%nZfromordrd2ZdimZisleaprZmaxdayrCrrr test_ordinal_conversionsTs>       z!TestDate.test_ordinal_conversionscs|jj|jjj}|||t fddt dd}||d|||jd|jj |jjj}|||t fddt dd}||d|||jddS)NcsdSrErrrZaordrr rrz0TestDate.test_extreme_ordinals..r"rcsdSrErrrrr rr) rrrrrCrrr*rkrrro)r+rrrr test_extreme_ordinalss$    zTestDate.test_extreme_ordinalscCs6|tdd|tdd|t|jtddd|t|jtddd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d dd|t|jddd |t|jd dd|t|jd dd|t|jd dd|t|jddd|t|jddddS)Nr"rrrrgrA` rf4lrj)rrrrkrrYrrr test_bad_constructor_argumentss"z'TestDate.test_bad_constructor_argumentscCs|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)Nrrrr"rArrr*r#r$r+r%eZdicrrr r&s$  zTestDate.test_hash_equalityc s2|ddd|ddd}|ddd}|}||jdttddd||jd ||jd tdtd }|dd d||dd d ||dd d ||dd d| |dd d|||dd d |||ddd |d||dd d|d||dd d ||||||| | ||| | |||||||dD]^|t fdd|t fdd|t fdd|t fddq$|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdddS)Nrr"rrrAArCrr@r=r9r4rcsSrWrrr rr rrz,TestDate.test_computations..csSrWrrr rr rrcsSrWrrr rr rrcsSrWrrr rr rrcsSrWrrrrCrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rr rr*rr$rrrrrkrl)r+rrdiffweekrrrCrr rsPzTestDate.test_computationscCs|jj}|tdtdfD]p}|jj|}||8}|t|j||t|j| |jj|}||7}|t|j||t|j| qdS)Nr"rA) rr<rrrkr?r@rAro)r+rBrr\rrr rDs  zTestDate.test_overflowc Cshddl}d\}}}||||ddddddf }|j|}||j|||j|||j|dS)Nr)ir9rir)rmktimer fromtimestampr*rrrC)r+rrrrCtsr%rrr test_fromtimestamp s  zTestDate.test_fromtimestampcCs dD]}|t|jj|qdSN)gZbtgZbtirkr?rrr+Zinsanerrr test_insane_fromtimestamps z"TestDate.test_insane_fromtimestampcCslddl}tdD]8}|j}|}|j|}||kr>qJ|dq||krh|j||tddddS)Nrr=g?rr)r)rrrrrsleepZassertAlmostEqualr)r+rrrrZ todayagainrrr test_todays    zTestDate.test_todayc CstdD]}||ddd||||ddd||d||ddd||||ddd||dqdS)Nr@rr=rCr"rrA)rr*rweekdayZ isoweekday)r+rrrr test_weekday<s  "zTestDate.test_weekdaycCs$tdD]}|ddd|}||dd|df|dddt|}||dd|df|ddd |}||dd |df|d dd |}||d d|df|d dd t|}||d d|df|ddd|}||dd|dfqdS)Nr@rrrr"rrr>rArhr5rrC)rrr* isocalendarr)r+rr%rrr test_isocalendarEszTestDate.test_isocalendarcCsd}ttt|}g}tdD]f}|d|dd}|d|dd}||dd|dd|ddkr"||q"|||dS) NaK 4 32 60 88 9 37 65 93 15 43 71 99 20 48 76 26 54 82 105 133 161 189 111 139 167 195 116 144 172 122 150 178 128 156 184 201 229 257 285 207 235 263 291 212 240 268 296 218 246 274 224 252 280 303 331 359 387 308 336 364 392 314 342 370 398 320 348 376 325 353 381 irrri@r"r) sortedmaprPsplitrrr*rappend)r+ZISO_LONG_YEARS_TABLEZiso_long_yearsLrr%r_rrr test_iso_long_yearsVs $ zTestDate.test_iso_long_yearscCs"|ddd}||ddS)NrAr=z 0002-03-02)rr* isoformatr+rrrr test_isoformat|szTestDate.test_isoformatcCs"|ddd}||ddS)Nrr=rAzSat Mar 2 00:00:00 2002)rr*ctimerrrr test_ctimeszTestDate.test_ctimec Cs|ddd}||dd||dd||dd|t|j|t|jdd |t|jd ||d d ||d ddD](}z||Wqtk rYqXqz|dWntk rYnX|ddS)Nr=rAm:%m d:%d y:%yzm:03 d:02 y:05rAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoneZtworK%mZ03 '%z' '%Z''' '')z%e%z%#u%y%mz%f)rr*strftimerkrlrUnicodeEncodeError)r+rfrrr test_strftimes& zTestDate.test_strftimecCs||ddd}ztdWntk r:|dYnX||dtd|||dtd|dS)Nrr=rArz'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r_timerrr5r* timetuplerrrr test_strftime_trailing_percentsz'TestDate.test_strftime_trailing_percentc Cs|ddd}||dt||td|dW5QRXGddd|j}|ddd}||ddGd d d |j}|ddd}||dt|d D]F}|||||||||||||d qdS) Nr9r#rmust be str, not int{c@seZdZddZdS)zTestDate.test_format..AcSsdSNArrYrrr __str__sz'TestDate.test_format..A.__str__Nr4rHrIrrrrr rsrc@seZdZddZdS)zTestDate.test_format..BcSsdSNBrr+ format_specrrr rsz(TestDate.test_format..B.strftimeNr4rHrIrrrrr rsrrzm:%m d:%d y:%y H:%H M:%M S:%S%z %Zrr* __format__rassertRaisesRegexrlrr+r\rrrrfmtrrr test_formats  zTestDate.test_formatcCs`t|jtrt}nt}||jj|||jj|||jjt| |jj|jjkdSrW) rtrrrrurror<rrs)r+Zexpected_classrrr r=s zTestDate.test_resolution_infocCsz|jj|jj}|jdd|jd|j}tdd|}|||||jj||jj||jj||jjdS)Nr@Br)rrorrrrrr*)r+bigrZ justasbigrrr test_extreme_timedeltas   zTestDate.test_extreme_timedeltac CsrtdD]b}|ddd|}|}||ddd|ddd|d|df |ddd|}|}||ddd|dddd|dd|df |ddd|}|}||ddd|dddd|dd |df ||jd||jd||jd|||jd||jd||j d||j d|d||j d |||j dqdS) Nr@rr"rArrrjr==) rrrr*tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r+rr%rrrr test_timetuples&&..zTestDate.test_timetuplecCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrEr@rrArr|r}r~r* __reduce__ __reduce_ex__r)rrr r*s   zTestDate.test_picklingcCsHdddg}d}|j|}|D]&}tD]}||dd}|||q$qdS)Ns'cdatetime date (S'\x07\xdf\x0b\x1b' tR.scdatetime date (U tR.scdatetime date U R.)rilatin1encodingr pickle_loadsr*r+r`rrbdatar~rrrr test_compat_unpickles  zTestDate.test_compat_unpicklecs|ddd|ddd}||||k||k||k||k||kdD]}|j|}||k||k||k||k||k||k||k||k||k||k||k||kqrtD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfddq.dS)NrAr=rCr+FTcskSrWrrr,rr r;rz'TestDate.test_compare..cskSrWrrr,rr r<rcskSrWrrr,rr r=rcskSrWrrr,rr r>rcskSrWrrr,rr r?rcskSrWrrr,rr r@rcskSrWrrr,rr rAr)rr*rsrr-rkrlr.rr,r r/sD  zTestDate.test_comparecs|ddd|dkd|dkd|dkd|dkd|tfdd|tfd dGd d d }||kd|kd|kd|kd|tfd d|tfd ddS)NrrCr>r"FTcsdkSrErrourrr rMrz-TestDate.test_mixed_compare..csdkSrErrrrr rNrc@s eZdZdS)z.TestDate.test_mixed_compare..SomeClassNrXrrrr SomeClassRsrcskSrWrrrZtheirrr rZrcskSrWrrrrr r[r)rr*rkrl)r+rrrr test_mixed_compareCszTestDate.test_mixed_comparecCs ||jj||jjdSrW)rsrrrorYrrr rN]szTestDate.test_boolcCsZdD]P}||dd}|dd|kr||dd|||dd|qdS)N)r"r"rcrirr"z%Yz%04d%dz%4Y)rrr*)r+rr%rrr test_strftime_y2kbs zTestDate.test_strftime_y2kc Cs|j}dddg}||}|||d}dD]H\}}|dd}|||<||}|jf||i} ||| |d7}q0|ddd}|jt|jdd dS) Nr"rAr=r)rrArr=rCrCrrrrrr*rrkr r+clsrbaserr0newvalnewargsrbgotrrr test_replaceos      zTestDate.test_replacecCs:Gddd|j}|ddd}|t|jdd|dS)Nc@s eZdZdS)z4TestDate.test_subclass_replace..DateSubclassNrXrrrr rYsrYr"ir!rrzr{r)r+rYr\rrr test_subclass_replaces zTestDate.test_subclass_replacecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestDate.test_subclass_date..CrKcs0|}|d}jj|f||}||_|SNrrpoprryrr$rZkwsZtemprresultrYrr rys  z.TestDate.test_subclass_date..C.__new__cSs||j|jSrW)rrr+startrrr newmethsz.TestDate.test_subclass_date..C.newmethNr4rHrI theAnswerryr4rrYrr Cs r7rrCrrr@rKrB) rr*r3r6rrr4rrr+r7rrmrrrYr rds  zTestDate.test_subclass_datec sGfdddj}d}d}d}||}|||jdt|td}d|ffd |ffd |ffg}|D]l\}} ||fD]Z} jt | |d >t | |} | | } | || || jdW5QRXqqxdS) NcseZdZfddZdS)zCTestDate.test_subclass_alternate_constructors..DateSubclasscsjj|f||}d|_|SNr@rryrr$rkwargsr1rYrr ryszKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__Nr4rHrIryrrYrr rYsrYr8i( z 2003-04-14r@rrr fromisoformatZ base_obj_type constr_name) rrur*rrcombiner timestamprr{getattr) r+rYrZd_ord d_isoformatbase_dr test_casesrA constr_argsbase_objconstrr\rrYr $test_subclass_alternate_constructorss,       z-TestDate.test_subclass_alternate_constructorscCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rr|r}r~r*rsrOr)rrr test_pickling_subclass_dates   z$TestDate.test_pickling_subclass_datec Csd}t|jts|dd}dD],}|t|j|dd||ddq t|jtr|td |tdgt|dW5QRXtdd D],}||ddt|g|ddqdS) Ns 1995-03-25rC)9 rAr=^bad tzinfo state arg$r"rrg) rtrrrkrlrbytesr$r)r+r%Z month_byteZord_byterrr test_backdoor_resistances     $z!TestDate.test_backdoor_resistancec Csfdddddddg}|D]J}|j|}|}|j|d"|j|}|||W5QRXqdS) Nr"r"r")rrArrr"r")rrArrrir)rrCr=ir>rf)dt_strrrrr?r*)r+ base_datesdt_tupler\rXdt_rtrrr test_fromisoformats  zTestDate.test_fromisoformatcCs<Gddd|j}|ddd}||}|||dS)Nc@s eZdZdS)z:TestDate.test_fromisoformat_subclass..DateSubclassNrXrrrr rY srYrgrr)rr?rru)r+rYr\r\rrr test_fromisoformat_subclass s z$TestDate.test_fromisoformat_subclassc CsJddddddddd d d g }|D]&}|t|j|W5QRXqdS) Nrrz 009-03-04Z 123456789z 200a-12-04z 2009-1a-04z 2009-12-0az 2009-01-32z 2009-02-29Z20090228u20090228)rkrrr?r+Zbad_strsbad_strrrr test_fromisoformat_failss z!TestDate.test_fromisoformat_failsc CsHddl}dd|dg}|D]&}|t|j|W5QRXqdS)Nrs 2009-03-01z 2009-03-01ioStringIOrkrlrr?r+rcZ bad_typesZbad_typerrr "test_fromisoformat_fails_typeerror's  z+TestDate.test_fromisoformat_fails_typeerrorcCs~ddddddddd d d d d tddftddfg}|D]F}|j|d0|j|}|}|jj|}|||W5QRXq2dS)N)rCr=)rr"rA)irrf)rr"rA)rrrrU)rrr)rr"r")rrr)rr"r")rrrrT)r(rrr"rr) datecomps)rrrrrfromisocalendarr*)r+ZdatesrhZdobjisocalZ d_roundtriprrr test_fromisocalendar0s,  zTestDate.test_fromisocalendarc Csfddddddddd d d d d g }|D]>}|j|d(|t|jj|W5QRXW5QRXq"dS)N)rr")rlrr")rl6r")rlr"r)rlr"r)rlr")rlrr")rr"r")rr"r")ir"r")r"r")rlror")rlr"rorj)rrkrrri)r+isocalsrjrrr !test_fromisocalendar_value_errorsNs$ z*TestDate.test_fromisocalendar_value_errorsc Csttddg}g}d}tdD]4}|D]*}t|}|||||<|t|q&q|D]>}|j|d(|t|j j |W5QRXW5QRXqXdS)NcSsdSrWr)xrrr rhrz;TestDate.test_fromisocalendar_type_errors..)rlr"r"r=rp) rryrlistrtuplerrkrlrri)r+Z err_txformersrqr%rZtxformerZerr_valrjrrr test_fromisocalendar_type_errorsds   z)TestDate.test_fromisocalendar_type_errorsN).r4rHrIrrrr;rrrr&rrDrrrrrrrrrrrr=rrr*rr/rrNrr)r,rdrKrLrSr]r^rarfrkrrrvrrrr r:sT/2   &'    ' ,   rc@seZdZdZdS)SubclassDatetimer"Nrrrrr rwsrwc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zed)d*d+Zd,d-Zed.d/d0Zd1d2Zd3d4Zd5d6Z e!"e#j$d7kd8d9d:Z%e!"e#j$d7kd8d;d<Z&d=d>Z'd?d@Z(dAdBZ)dCdDZ*dEdFZ+dGdHZ,dIdJZ-dKdLZ.edMdNdOZ/dPdQZ0dRdSZ1dTdUZ2dVdWZ3dXdYZ4dZd[Z5d\d]Z6d^d_Z7d`daZ8dbdcZ9dddeZ:dfdgZ;dhS)i TestDateTimecCsx|ddddd}||jd||jd||jd||jd||jd||jd||jddS)Nrr=r"rr rr*rrrCrrlrkrr[rrr rsz"TestDateTime.test_basic_attributesc Cs||ddddddd}||jd||jd||jd||jd||jd||jd||jddS)Nrr=r"rr@ryr[rrr test_basic_attributes_nonzerosz*TestDateTime.test_basic_attributes_nonzeroc Cs|ddddddd|jfD]l}t|}||d|d d}t|}|||||j|j|j |j |j |j |j }|||q dS) Nr"rAr=rCr>rEr@r2r9)rrvrrsr.rr*rrrCrrlrkrrrrr r;s  zTestDateTime.test_roundtripc Csb|ddddddd}||d||dd||d d ||d d ||d d||jddd||jddd||jddd||jddd||jddd||jddd||jd ddd|jt|jdd|jt|jd d|t|d |jdddddddtjd}||jddd|ddddddd}||jddd |dddddd}||jddd||jddd||jddd!|ddd}||d"||dd"||d d#|t|d#tt d$d%d&}|jddd|d}||d'dS)(Nr"rAr=rCr>rz0001-02-03T04:05:01.000123rP z0001-02-03 04:05:01.000123z0001-02-0304:05:01.000123ru0001-02-0304:05:01.000123rtimespecz 0001-02-03T04rNz0001-02-03T04:05rz0001-02-03T04:05:01rz0001-02-03T04:05:01.000rauto)seprz0001-02-03 04:05fooL@rz0001-02-03T04:05:01.999+00:00z0001-02-03T04:05:01.999z0001-02-03T04:05:01.000000z0002-03-02T00:00:00z0002-03-02 00:00:00rZXXXz0002-03-02T00:00:00+00:00:16) rr*rrkrrrrrJrrrrr rsD zTestDateTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|dddd dd}d}|D]D\}}|j|d}||}|j|d||kstW5QRXqdS)N05:00r>r02:00rA06:27rEr r12:32:30rrjrfr02:04:09.123456rCr9rrrN+00:00rcSs2g|]*\}}dD]\}}||t||fqqS))-r)+r"rrrbrprefixsignrrr r!sz8TestDateTime.test_isoformat_timezone..rgr"%z2016-04-01T12:37:09rtzirrrrrrrAssertionError) r+ tzoffsetstzinfosZdt_baseexp_baseexp_tzrr\exprrr test_isoformat_timezones(     z$TestDateTime.test_isoformat_timezonec Cs|ddddddd}||dt||td |dW5QRXGd d d |j}|ddddddd}||dd Gd d d |j}|ddddddd}||dt|dD]F}|||||||||||||d qdS)Nrr9r#rCr>r"rrrc@seZdZddZdS)z#TestDateTime.test_format..AcSsdSrrrYrrr rsz+TestDateTime.test_format..A.__str__Nrrrrr rsrc@seZdZddZdS)z#TestDateTime.test_format..BcSsdSrrrrrr rsz,TestDateTime.test_format..B.strftimeNrrrrr rsrrrrrrr rszTestDateTime.test_formatc Cshddl}|ddddddd}||d|ddd dddd}|||||dS) Nrrr=rAr>rzSat Mar 2 18:03:05 2002r)rrr*rrr)r+rrrrr test_more_ctimes zTestDateTime.test_more_ctimec Cs|dddddd}|dddddd}|dddddd}||||||k|tddd d d d }tdd }||}|||||||kdS) Nrr=r"r9rr#rrrrrr)rr*rsrr)r+rmrdt3rrrr test_tz_independent_comparing#s  z*TestDateTime.test_tz_independent_comparingc CsBGdddt}|ddddddd|dd}|t|jddS) Nc@seZdZddZdS)zDTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfocSsGdddt}|dS)Nc@seZdZddZdS)zZTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStrcWsdSrWr)r+rrrr r:szbTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStr.replaceN)r4rHrIrrrrr MyStr9srr0)r)r+r\rrrr r^8szKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznameN)r4rHrIr^rrrr MyTzInfo7srrr=rArr0%Z)rJrrkrlr)r+rrrrr %test_strftime_with_bad_tzname_replace5sz2TestDateTime.test_strftime_with_bad_tzname_replacec Cs|tdd|tdd|t|jtddd|t|jtddd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d dd|t|jddd |t|jd dd|t|jd dd|t|jd dd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddd|ddddd|ddddd|t|jddddd|t|jddddd|dddddd|dddddd|t|jdddddd|t|jdddddd|ddddddd|ddddddd|t|jddddddd |t|jddddddd |jt|jddddd|jt|jddddd|t|jddddddddd dS)Nr"rrrrgrArrrrfrrrrjrrrrrrrrfold)rrrrkrrlrYrrr r@s     z+TestDateTime.test_bad_constructor_argumentscCs|dddddd}|dddddd}||||t|t||di}d||<|t|d|||d|||d|d ddd d d}|d ddd d d}||||t|t||di}d||<|t|d|||d|||ddS) Nrrrrrfr"rArrr>rrrrr r&us$  zTestDateTime.test_hash_equalityc s<|ddd|ddd}|}||jdttddd||jd||jd|ddd d d tddd }tdd }tdtd}|||ddd dd |||ddd dd |d||ddddd |||ddd dd || |ddd dd ||| |d||ddddd ||dddd d ||dddd d |||dddd d |||dd dd d |d||dddd d |d||dddd d ||||||||||||| | ||| ||| ||| | ||| ||| |||||||||||||||ddddd dd ||||||||||||dd ddddd|||||||dD]^|t fdd|t fd d|t fd!d|t fd"dq.|t fd#d|t fd$d|t fd%d|t fd&d|t fd'd|t fd(d|t fd)d|t fd*ddS)+Nrr"rrrrCrr=rArrErrr@rr#rrrhr9rrrrrr>rrrcsSrWrrr rr rrz0TestDateTime.test_computations..csSrWrrr rr rrcsSrWrrr rr rrcsSrWrrr rr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrcsSrWrrrrr rrr)r+rrZmillisecrrrrr rs  " """zTestDateTime.test_computationscCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrEr@rrrr"rArr)rrr r*s   zTestDateTime.test_picklingc Csn|ddddddd}ttjdD]D}t||}t|}||jd||jd||j dq$dS) NrrAr@r0rir") rrrHIGHEST_PROTOCOLr}r~r*rrrC)r+rrr:rrrr test_more_picklings  zTestDateTime.test_more_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rwr|r}r~r*rsrOr)rrr test_pickling_subclass_datetimes   z,TestDateTime.test_pickling_subclass_datetimecCsHdddg}d}|j|}|D]&}tD]}||dd}|||q$qdS)Ns@cdatetime datetime (S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00' tR.s#cdatetime datetime (U  ;tR.s$cdatetime datetime U  ;R.)r rir rrr"rr rrrrrr rs   z!TestDateTime.test_compat_unpicklecCs\dddddddg}|j|}|j|}||||||k|||k|||k|||k|||ktt|D]}|dd}||d||<|j|}|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||kqdS) Nrrirrr0rrr")rr*rsrrr$)r+rrr rr'rrr test_more_compares2     zTestDateTime.test_more_comparecCsd||j|j||j|j||j|j||j|j||j |j ||j |j dSrW) r*rrrrrrCrrrrlrrk)r+rbr(rrr verify_field_equality s z"TestDateTime.verify_field_equalitycCs6ddl}|}||}|j|}|||dSNr)r localtimerrrr+rrrbr(rrr r& s   zTestDateTime.test_fromtimestampcCs6ddl}|}||}|j|}|||dSr)rgmtimerutcfromtimestamprrrrr test_utcfromtimestamp. s   z"TestDateTime.test_utcfromtimestampEST+05EDT,M3.2.0,M11.1.0c Cs.|ddd}||d|ddddddd}||d|ddd dd }|jdd }||j||tdd ||j||tdd |dd ddd }||j|||ddd|d ddfD]<}z |}Wntk rYqX||j||qdS)Nrr"g@rAr=rC6@r*rirfrri'r)rr*rCrrrr?)r+rt0rr:rrr test_timestamp_naive8 s,      z!TestDateTime.test_timestamp_naivec Cs|jdddtjd}||d|jdddddddtjd}||d|jdddddddttd d d d}||d dS) Nrr"rr rAr=rCg7@rrrr)rrrr*rCrrrrr test_timestamp_awareT s  z!TestDateTime.test_timestamp_awarezMSK-03c Csz|jj|jjfD]b}|d}||jd||jd|d}z |d}Wntk rbYn~X||jd||jd|d}||||d}||||d}||||d }||jd||jd |d }||||d }||||d }||jd||jd|d}||jd||jd|d}||jd||jdqdS)Nrgư>gưrrg:0yEg1E2gHzrJi#gHz>g1E2>g<"2?gP?r"rHrI)rrrr*rkrOSError)r+Zftsr rZ minus_onerrrr rL_ sF       z&TestDateTime.test_microsecond_roundingc CsZ|jjjtjd}|}z||jj|tjd|Wn4tt fk rl}z| t |W5d}~XYnX|jj jtjddd}|}||jj|tjd|d}||}| ttf|j|W5QRX| ttf|j|W5QRX||}| ttf|j|W5QRX| ttf|j|W5QRXdS)Nrrr)rrkriX)rrrrrrCr*rr?rr5rrorkrr)r+Zmin_dtZmin_tsexcZmax_dtZmax_tsrrrrr test_timestamp_limits s6   z"TestDateTime.test_timestamp_limitscCs dD]}|t|jj|qdSrrrrrr r s z&TestDateTime.test_insane_fromtimestampcCs dD]}|t|jj|qdSr)rkr?rrrrrr test_insane_utcfromtimestamp s z)TestDateTime.test_insane_utcfromtimestampwin32z*Windows doesn't accept negative timestampscCs|jddS)N)rrrYrrr !test_negative_float_fromtimestamp sz.TestDateTime.test_negative_float_fromtimestampc Cs.|jd}|||ddddddddS) Nrirrrrr0i~)rrr*)r+r%rrr $test_negative_float_utcfromtimestamp s z1TestDateTime.test_negative_float_utcfromtimestampcCsfddl}tdd}tdD]2}|j}|j|}t|||krqNq|t|||dS)Nrr"rr=)rrrrutcnowrrZassertLessEqual)r+rZ tolerancerZfrom_nowfrom_timestamprrr test_utcnow s   zTestDateTime.test_utcnowc CsLd}d}t|j||}|j||}||||t||j|t||jdddg}|D]L\}}|j||d0t|j||}|j||}|||W5QRXqd|jj}||ddd t ||d dd t ||d dt d d dd ddt j t j dffD]z\}}|dkrFd} | } nd} |} t| dd\} } d| | | |} || d}||t |d|| |q(d\} }|| |}||dtdt || d|||| ||ddjd|t|ddW5QRX|t|ddW5QRXdS) Nz2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%f)u2004-12-0113:02:47.197u%Y-%m-%d%H:%M:%S.%f)u200412-01 13:02:47.197u%Y%m-%d %H:%M:%S.%f)u2004-12-01 13:0247.197u%Y-%m-%d %H:%M%S.%f)stringformatz+0002%zrAz-0002r?z-00:02:01.000003r"r=)rNrr)rr)rZGMTrrrrz{}{:02d}{:02d} {}rr)z +1234 UTCrrr'rrz-2400z-000) _strptimeZ_strptime_datetimerstrptimer*rzr{rr]MINUTErrrr^rrrrrrrkr)r+rrrbr(inputsrZ tzsecondsr^rrrrNdtstrr\rrrr test_strptime s`          zTestDateTime.test_strptimec Cs6|jj}|t|dd}W5QRX|dddddd}|dddddd}|dddd d d }|ddd d d d }d d d|fd dd|fddd|fddd|fddd|fddd|fddd|fddd|fddd|fd dd!|fg }|D]L\}} } } d"|}|j|| | | d# || | }|j|| |d$W5QRXqdS)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%SrrAr"rCr>rErrz 1/02/03 4:5:6rz 01/2/03 4:5:6z%Hz01/02/03 4:05:06z%Mz01/02/03 04:5:06z%Sz01/02/03 04:05:6z%jz2/03 04am:05:06z%j/%y %I%p:%M:%Sz%Iz02/03 4am:05:06z%wz6/04/03z%w/%U/%yz%Wz6/4/2003z%u/%W/%Yz%Vz%u/%V/%Gztest single digit )reasonrrtarget)msg)rrrkrrr*) r+rZnewdatermrrZdt4rrrrrrrr test_strptime_single_digit s6             z'TestDateTime.test_strptime_single_digitcCs$|dddddd}||d|||j|j|j|j|j|j| | t |jdd dd f |}||j |j||j |j||j|j||j|j||j|j||j|j||j| ||j| t |jdd d||jd dS) NrrrrEr!) rrrrErrrCrrr"r)rr*rrrrCrrlrkrrrrrrrrrrrr)r+rZttrrr test_more_timetuple8 s4  z TestDateTime.test_more_timetuplec Cs|ddddddd}||dd d D]B\\}}}ttd ||d  }|j|d }||dd|q,z|dWntk rYnXdS)NrrrrErr/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))rrz 33.000123))rrZ33rA)rrrrrz-0200u%y%m %H%M)rr*rrrrr)r+rr:rzrrrr test_more_strftimeN s  zTestDateTime.test_more_strftimec CsL|ddddddd}||tddd||tdddddS)Nrr=rCr-)rr*rrr[rrr test_extract^ szTestDateTime.test_extractc Cstddd}tdddd}|ddddddd}|jj}|||}||||||d}|||||||||||||||t||t|||t||||t|||d|t|||dd |t|d d |t||d |t|d ||||tj}| |j tj|||tjd }| |j tjt}|||}||||||dS) Nrr=rCrrr)rrr"rArrr) rrrrBr*rkrlrrrzr)r+r%rrbrBr\rrr test_combinec s6       zTestDateTime.test_combinec Cs|j}dddddddg}||}|||d}d D]H\}}|dd}|||<||}|jf||i} ||| |d7}q8|d dd }|jt|jd d dS)Nr"rAr=rCr>rEr@r)rrr rr>rlrErkr@rrnrrrr!r"r#rrr r) s     zTestDateTime.test_replaceZEDT4c CsF|j}tdd}|jttdddd}||||t |j|||t |j||j|dtddd}||||||j|d |Gd d d t }|}|t |j|||j|d||Gd d d t }|}|t |j|Gdddt } | } |j| d} |t | W5QRXdS)N,Z0044rDrEDTrrCrrc@seZdZddZddZdS)z+TestDateTime.test_astimezone..BoguscSsdSrWrr[rrr r] rz5TestDateTime.test_astimezone..Bogus.utcoffsetcSstdSrrr[rrr r_ rz/TestDateTime.test_astimezone..Bogus.dstNr4rHrIr]r_rrrr Bogus src@seZdZddZddZdS)z/TestDateTime.test_astimezone..AlsoBoguscSstdSrrr[rrr r] rz9TestDateTime.test_astimezone..AlsoBogus.utcoffsetcSsdSrWrr[rrr r_ rz3TestDateTime.test_astimezone..AlsoBogus.dstNrrrrr AlsoBogus src@seZdZddZddZdS)z,TestDateTime.test_astimezone..BrokencSsdSrErr[rrr r] rz6TestDateTime.test_astimezone..Broken.utcoffsetcSsdSrErr[rrr r_ rz0TestDateTime.test_astimezone..Broken.dstNrrrrr Broken sr) rrvrJrrrr* astimezonerkrlrr) r+r\rdt_utcZdt_frZbogrZalsobogrZbrokenZ dt_brokenrrr test_astimezone s*    zTestDateTime.test_astimezonecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|j|j ddS)Ncs$eZdZdZfddZddZdS)z.TestDateTime.test_subclass_datetime..CrKcs0|}|d}jj|f||}||_|Sr-r.r0rYrr ry s  z6TestDateTime.test_subclass_datetime..C.__new__cSs||j|j|jSrW)rrrkr2rrr r4 sz6TestDateTime.test_subclass_datetime..C.newmethNr5rrYrr r7 s r7)rrCrrrg)rr@rKrB) rr*r3r6rrr4rrrkr9rrYr rh s  z#TestDateTime.test_subclass_datetimec s,Gfdddj}d}d}d}||}|||jd|}d|f|fd|tjf|tjfd|f|fd |f|fd |d f|fd t|d dt |ddf|fg}|D]n\}} } ||fD]Z} j t | |d>t | |} | | } | || | | jdW5QRXqqdS)NcseZdZfddZdS)zTTestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclasscsjj|f||}d|_|Sr:r;r<rYrr ry sz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__Nr>rrYrr re sre)rrCrrrfrz2003-04-14T12:30:15.123456gh͏TMAr@rrr?rz%Y-%m-%dT%H:%M:%S.%frBrr=r@) rrur*rrCrrrrrrr{rD)r+rerrEZutc_tsrFrrGrArHrbrI constructorr\rrYr -test_subclass_alternate_constructors_datetime s6       $      z:TestDateTime.test_subclass_alternate_constructors_datetimec sGfdddj}ddifddifdddtjifdddttdd d ifg}|D]N\}}}|4t||}|f|}|||jd W5QRXqTdS) NcseZdZfddZdS)z8TestDateTime.test_subclass_now..DateTimeSubclasscsjj|f||}d|_|Sr:r;r<rYrr ry sz@TestDateTime.test_subclass_now..DateTimeSubclass.__new__Nr>rrYrr re srervrZnow_utcrZ now_fixedrrrr@) rrrrrrDrur*r)r+rerGr0Z meth_namer=rJr\rrYr test_subclass_now s    zTestDateTime.test_subclass_nowc sddddg}ddddgd d g}dtjttd d ttd d gfdd|D}|D]J}|D]@}|j|d}j|dj|}||W5QRXqdq\dS)NrTrUrVrWrrrr)rrrih)rrrG)rrfrrr|rPrrrAcs4g|],}D]"}D]}j||d|iqq qSr)r)rZ date_tupleZ time_tuplerZ base_timesr+rrr r!9 s z.rr)rrrrrrr?r*)r+rZ separatorsdtsr\rrr\rrr test_fromisoformat_datetime# s0    z(TestDateTime.test_fromisoformat_datetimec Cs|ddddddd}tddtddtd d d tdd dd tdddddg}|dd|D7}dtjttddg}|dd|D7}|D]L}|j|d}|}|j|d"|j|}||kst|W5QRXqdS)NrgrrfrpQr>rrArEr rrjrrCr9rrcSsg|] }d|qSrrrrrrr r!P sz.rcSsg|] }t|qSrrrrrr r!U srtstr rrrrrrrr?r)r+Zbase_dtrrrr\rr\rrr test_fromisoformat_timezoneF s$     z(TestDateTime.test_fromisoformat_timezonec Csvddddddddd g }|D]V}|d d d d ddd}|j|d}|j|d|j|}|||W5QRXqdS)Nr|rP€uʁuᛇu時u🐍rrZr"rrrriurrrYr+rrr\rr\rrr test_fromisoformat_separators_ s   z*TestDateTime.test_fromisoformat_separatorsc Csdddg}|D]R}|ddddd}|j|d}|j|d |j|}|||W5QRXq dS) NrrrZr"rrrrrrYrrrr test_fromisoformat_ambiguousp s  z)TestDateTime.test_fromisoformat_ambiguousc Csddg}dtjttddttddttdddg}d d d d d g}t|D]\}}|D]}|D]}|d krd|dd}|dd|f}|j|dd|d|i} | j|d} |j| d|j| } || | W5QRXqbqZqNdS)N)rrrCrnrrr)rrrCrnrrrrrrArEr rrrNrrrrrrCrr~r rrr enumeraterrrr?r*) r+Zdatetime_basesr timespecsiprrr[new_microsecondsr\rr\rrr test_fromisoformat_timespecs{ s.    z)TestDateTime.test_fromisoformat_timespecscCsddddddddd d d d d dddddddddddddddg}|D]>}|j|d(|t|j|W5QRXW5QRXq@dS)Nrrz 2009.04-19T03z 2009-04.19T03z 2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z2009-04-19T03:15:45.2345z2009-04-19T03:15:45.1234567z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u2009-04-10ᛇᛇᛇᛇᛇ12:15u2009-0410T12:15u2009-04-10T1215z 2009-04-19T1z2009-04-19T12:3z2009-04-19T12:30:4z2009-04-19T12:z2009-04-19T12:30:z2009-04-19T12:30:45.z2009-04-19T12:30:45.123456+z2009-04-19T12:30:45.123456-z!2009-04-19T12:30:45.123456-05:00az2009-04-19T12:30:45.123-05:00az2009-04-19T12:30:45-05:00ar`rrkrrr?r_rrr !test_fromisoformat_fails_datetime sB z.TestDateTime.test_fromisoformat_fails_datetimec Cs6d}|ttt||j|W5QRXdS)Nu2018-01-0301:0113)rrreescaperrr?)r+rrrr "test_fromisoformat_fails_surrogate sz/TestDateTime.test_fromisoformat_fails_surrogatecCs$d}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)rr?rzrrr)r+rXr\rrr test_fromisoformat_utc s z#TestDateTime.test_fromisoformat_utcc Cs`Gddd|j}|ddddddd ttd dd d }||}||||||dS) Nc@s eZdZdS)zBTestDateTime.test_fromisoformat_subclass..DateTimeSubclassNrXrrrr re srergrrr9rfrir#rr)rrrr?rr*ru)r+rer\r\rrr r^ s z(TestDateTime.test_fromisoformat_subclassN).cskSrWrrr,rr r& rcskSrWrrr,rr r' rcskSrWrrr,rr r( rcskSrWrrr,rr r) rcskSrWrrr,rr r* rcskSrWrrr,rr r+ rcskSrWrrr,rr r, r) rr*rsrrr$r-rkrl)r+rr rr'rr,r test_comparing sL      zTestTime.test_comparingcCs |dd|dd|t|jdd|t|jdd|dd|dd|t|jdd|t|jdd|ddd|ddd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddddS) Nrrrrrrrr)rrkrrYrrr r. s     z'TestTime.test_bad_constructor_argumentscCs|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)Nrrfrr"rArr>rrrrr r&D s$  zTestTime.test_hash_equalitycCs|dddd}||d||t||}||d||t||jdd}||d||t||jd d}||d ||t||jd d}||d ||t||jd d}||d||t||jdd}||d||t||jdd}||d||t||jddddd}||jddd||jddd||jddd||jddd ||jd!dd"||jd#dd"|jt|jd$d|jt|jd%d|jdddd&d}||jddd'|jdddd(d}||jddd)||jd!dd*||jd#dddS)+NrCr>r"rz04:05:01.000123z00:00:00rz00:00:00.000001r#z00:00:00.000010rz00:00:00.000100rz00:00:00.001000rz00:00:00.010000iz00:00:00.100000rr'r(r)rrlrkrrr~Z12rNz12:34rz12:34:56rz 12:34:56.123rz12:34:56.123456rZmonkeyrrz 12:34:56.999rz 12:34:56.000z12:34:56.000000)rr*rrrkrrrrr r[ sN      zTestTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|d dd}d}|D]D\}}|j|d}||}|j|d||kstW5QRXqdS)Nrr>rrrArrEr rrrrjrfrrrCr9rrrrrcSs2g|]*\}}dD]\}}||t||fqqSrrrrrr r! sz4TestTime.test_isoformat_timezone..rz12:37:09rrr) r+rrZt_baserrrrrrrr r s(     z TestTime.test_isoformat_timezonecCs"|jdd}|jt|jdddS)Nr"rkr=)r)rrkrlrrrrr test_1653736 s zTestTime.test_1653736cCs\|dddd}||dd||ddz|d Wntk rVYnXdS) Nr"rAr=rCz %H %M %S %fz01 02 03 000004rru%H%M)rr*rrrrrr r szTestTime.test_strftimec Cs|dddd}||dt||td|dW5QRXGdd d |j}|dddd}||dd Gd d d |j}|dddd}||dt|d D]F}|||||||||||||d qdS) Nr"rAr=rCrrrc@seZdZddZdS)zTestTime.test_format..AcSsdSrrrYrrr r sz'TestTime.test_format..A.__str__Nrrrrr r src@seZdZddZdS)zTestTime.test_format..BcSsdSrrrrrr r sz(TestTime.test_format..B.strftimeNrrrrr r sr)z%H %M %Sr)r+rrrrrrrrr r szTestTime.test_formatc Cs|t|ddddd|t|ddddd|t|d ddd d |t|d ddd d |t|ddd d ddS)Nr"rAr=rCz01:02:03.000004r#rz10:02:03.004000rr3z00:02:03.400000rz12:02:03rrz23:15:00)r*rrrYrrr r s zTestTime.test_strc Csd|jj}|t|ddddd||t|ddddd ||t|d ddd d ||t|d ddd d||t|ddd d d|dS)Nr2r"rAr=rCz%s(1, 2, 3, 4)r#rz%s(10, 2, 3, 4000)rr3z%s(0, 2, 3, 400000)rz %s(12, 2, 3)rrz %s(23, 15)r4r5rrr r s  zTestTime.test_reprcCsN||jj|j||jj|j||jjt||jj|jjkdSrW)rurrror<rrsrYrrr r= szTestTime.test_resolution_infocCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrrrrrArr)rrr r* s   zTestTime.test_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rr|r}r~r*rsrOr)rrr test_pickling_subclass_time s   z$TestTime.test_pickling_subclass_timec Csnddddddg}t|D]P\}\}}|j|d2|j|}tD]}||dd }|||q@W5QRXqdS) N)s,cdatetime time (S'\x14;\x10\x00\x10\x00' tR.r)scdatetime time (U;tR.r)scdatetime time U;R.r)s,cdatetime time (S'\x14;\x19\x00\x10\x00' tR.rrrr)scdatetime time (U;tR.r)scdatetime time U;R.r)rr r)rrrrr*)r+r`rrrrbr~rrrr r s  zTestTime.test_compat_unpicklecCsh|j}||d||dd||ddd||dddd||d||dS)Nr"r)rrs)r+r$rrr rN szTestTime.test_boolc Cs|j}ddddg}||}|||d}dD]H\}}|dd}|||<||}|jf||i} ||| |d7}q2|d}|jt|jdd|jt|jd d |jt|jd d |jt|jd ddS)Nr"rAr=rCr)rrrrrrrrlrrrrr"r#rrr r)% s"     zTestTime.test_replacecCs8Gddd|j}|dd}|t|jdd|dS)Nc@s eZdZdS)z4TestTime.test_subclass_replace..TimeSubclassNrXrrrr TimeSubclass? sr"rrfr#r r+)r+r"rrrr r,> s zTestTime.test_subclass_replacecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestTime.test_subclass_time..CrKcs0|}|d}jj|f||}||_|Sr-r.r0rYrr ryJ s  z.TestTime.test_subclass_time..C.__new__cSs||j|jSrWrrkr2rrr r4Q sz.TestTime.test_subclass_time..C.newmethNr5rrYrr r7G s r7)rCr>rErr@rKrB) rr*r3r6rrr4rrkr9rrYr test_subclass_timeE s  zTestTime.test_subclass_timec Csld}ddtddfD] }|t|j||ddq|td |tdgt|dW5QRXdS) Nz2:59.0r|9rÿr"rQr)chrrkrlrrrRr$)r+r%Z hour_byterrr rS_ s z!TestTime.test_backdoor_resistanceN)r4rHrIrrrr{r;rrr&rrrrrrrr=r*rrrNr)r,r$rSrrrr r s. +4     rc@s4eZdZddZddZddZddZd d Zd S) TZInfoBasecCs|j}Gdddt}|ddd|d}|tkr4dp6d}|||t|tkrVd pXd d }||||||dS) Nc@s eZdZddZddZeZdS)z7TZInfoBase.test_argument_passing..introspectivecSs |rdp dS)Nrealnonerr[rrr r^r rz>TZInfoBase.test_argument_passing..introspective.tznamecSst|r dp ddS)NrKrMrr[rrr r]s szATZInfoBase.test_argument_passing..introspective.utcoffsetN)r4rHrIr^r]r_rrrr introspectiveq sr,r"rAr=rr*r)r+rKrM)rrrr*r^rr]r_)r+r$r,objrbrrr test_argument_passingn sz TZInfoBase.test_argument_passingcCsz|j}|jt|dddddGdddt}|jt|ddd|dGdddt}|}|ddd|d}||j|dS)Nr"rrc@seZdZddZddZdS)z3TZInfoBase.test_bad_tzinfo_classes..NiceTrycSsdSrWrrYrrr rV rz.NiceTry.__init__cSsdSrWrr[rrr r] rz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetNr4rHrIrVr]rrrr NiceTry sr0c@seZdZddZddZdS)z5TZInfoBase.test_bad_tzinfo_classes..BetterTrycSsdSrWrrYrrr rV rz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__cSsdSrWrr[rrr r] rz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffsetNr/rrrr BetterTry sr1)rrkrlobjectrrz)r+r$r0r1rrrrr test_bad_tzinfo_classes sz"TZInfoBase.test_bad_tzinfo_classesc CsGdddt}|j}dD]\}}|tkr@|ddd||d}n0|tkrd|dddddd||d}n d sptd |rt|}t|d \}}d |d krd pd||f} t|tr|}| t |d| q| t t |qdS)Nc@seZdZddZddZdS)z6TZInfoBase.test_utc_offset_out_of_bounds..EdgycSst|d|_dSrLrrU)r+rUrrr rV sz?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__cSs|jSrW)rUr[rrr r] sz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffsetNr/rrrr Edgy sr5))`F)aT)T)rFr"rAr=rrErZ impossiblerz %c%02d:%02drrz01:02:03) rrrrrrrrrOtimetzr*rrkr) r+r5r$rUZlegitrZaofsrrtagrrr test_utc_offset_out_of_bounds s    z(TZInfoBase.test_utc_offset_out_of_boundscCs|j}Gdddt}|ddd|ddddd|ddd|dfD].}||||||qBGdddt}|ddd|d}||tdd||td d||d Gd d d t}|ddd|d}|t |j|t |j|t |jGd ddt}|ddd|d}|t |j|t |jGdddt}|ddd|d}||tdd||tdddS)Nc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C1cSsdSrWrr[rrr r] rz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetcSsdSrWrr[rrr r_ rz.TZInfoBase.test_tzinfo_classes..C1.dstcSsdSrWrr[rrr r^ rz1TZInfoBase.test_tzinfo_classes..C1.tznameNr4rHrIr]r_r^rrrr C1 sr=r"rc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C3cSs tddS)Nr7rMrr[rrr r] rz4TZInfoBase.test_tzinfo_classes..C3.utcoffsetcSs tddS)Nr8rMrr[rrr r_ rz.TZInfoBase.test_tzinfo_classes..C3.dstcSsdSNanamerr[rrr r^ rz1TZInfoBase.test_tzinfo_classes..C3.tznameNr<rrrr C3 sr@r7rMr8r?c@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C4cSsdSr>rr[rrr r] rz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetcSsdSr:rr[rrr r_ rz.TZInfoBase.test_tzinfo_classes..C4.dstcSsdSrrr[rrr r^ rz1TZInfoBase.test_tzinfo_classes..C4.tznameNr<rrrr C4 srAc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C6cSs tddS)Nirrr[rrr r] rz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetcSs tddS)Nrrrr[rrr r_ rz.TZInfoBase.test_tzinfo_classes..C6.dstNrrrrr C6 srBc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C7cSs tddS)Nrrrr[rrr r] rz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetcSs tddS)Nrrr[rrr r_ rz.TZInfoBase.test_tzinfo_classes..C7.dstNrrrrr C7 srDrrrC) rrrr]r_r^r*rrkrlr)r+r$r=rr@rArBrDrrr test_tzinfo_classes s6 zTZInfoBase.test_tzinfo_classesc Cs|j}Gdddt}|ddd|d}|jdd}|jdd}|jd d}|||fD]N}|||fD]>}ttttttfD](} | ||} | |j |j } | | | qxqdqV|t k r|jd|d }|jd|d }|jd |d }|||fD]}|||fD]}||k||k} ||ks ||kr:||ks4||kr:d } nD||krR|kr\nnd } n"||krld } n||kszt d } | | | qqdS)Nc@seZdZddZdS)z=TZInfoBase.test_aware_compare..OperandDependentOffsetcSs$|jdkrt|jdStddSdSNr#rMrrlrrrrr r] s  zGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetNrerrrr OperandDependentOffset srHrnr9r#rr=r!rirlrrrr") rrrrrrrrrrlr*rr) r+r$rHr%d0r_rrsropr(rbrrr test_aware_compare s8      ( zTZInfoBase.test_aware_compareN)r4rHrIr.r3r;rErLrrrr r(l s 0r(c@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdS) TestTimeTZcCsP|}||jd||jd||jd||jd||jdSr)rr*rrlrkrrrrrrr test_emptys zTestTimeTZ.test_emptyc s"tddd}tddd}tddd }td d |d }td d |d }tdd |d }tddtd|d||j|||j|||j||j|j|||tdd||tdd||tdd||t|jd|| d|| d|| d| |t|j d|| tdd|| tdd|| td d| |t|j d|t |t ||t |t ||t |t ||||||||||| |tfdd|tfdd|t |d|t |d|t |d|t d|t d||d||d||d|d|dd}|t||d|t||d|t||d|t|d |t|d!||d"d#||d$d%||d$d&td'd(}td)d*|d }||d+d,Gd-d.d.t} td/d d0| d } || d1d2|t| jd3d4|jjkrd5| _|t| jd3dS)6Nrrr"rrr?rMETr=r@rrrrg(r)rrrMzno argscskSrWrrrVZt5rr rBrz'TestTimeTZ.test_zones..cskSrWrrrQrr rCrz07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z (0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%zz07:47:00 %Z=EST %z=-0500z%H:%M:%S %Z %zz12:47:00 UTC +0000z13:47:00 MET +0100r7z %z %Z %%z%%Zrrz%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'c@seZdZdZddZdS)z(TestTimeTZ.test_zones..BadtznamerKcSs|jSrWrr[rrr r^erz/TestTimeTZ.test_zones..Badtzname.tznameN)r4rHrIrr^rrrr BadtznamecsrRrArCz%H:%M:%Sz02:03:04rr:r)rJrr*rrr]rrkrlr^r_r#rrrrrr3r4rr) r+estrmetrr rUr%ZyuckrRrrrQr test_zoness             zTestTimeTZ.test_zonescCs|jddddtddd}|jddddtddd}|t|t||jd d d d td dd}|jd dd d tddd}|t|t|dS)Nrr"rAr=r8rrirr0rEriri)rrJr*r#rrrr test_hash_edge_casesos zTestTimeTZ.test_hash_edge_casesc Csd}|j|}tD],\}}}|||}||}|||q|||dtdd}|jddd|d}tD]`\}}}|||}||}|||||j t|| t dd || dqv|||ddS) NrrArrr>rEr@rrM) rr|r}r~r*r r r`rurr]rr^ r+rrrrrrrtinforrr r*ys"       zTestTimeTZ.test_picklingcCsdddg}tdd}|jdddd |d }|D]`}tD]V}||d d }|||t|||jt||tdd || dq4q,dS)Nscdatetime time (S'\x05\x06\x07\x01\xe2@' ctest.datetimetester PicklableFixedOffset (tR(dS'_FixedOffset__offset' cdatetime timedelta (I-1 I68400 I0 tRsS'_FixedOffset__dstoffset' NsS'_FixedOffset__name' S'cookie' sbtR.scdatetime time (U@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta (JJ0 KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime time U@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta JJ0 KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.rrr>rEr@rrr rrM) r`rrr*rrurr]rr^)r+r`rXrbrr~rrrr rs  zTestTimeTZ.test_compat_unpicklecCs||j}|dtddd}|||dtddd}|||dtddd}|||ddtd dd}||dS) Nrrrrr>i,rrr8)rrJrs)r+r$rrrr test_more_bools   zTestTimeTZ.test_more_boolcCsX|j}tdd}ttddd}dddd |g}||}|||d }d d d dd|ffD]H\}}|dd} || |<|| } |jf||i} || | |d7}q\||d|jdd} || j|| | j|d} ||| ||j| j|d}|j t |jdd|j t |jdd|j t |jdd|j t |jdddS)Nr+1008rM-200r"rAr=rCrrrrrrrrr rr!rrr rrJrr*rr^rrrzrkrr+r$Zz100Zzm200rr%rr0r&r'rbr(Zbase2Zbase3rrr r)s>         zTestTimeTZ.test_replacecCs|ddd}|ddd}||||jdd}||||jtddd}||||jtddd}|||Gdddt}|}|j|d}|j|d}||td d ||td d ||||j|d}|||kdS) Nr"rAr=rrrc@seZdZddZddZdS)z-TestTimeTZ.test_mixed_compare..VariescSstdd|_dSNrrMr4rYrrr rVsz6TestTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSNr"rMrUrrrrr r]sz7TestTimeTZ.test_mixed_compare..Varies.utcoffsetNr/rrrr VariessrbrrMr) rr*rrJrrr]rrsr+rr rbvrrr rs$        zTestTimeTZ.test_mixed_comparec Csddg}d}d}d}d}|tt||||7}dtjttddttd d d g}|D]V}|D]L}|j|d |i} | } |j| d |j | } | | | W5QRXq`qXdS)Nr)rrrr)r9rr)r>rf)rCr)rii[ rArrEr rrr) rt itertoolsproductrrrrrrr?r*) r+Z time_examplesZhhZmmssZusecrZttuprrrt_rtrrr r]s&  zTestTimeTZ.test_fromisoformatc Cs|dddd}tddtddtdd d tdd dd tdd dddg}|dd|D7}dtjttddg}|dd|D7}|D]L}|j|d}|}|j|d"|j|}||kst|W5QRXqdS)Nrrfrrr>rrArEr rrjrrCr9rrcSsg|] }d|qSrrrrrr r!*sz:TestTimeTZ.test_fromisoformat_timezone..rcSsg|] }t|qSrrrrrr r!/srrr)r+Z base_timerrrrrrhrrr r s$     z&TestTimeTZ.test_fromisoformat_timezonec Csddg}dtjttddttddttdddg}d d d d d g}t|D]\}}|D]}|D]}|d krd|dd}|dd|f}|j|dd|d|i} | j|d} |j| d|j| } || | W5QRXqbqZqNdS)N)rnrrr)rnrrrrrrArEr rrrNrrrrrrr"rr~rr) r+Z time_basesrrrrrZt_tuplerrrrhrrr r 9s.    z'TestTimeTZ.test_fromisoformat_timespecscCsvddddddddd d d d d ddddddddg}|D]>}|j|d(|t|j|W5QRXW5QRXq2dS)Nru1200z12:z12:30:z 12:30:15.1z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z 12:30:45.1234z12:30:45.1234567z12:30:45.123456+24:30z12:30:45.123456-24:30u 12:30:45u12:30:45․123456z 12:30:45az 12:30:45.123az12:30:45.123456az12:30:45.123456+12:00:30ar r r_rrr raTs4 z#TestTimeTZ.test_fromisoformat_failsc CsHddl}dd|dg}|D]&}|t|j|W5QRXqdS)Nrs12:30:45z12:30:45rbrerrr rfrs  z-TestTimeTZ.test_fromisoformat_fails_typeerrorcCsPGddd|j}|ddddtjd}||}||||||dS)Nc@s eZdZdS)z.TimeSubclassNrXrrrr r"}sr"rrrir)rrrr?rr*ru)r+r"ZtscZtsc_rtrrr r^|s  z&TestTimeTZ.test_fromisoformat_subclasscsGfdddj}ddddtddd f}j|}||d d i}|j||jd |jd |||d |j|j d dS)Ncs$eZdZdZfddZddZdS)z*TestTimeTZ.test_subclass_timetz..CrKcs0|}|d}jj|f||}||_|Sr-r.r0rYrr rys  z2TestTimeTZ.test_subclass_timetz..C.__new__cSs||j|jSrWr#r2rrr r4sz2TestTimeTZ.test_subclass_timetz..C.newmethNr5rrYrr r7s r7rCr>rErrr"rr@rKrB) rrJr*r3r6rr]r4rrkr9rrYr test_subclass_timetzs  zTestTimeTZ.test_subclass_timetzN)r4rHrIrrrNrUrVr*rrYr)rr]rr rarfr^rkrrrr rM s W "'  rMc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zed%d&d'Zed(d)d*Zed(d+d,Zd-d.Zd/d0Zd1d2Zd3S)4TestDateTimeTZc Cs|ddddddd}||jd||jd||jd||jd||jd||jd||jd||j ddS)Nr"rAr=rCr>rEr@) rr*rrrCrrlrkrrr[rrr test_trivialszTestDateTimeTZ.test_trivialc sT|jdddtddd|jtdddddd td dd|k|k|k|||jdddddtddd|jd ddd d tddd||jdddddtddd|k|jdddddtd dd|k|jdddddtdddd|k|jdddddtdddd|k|jj|||tkW5QRXGdddt }|jddd|d|||ddd|Gdddt }|jd d d |d|jd d d tddd|t fdddS)Nr"r8rrrrrrrr7rAr=rgr)rrk)rrc@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..NaivecSsdSrWrr[rrr r]rz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetNrerrrr Naivesror>rEr@c@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..BoguscSs tddS)NrrMrr[rrr r]sz>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsetNrerrrr rsrcskSrWrrrr rr rrz7TestDateTimeTZ.test_even_more_compare..) rrJrrsr*rrrkrlrr)r+rorrrpr test_even_more_comparesN         z%TestDateTimeTZ.test_even_more_comparec Cs d}|j|}tD],\}}}|||}||}|||q|||dtdd}|j|d|i}|jdddtdddd }tD]`\}}}|||}||}|||| |j t|| t dd || dq|||ddS) NrrArrrr"rrrrM)rr|r}r~r*r r r`rJrurr]rr^rWrrr r*s$       zTestDateTimeTZ.test_picklingcCsdddg}d}tdd}|j|d|i}|D]Z}tD]P}||dd }|||||jt||tdd ||dq4q,dS) Nscdatetime datetime (S'\x07\xdf\x0b\x1b\x14;\x01\x01\xe2@' ctest.datetimetester PicklableFixedOffset (tR(dS'_FixedOffset__offset' cdatetime timedelta (I-1 I68400 I0 tRsS'_FixedOffset__dstoffset' NsS'_FixedOffset__name' S'cookie' sbtR.scdatetime datetime (U  ;@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta (JJ0 KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime datetime U  ;@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta JJ0 KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.)r rir rrr"rrrrr rrM) r`rrr*rurr]rr^)r+r`rrXrbrr~rrrr r s   z#TestDateTimeTZ.test_compat_unpicklec Csr|jdddtddd}t||jtdddddd td dd}t||jd d d td dd}|tt|dS) Nr"r8rrrrrrrr7r>r6)rrJr#rrkrrrrr test_extreme_hashes2sz"TestDateTimeTZ.test_extreme_hashescCstdd}tdd}tdd}tddd d d |d }tddd d d |d }tddd dd |d }||j|||j|||j|||tdd||tdd||tdd||d||d||d|t|t||t|t||t|t|||||||||||t|d|t|d|t|dd}|t ||d|t ||d|t ||ddS)NrrrrrrOrr=rir@rrrrgrMz2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met)) rJrr*rr]rr^r#rr)r+rSrrTrr rUr%rrr rU@s8      zTestDateTimeTZ.test_zonesc CsXtdd}tddd}tdddd|d }t||}||tddddddd|d dS NrrOrr=rCrrrr)rJrrrrBr*)r+rTr%rr\rrr r^s   zTestDateTimeTZ.test_combinec Csxtdd}|jddddddd|d }||tddd||tdddd||tdddd|d dSrs)rJrr*rrr9)r+rTr\rrr rfs  zTestDateTimeTZ.test_extractc st|jtdd}j|d}|j||j||  || t fdd| t fdd| t fdd| t fdd| t fd d| t d | t d t d d d d|j|}||j|| |}||j|| || t fdd| ttddd}j|d|j|}}| |||jd d d tddd}|jtd dddddtddd} | |} | | |jj|jjt ddttd} ttd} |j| d| j| d| |jj|jjdS)Niz west 5:30rcsSrWrrrvnowawarerr rvrz9TestDateTimeTZ.test_tz_aware_arithmetic..csSrWrrrtrr rwrcsSrWrrrtrr rzrcsSrWrrrtrr r{rcsSrWrr)rurr r|rrr"ri.)rrNrcsSrWrr)r nowawareplusrr rrr7rZrandomtimezoner8rrrrrroi> rMrr)rrvrJrrrBrrzrr*r9rkrlrrdZ randranger]rrorrr) r+Ztz55Z timeawareZ nowawareplus2rZtzrr(rbrroZmaxdiffZtzaZtzbr)rrvrurvr test_tz_aware_arithmeticmsT        z'TestDateTimeTZ.test_tz_aware_arithmeticc Cs.|jj}|}tdd}||}||d}||j|j||tdd|t |d|jt |dd|jt ||d|t |||tdd d}ttd d d d dt td d d d fD]h}t dD]P}t |} || j|t j|d} | |} t| | tddkrqq|dqdS)NrK42rrMrrrXrrrr0rweirdtzr=rfrz0utcnow(), now(tz), or astimezone() may be broken)rrvrJrzrr*r]rrkrlrrrrrrrZfail) r+methr%off42anotheragainrrzrrvrZnow2rrr test_tzinfo_nows.      zTestDateTimeTZ.test_tzinfo_nowcCs ddl}|jj}|}||}tdd}|||}|||d}||j|j||tdd| t ||d|j t ||dd|j t |||d| t ||||| t |d }t |} td d d } t| d d} | | } t || } || | j dddS)NrrKrxrrMrrryr>i'rr)rrrrJrzrr*r]rrkrlrrr)r+rr{rr%r|r}r~rCZ utcdatetimer]rrbr(rrr test_tzinfo_fromtimestamps*        z(TestDateTimeTZ.test_tzinfo_fromtimestampcCs:|jj}|}tdd}|t|||jt||ddS)NrKrxr)rrrJrkrl)r+r{r%r|rrr test_tzinfo_utcnows  z!TestDateTimeTZ.test_tzinfo_utcnowcCsPddl}|jj}|}||}tdd}|t||||jt|||ddS)NrrKrxr)rrrrJrkrl)r+rr{rr%r|rrr test_tzinfo_utcfromtimestamps z+TestDateTimeTZ.test_tzinfo_utcfromtimestampc CshGdddt}|j}dD]\}}|ddddddd||d }|}|d|j|d|j|d|j|d|j|d|j|d|j |d |j |d|j |||j q| t|ddd|d d j||ddd|d d j d||ddd|d d j d| t|ddd|dd j| t|ddd|dd jdS)Nc@seZdZddZddZdS)z1TestDateTimeTZ.test_tzinfo_timetuple..DSTcSst|trt|d}||_dSrLrOrPrdstvaluer+rrrr rVs  z:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__cSs|jSrWrr[rrr r_sz5TestDateTimeTZ.test_tzinfo_timetuple..DST.dstNr4rHrIrVr_rrrr DSTsr))r")rr")rr)Nrr"r#rrfrPrrrsr8r7rr6)rrrr*rrrrrrrrrrkrlr)r+rr$rflagr%rrrr test_tzinfo_timetuple s& ""z$TestDateTimeTZ.test_tzinfo_timetuplec sGdddt|j}|t|dddddjGfddd}dD]}|dd d d d d d|d|d}|}||j|j||j |j ||j |j |d|j |d|j||j|j|||j||tdddd|j|d|jqL|dd d d d d d}|}||dd|dd|d|jGddd}|dd d d d d d|d}|}||dd|dd|d|jGddd}|dd d d d d d|d}|t|j|ddddddd}tjtjtjfD]>}|j|d} || dd| tjddq |tddddd|dd} |t | j|t!ddd d!dd"|d#d} |t | j|jjtt"d} |t | j|jjtt" d} |t | jdS)$Nc@seZdZdddZddZdS)z-TestDateTimeTZ.test_utctimetuple..DSTrcSst|trt|d}||_dSrLrrrrr rV2s  z6TestDateTimeTZ.test_utctimetuple..DST.__init__cSs|jSrWrr[rrr r_6sz1TestDateTimeTZ.test_utctimetuple..DST.dstN)rrrrrr r1s rr"rrcs"eZdZdfdd ZddZdS)z.TestDateTimeTZ.test_utctimetuple..UOFSNcs||t|d|_dSrL)rVruofs)r+rZdofsrrr rV?s z7TestDateTimeTZ.test_utctimetuple..UOFS.__init__cSs|jSrW)rr[rrr r]Bsz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffset)Nr/rrrr UOFS>sr)rrrNrAr=r#rrfrPirirgrc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..NOFScSsdSrWrr[rrr r]\sz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffsetNrerrrr NOFS[src@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..BOFScSsdS)Nrrr[rrr r]dsz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetNrerrrr BOFScsrrrrri+rr8rrrrrr7)#rrrkrpr]Z utctimetupler*rrrrrCrrrrkrrrrrrrrrlrrrrorrrr?rr) r+r$rrr%rrrrZdtzrBZhugerrr test_utctimetuple0s\   z TestDateTimeTZ.test_utctimetuplec Cstdd}tdd}tdd}tdd}|j}d}d||||fD]}d D]}|d d d d dd||d} d|rndppd} |dk r| pd} | | } | } || |d| || | d|| d|d| || d|d| |t| |d| qHq@dS)Nrrz+03:40iz-03:51rz 0001-02-03)riyr"rAr=rCr>rrz04:05:59z.987001rPkuሴr|)rJrr^rr*r)r+r ZplusZminusunknownr$ZdatestrZofsrr%ZtimestrZofsstrZtailstrZisorrr test_tzinfo_isoformats$    z$TestDateTimeTZ.test_tzinfo_isoformatc Cs2|j}tdd}ttddd}dddd d d d |g}||}|||d }dddddddd|ffD]H\}}|dd} || |<|| } |jf||i} || | |d7}qh||d|jdd} || j|| | j|d} ||| ||j| j|ddd}|j t |jdddS)NrrZr[rMr\r"rAr=rCr>rEr@rrrr rrrrrrrrrr!r]r^rrr r)s>          zTestDateTimeTZ.test_replacecCsDtdd}tdd}ttdd d}|jj|d}||j||t|j|||j}||j|| | | | | | ||}||j|| | tdd|| }|| |7}|j |d }| | | | | | | ||||j|j| ||dS) NNonerZ44r>rZm300rrr)rJrrrvrzrrkrrr*rrr]rr9)r+ZfnoneZf44mZfm5hr\rsr(rbrrr test_more_astimezones*      z#TestDateTimeTZ.test_more_astimezonercCs4|jtj}||d||||dSrW)rrvrrr*rr[rrr test_astimezone_default_utcsz*TestDateTimeTZ.test_astimezone_default_utcrcCs|jdddddtjd}|}|||||dd|jdddd dtjd}|}|||||dd dS) Nr*rirCrErfrrz -0500 ESTr>z -0400 EDT)rrrrr*r)r+r\rrrr test_astimezone_default_easterns  z.TestDateTimeTZ.test_astimezone_default_easterncCs8tddddtjd}|}|}||j|jdS)Nr rir"r>r)rrrrr*r)r+rrr:rrr !test_astimezone_default_near_foldsz0TestDateTimeTZ.test_astimezone_default_near_foldc Cs|j}Gdddt}|ddddddd |d }|jd d }|jdd }|jdd }|||fD]:}|||fD]*}||} t|j|jd } || | qlq^|ddddddd }|jd |d}|jd|d}|jd|d}|||fD]}|||fD]}||} ||ks||kr4||ks*||kr4td} nT||krL|krZnn td} n.||krptdd } n||ks~ttdd } || | qqdS)Nc@seZdZddZdS)zBTestDateTimeTZ.test_aware_subtract..OperandDependentOffsetcSs$|jdkrt|jdStddSdSrFrGrrrr r]s  zLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetNrerrrr rHsrHrnr9r#rirrgrrr=r!rMrIrir)rrrrrlr*r) r+r$rHr%rJr_rrsrr(rbrrr test_aware_subtracts6    (     z"TestDateTimeTZ.test_aware_subtractcCstddddddd}tddddddd}||||jdd}||||jtdd d}||||jtd d d}|||Gd d d t}|}|j|d}|j|d}||td d||tdd||||j|d}|||kdS)Nr"rAr=rCr>rEr@rrrc@seZdZddZddZdS)z1TestDateTimeTZ.test_mixed_compare..VariescSstdd|_dSr_r4rYrrr rV-sz:TestDateTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSr`rarrrr r]/sz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetNr/rrrr rb,srbrrMr) rr*rrJrrr]rrsrcrrr r s$        z!TestDateTimeTZ.test_mixed_comparec sGfdddj}ddddddd td d d f}j|}||d di}|j||jd|jd|||d|j|j ddS)Ncs$eZdZdZfddZddZdS)z2TestDateTimeTZ.test_subclass_datetimetz..CrKcs0|}|d}jj|f||}||_|Sr-r.r0rYrr ryCs  z:TestDateTimeTZ.test_subclass_datetimetz..C.__new__cSs||j|jSrW)rrr2rrr r4Jsz:TestDateTimeTZ.test_subclass_datetimetz..C.newmethNr5rrYrr r7@s r7rrrrCr>rErjrrr"rr@rKrB) rrJr*r3r6rr]r4rrr9rrYr test_subclass_datetimetz>s  z'TestDateTimeTZ.test_subclass_datetimetzN)r4rHrIrrrmrqr*rrrrUrrrwrrrrrrrr)rr rrrrrrrrrrr rls8 E%A%#  $P'   ,rlcCs d|}|r|t|7}|S)NrE)rr)r\Z days_to_gorrr first_sunday_on_or_afterZs  rrMrrrCrArc@s4eZdZddZddZddZddZd d Zd S) USTimeZonecCs"t|d|_||_||_||_dSNrr stdoffsetreprnamestdnamedstnamer+rrrrrrr rVns zUSTimeZone.__init__cCs|jSrWrrYrrr rZtszUSTimeZone.__repr__cCs||r|jS|jSdSrWr_rrr[rrr r^ws zUSTimeZone.tznamecCs|j||SrWrr_r[rrr r]}szUSTimeZone.utcoffsetcCs|dks|jdkrtS|j|ks$tttj|jd}|dkrV|jdkrV|j dksZttt j|jd}|dkr|jdkr|j dkst||jddkr|krnnt StSdSNr!rErCr@r#rr) rrrrDSTSTARTrrrrrCDSTENDrr+r\r3endrrr r_s$$ zUSTimeZone.dstNr4rHrIrVrZr^r]r_rrrr rls rrrrrrFCentralZCSTZCDTrBMountainZMSTZMDTiPacificZPSTZPDTri0ZUTCfakec@sdeZdZeddddZeddddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestTimezoneConversionsrrCr@rAr#r r"c Cs||t||||||}||}||kr|jdkr||t|||t|||||n ||||t}||} ||kr|jdkr|| |jdd|t7}||} || |jddn|| |tdS)NrArr"r )r*r_rrrrrr) r+r\rrdstondstoffasutcthere_and_backZ nexthour_utcZ nexthour_tzrrr checkinsides&      z#TestTimezoneConversions.checkinsidecCsF||t||||||}||}|||dSrW)r*r_rr)r+r\rrrrrrr checkoutsides   z$TestTimezoneConversions.checkoutsidec Cs|jj|d}|jj|d}tddtttddtddfD]p}||||||||||fD]}||||||qb||||||||fD]}||||qq.okcSstSrWrr[rrr r]Irz.ok.utcoffsetcSstSrWrr[rrr r_Jrz6TestTimezoneConversions.test_bogus_dst..ok.dstNrrrrr okHsrrc@seZdZddZdS)z5TestTimezoneConversions.test_bogus_dst..notokcSsdSrWrr[rrr r_Rrz9TestTimezoneConversions.test_bogus_dst..notok.dstNr4rHrIr_rrrr notokQsrc@seZdZddZdS)z.tricky_notokcSs|jdkrdSdtSdS)Nrr#)rrr[rrr r_Zs z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dstNrrrrr tricky_notokYsrrr")rrrvrrrrkr)r+rrvrrr\rrr test_bogus_dstGs z&TestTimezoneConversions.test_bogus_dstc Cs|ttjtjtd}|ttj||jtd}t|}| |j t|ttj|||ttjt Gdddt }|dddd}|jjdtd }|j|d}d D]}|j|d }|d kr|td d8}t|} | || ||j}||} | || |jtd|} | || |t7}|t7}q|jjdtd }|j|d}dD]v}|j|d }t|} | || ||j}||} | || |jtd|} | || |t7}|t7}qbdS)Nrc@seZdZddZdS)z.FauxUSTimeZonecSs ||jSrW)rr[rrr rnszDTestTimezoneConversions.test_fromutc..FauxUSTimeZone.fromutcNr4rHrIrrrrr FauxUSTimeZonemsrrFEasternZFESTZFEDTrCr)rrr"r=rCr>r rr"r)rr"r"rAr=rC)rkrlrrrrrrrr*rrrrrrrrrr) r+rvZenowrrr3ZfstartZwallrbr(rrr rbsL                   z$TestTimezoneConversions.test_fromutcN)r4rHrIrrrrrrrrrrrrrrr rs4 3rc@s$eZdZddZddZddZdS)Oddballscsttt|k|k|k|k|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d| d j d d d }j |d }| |dt jjj }| || |tjjj ddd}| || |dS)NcskSrWrrZas_dateZ as_datetimerr rrz+Oddballs.test_bug_1028306..cskSrWrrrrr rrcskSrWrrrrr rrcskSrWrrrrr rrcskSrWrrrrr rrcskSrWrrrrr rrcskSrWrrrrr rrcskSrWrrrrr rrTr"r)rCFr)rrrrBrrsrrkrlr*__eq__rCrrrrrw)r+Z different_dayZ as_differentZdate_scZ datetime_scrrr test_bug_1028306s:     zOddballs.test_bug_1028306c CsJtttttttfD] }|t  d|_ W5QRXq$dSrE) rrrrrrrrrkAttributeErrorr$)r+rsrrr test_extra_attributess zOddballs.test_extra_attributesc CsGddd}tdtd|dfD]F}|t2|tdddddddt|||||||W5QRXq(|tdtdddW5QRX|d}|tdtdd|W5QRXGd d d t}|d}|td tdd|W5QRX| ttd ddW5QRX| ttdd dW5QRX| ttddd W5QRX| ttdddd W5QRX| ttddddd W5QRX| ttdddddd W5QRX| ttddddddd W5QRXdS) Nc@seZdZddZddZdS)z-Oddballs.test_check_arg_types..NumbercSs ||_dSrWvalue)r+rrrr rVsz6Oddballs.test_check_arg_types..Number.__init__cSs|jSrWrrYrrr __int__sz5Oddballs.test_check_arg_types..Number.__int__N)r4rHrIrVrrrrr Numbersrr#z10.9z)^an integer is required \(got type str\)$Z10g%@z)^__int__ returned non-int \(type float\)$c@s eZdZdS)z,Oddballs.test_check_arg_types..FloatNrXrrrr Floatsrz&^integer argument expected, got float$g$@) decimalZDecimalZ assertWarnsDeprecationWarningr*rrrlryrk)r+rZxxZf10rZs10rrr test_check_arg_typess@        zOddballs.test_check_arg_typesN)r4rHrIrrrrrrr rs% rc@seZdZddZdS)tzinfo2cCst|tstd|j|k r$td|jdd}|jdd}|dks`|dks`|dkrdt||kr||}|}||kr|S||fD]@}||}||kr|S|jdd}||kr|SqtddS)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfrrr"NzNo suitable local time found)rOrrlrrrr]r_)r+r\Zoff0Zoff1ldtZoffrrr rs*       ztzinfo2.fromutcNrrrrr rsrc@s4eZdZddZddZddZddZd d Zd S) USTimeZone2cCs"t|d|_||_||_||_dSrrrrrr rV)s zUSTimeZone2.__init__cCs|jSrWrrYrrr rZ/szUSTimeZone2.__repr__cCs||r|jS|jSdSrWrr[rrr r^2s zUSTimeZone2.tznamecCs|j||SrWrr[rrr r]8szUSTimeZone2.utcoffsetcCs|dks|jdkrtS|j|ks$tttj|jd}|dkrV|jdkrV|j dksZttt j|jd}|dkr|jdkr|j dkst|jdd}|t |kr|krnnt S||kr|t krnn|j rtSt S||kr|t krnn|j rt StStSdSr) rrrrrrrrrrCrrrrrrr r_;s$$  zUSTimeZone2.dstNrrrrr r's rEastern2Central2 Mountain2Pacific2c@s<eZdZddZddZddZddZd d Zd d Zd S)Europe_Vilnius_1941cCs$tdddd|dtdddd|dgS)NrErrhrrrrYrrr _utc_foldlszEurope_Vilnius_1941._utc_foldcCs$tdddd|dtdddd|dgS)NrrErrrrrrYrrr _loc_foldpszEurope_Vilnius_1941._loc_foldcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nr=rArrrr+r\Z fold_startZ fold_stoprrr r]ts  zEurope_Vilnius_1941.utcoffsetcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nrr"rrrrr r_}s  zEurope_Vilnius_1941.dstcCs.|\}}||krdS||kr*d|jSdS)NMSK)rCESTr)rrrrrr r^s   zEurope_Vilnius_1941.tznamecCsr|jdkst|j|kst|jdkr*t|\}}||krJ|dtS||krf|dtjddS|dtS)Nrrr=rAr"r)rrrrrprrrrrrr rs   zEurope_Vilnius_1941.fromutcN) r4rHrIrrr]r_r^rrrrr rks    rc@seZdZddZddZddZddZd d Zd d Zd dZ e dddZ e dddZ ddZe dddZe dddZe dddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/S)0TestLocalTimeDisambiguationc Cst}tddddddtjd}||}||dd||jd || tdddd tjd}||}||dd ||jd | | tdddd tjd}||}||dd||jd | | dS)NrrErrrrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrhz"Mon Jun 23 23:00:00 1941 CEST+0200r"rz"Tue Jun 24 00:00:00 1941 CEST+0200) rrrrrr*rrrr_rs)r+Vilniusgdtrrrr test_vilnius_1941_fromutcs,      z5TestLocalTimeDisambiguation.test_vilnius_1941_fromutcc Cst}tdddddd|d}|tj}||ddtdddddd|d}|tj}||dd tdddddd|d d }|tj}||dd tddd d|d}|tj}||dddS)NrrErrrrz%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr")rrzMon Jun 23 21:59:59 1941 UTCrrzMon Jun 23 22:00:00 1941 UTC)rrrrrr*r)r+rrrrrr test_vilnius_1941_toutcs*        z3TestLocalTimeDisambiguation.test_vilnius_1941_toutcc Csdtddd}tddddd}||jd||jd|ttddddddW5QRXdSNrr"r)rrr*rrkrlr+rr\rrr test_constructorss   z-TestLocalTimeDisambiguation.test_constructorscCs@tddddd}|}||jd|}||jddS)Nr"r)rrr*rr9)r+r\rrrr test_members z'TestLocalTimeDisambiguation.test_memberc CsTtd}tddd}||jddjd||jddjd||jddjd||jddjd|jdtd}|jdtd}||jddjd||jddjd|t|jddW5QRX|t|jddW5QRX|t|dddddW5QRX|t |ddddddddd W5QRXdS)Nrr"r)rrrrA) rrr*rrrrkrrlrrrr r)s$     z(TestLocalTimeDisambiguation.test_replacecCs@td}tddd}|||jdd|||jdddSr)rrr*rrrrr rs z+TestLocalTimeDisambiguation.test_comparisoncCsPtd}tddd}|t|t|jdd|t|t|jdddSr)rrr*r#rrrrr test_hashs z%TestLocalTimeDisambiguation.test_hashrcCs<d}t|}t|d}||jd||jddS)NiXUTrrr")rrr*r)r+r:dt0rmrrr rs  z.TestLocalTimeDisambiguation.test_fromtimestampzAustralia/Lord_HowecCsltd}td|dkr$|dd}t|}t|d}|||||jd||jddS) NA%Z%z LHST+1030>Australia/Lord_Howe timezone is not supported on this platformiUrr")rrrr5rrr*r)r+tmr:rrrrr test_fromtimestamp_lord_howes    z8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howecCs|tdjddSr)r*rrrrYrrr %test_fromtimestamp_low_fold_detectionszATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectioncCs8tddddd}|jdd}||d|dS)NrgrirAr"rfrr)rrr*rC)r+rrmrrr test_timestamps  z*TestLocalTimeDisambiguation.test_timestampcCshtd}td|dkr$|dtddddd }|jd d }|jdd }||d |dS) Nrrrrr rCr>r"rrrr)rrrr5rrrCr*)r+rrs0s1rrr test_timestamp_lord_howe$s  z4TestLocalTimeDisambiguation.test_timestamp_lord_howecCs|tddddd}|jdd}|}|}||d||d||t|||jd ||jd dS) NrgrirAr"rfrrrr)rrrr*r^rr)r+rrmZadt0Zadt1rrr r.s z+TestLocalTimeDisambiguation.test_astimezonec Csztdd}tddddd}tD]V\}}}||fD]B}|||}||}|||||dkrfdn|j|jq0qdS)Nr"rrCr)rrr|r}r~r*r) r+rr\rrrrsr:rrrr test_pickle_fold=s     z,TestLocalTimeDisambiguation.test_pickle_foldcCs>tdd}tddddd}|t|d|t|ddS)Nr"rzdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr*rrrrr rGs   z%TestLocalTimeDisambiguation.test_reprc Cs tddddtdtj}tddddtd}||t||t||jddt||jddtdD]@}tdddd|td}||t||jddtq~dD]@}tdd d d|td}||t||jddtqdS) Nrr#r r"rrArrrCr@) rrrr<r*r_rrr)r+ dt_summer dt_winterrlr\rrr rNsz$TestLocalTimeDisambiguation.test_dstcCstddddtdtj}tddddtd}||dt||dt||jdd dt||jdd dtdS) Nrr#r r"rrArDrr)rrrr<r*r]rr)r+rrrrr ris z*TestLocalTimeDisambiguation.test_utcoffsetc Csttddddtdtj}tddddtd}t|}t|}|||dt|||dt||jd ||jd tddddd td}t|}|t7}t|}|||||jd ||jd tdddd d td}t|}||j|j fd tddddd td}t|}||j|j fd tddddd td}t|}||j|j fddS)Nrr#r rErr@rCr>rrfr")rrh)r r"rA)rErh) rrrr<rr*rrrCr) r+Zu_summerZu_winterZt_summerZt_winterrrrrrrr rss0        z(TestLocalTimeDisambiguation.test_fromutccCsLtdddtd}|||tjtdddtd}|||tjdS)Nrr"rrE)rrr*rrrrrrr test_mixed_compare_regularsz6TestLocalTimeDisambiguation.test_mixed_compare_regularcCs<tdddddtd}|tj}||||||dS)Nrr#r r"rrrrrrrr)r+t_foldZ t_fold_utcrrr test_mixed_compare_folds  z3TestLocalTimeDisambiguation.test_mixed_compare_foldcCs<tdddddtd}|tj}||||||dS)NrrCr@rArrr)r+t_gapZ t_gap_utcrrr test_mixed_compare_gaps  z2TestLocalTimeDisambiguation.test_mixed_compare_gapcCstdddtd}|t|t|jddtdddddtd}tdd d d dtd}|t|t|jdd|t|t|jdddS) Nrr"rrrr#r rrCr@rA)rrr*r#r)r+rrr rrr test_hash_awares z+TestLocalTimeDisambiguation.test_hash_awareN)r4rHrIrrrrr)rrr rrrrrrrrrrrrrr r r rrrr rs6       !rcCs"t|\}}t|dt||SrW)reteenextr)iterablerrrrr pairss rc@seZdZdZddZeddZeddZedd Z e d d d  Z d d Z ddZddZddZddZed(ddZed)ddZddZddZed*d d!Zd"d#Zd$d%Zd&d'ZdS)+ZoneInfoz/usr/share/zoneinfocCs||_||_||||_dS)z :param ut: array Array of transition point timestamps :param ti: list A list of (offset, isdst, abbr) tuples :return: None N)uttiinvertr)r+rrrrr rVs zZoneInfo.__init__cCstd|td|f}|r|ddt}|dd|7<|dd|7<tdt|D]H}|d|||ddt7<|d|||dt7<q^|S)Nrsrr")rSECrr$)rrrrUrrrr rs$"zZoneInfo.invertc CsH|ddkrtd|dtd}||dtjdkrJ|td}|||dtjdkrt|td }|||dg}t |d D]}| t d |d q||d }t |D]:\}\}} } || |d| } td|| | f||<qdgt|} t |D]\}} || | |<q"||| }|S)NrCZTZifznot a zoneinfo filerjrr=rrrr"z>lbbrErA)readdecoderseekrfromfiler2 byteorderZbyteswaprrstructZunpackrfindrr$)r$ZfileobjZcountsrZ type_indicesZttisrZabbrsZgmtoffisdstZabbrindabbrridxr+rrr rs2     zZoneInfo.fromfilec Cs<tj|j|}t|d}||W5QRSQRXdS)Nrb)ospathjoinzonerootopenr)r$r0r"rrrr fromnames zZoneInfo.fromnamerr"cCst|tstd|j|k r$td||jd|jd|jd|j }||j dkrn|j d}d}nt |j |}|j |d|kst|t|j ks||j |kst|j |d|\}}|d|d}|td||j |dk}||d7}|r|jdd S|Sd S) rrrrrrr"rrArN)rOrrlrrr EPOCHORDINALrrlrkrrbisect bisect_rightrr$rr)r+r\rCZttirrZtti_prevshiftrrr rs0      zZoneInfo.fromutccCs\||jd|jd|jd|j}|j|j}t||}|j t d|d|S)Nrrrrr") rr'rrlrkrrr(r)rro)r+r\rrCrrrrr _find_tis  zZoneInfo._find_ticCs ||dSrr+r[rrr r]%szZoneInfo.utcoffsetcCs||d}|rtStSrE)r+rr)r+r\rrrr r_(s z ZoneInfo.dstcCs ||dS)NrAr,r[rrr r^0szZoneInfo.tznameNc cs|dkr|j}tj|d}z t|}Wntk r>YdSX|4|D](}|}|rJ|dsJ|dVqJW5QRXdS)Nzzone.tab#rA) r$r!r"r#r%rstripr.r)r$ZzonedirZzone_tabrlinerrr zonenames3s zZoneInfo.zonenamescCsd}}}}tj}}t}} tj} } d} } tj}}d}}t|dd}|D]}|d7}||}|D]\}}||krqx|tkr|d7}||f|| fkr|}|} |} |tj|f|tj| fkr|}|} |} qx|tkrB|d7}| }||f| |fkr|} |}|}|tj|f|tj|fkrJ|}|}|}qx|d7}qxqZ|||f}td|tdt |f|td|| | ftd|| | ftd|||ftd| ||fdS) Nrr"zNumber of zones: %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)z!Min gap: %16s at %s in %sz!Max gap: %16s at %s in %sz!Min fold: %16s at %s in %sz!Max fold: %16s at %s in %s) rrorrrr0r& transitionsprintrR)r$ start_yearcountZ gap_countZ fold_countZ zeros_countZmin_gapZmin_foldZmax_gapZmax_foldZmin_gap_datetimeZmax_gap_datetimeZ min_gap_zoneZ max_gap_zoneZmin_fold_datetimeZmax_fold_datetimeZ min_fold_zoneZ max_fold_zoneZ stats_sincezonenamerr\r*Z trans_countsrrr statsBsZ           zZoneInfo.statsccsHtt|j|jD]0\\}}\}}|d|d}t||fVqdSr)rrrrrrr+_Zprev_tirrr*rrr r1ss"zZoneInfo.transitionsccsntt|j|jD]V\\}}\}}|d|d}|tkr|d|dkrt|| |d|dfVqdS)zLFind all folds with the same value of isdst on both sides of the transition.rr"rAN)rrrrrrrr7rrr nondst_foldsxs"zZoneInfo.nondst_foldsFc Csnd}|D]\}||}|D]D\}}}} |j|ks"|rF|| krFq"|d7}td|||||| fq"q dS)Nrr"z%3d) %-30s %s %10s %5s -> %s)r0r&r9rr2) r$Z same_abbrr3r4r5rr\r*Z prev_abbrrrrr print_all_nondst_foldss  zZoneInfo.print_all_nondst_foldsccs*|D]\}}|tkr|| fVqdSrWr1rr+rr*rrr foldsszZoneInfo.foldsccs(|D]\}}|tkr||fVqdSrWr;r<rrr gapssz ZoneInfo.gapsccs |D]\}}|s|VqdSrW)r1r<rrr zerosszZoneInfo.zeros)N)r")Fr")r4rHrIr$rVrTr classmethodrr&rrr'rr+r]r_r^r0r6r1r9r:r=r>r?rrrr rs2   $    0 rc@s8eZdZdZddZddZddZdd Zd d Zd S) ZoneInfoTestzAmerica/New_Yorkc Csbtjdkr|dzt|j|_Wn6tk r\}z|d|j|fW5d}~XYnXdS)Nrz"Skipping zoneinfo tests on WindowszSkipping %s: %s)r2rr5rr&r5rFileNotFoundError)r+errrrr rs   zZoneInfoTest.setUpcCs<||jdd|jt|jf|jdd|jt|jfdS)Nr)r*rridr)r+rrrrr assertEquivDatetimessz!ZoneInfoTest.assertEquivDatetimesc Cs|j}|D]\}}d|d||tjfD]}||}||j|d}||jd|jtj d |}| ||| }||jdd||| | tj |jtj dq.tj |fD]0}||}|j|d}||}||jdqqdS)Nrrrr") rr=rr<rrr*rrrrrEr] r+rr\r*rsudtrZadtr]rrr test_foldss$    zZoneInfoTest.test_foldsc Cs.|j}|D]\}}d|d||tjfD]}||}|j|d}||}||jd|jtj d |}| ||| }||jdd|jdd|||j|d||}| |jdd |jdd d|q0tj |fD],}||}||j|d}||jdqqdS)Nrrrr"rzAt %s.)rr>rr<rrr*rrrrrEr]Z assertLessrFrrr test_gapss(    zZoneInfoTest.test_gapsc Csd|jks|jdr&|d|j|j}tjd}|jtjd<zt| D]\}}|j dkrpqR|t dddt }|t }dd d d |d|d |d fD]J}||}t |} t ||jdd} || | | } ||| q|d krXt ||d} | } | jdd}|| ||d||||dqXW5|dkrjtjd=n |tjd<tXdS)NZRiyadh8zright/z Skipping %sTZirr"iirri@i2rrAr)r5r.r5rr!environgetrtzsetr1rrrrrrErCr*)r+rrJrGr*rrgrsr:ZsdtZtzdtrr\Zts0Zts1rrr test_system_transitionssF          z$ZoneInfoTest.test_system_transitionsN) r4rHrIr5rrErHrIrNrrrr rAs rAcseZdZfddZZS)ZoneInfoCompleteTestcshg}tdrXtD]B}td|tfi}||_t|D]}|dr8|||q8qt |dS)NZtzdatazZoneInfoTest[%s]Ztest_) r rr0r{rAr5r7r.rsuperrV)r+r`r0ZTestmethodr3rr rVs   zZoneInfoCompleteTest.__init__)r4rHrIrV __classcell__rrrRr rOsrOc@seZdZdZdS)IranTestz Asia/TehranN)r4rHrIr5rrrr rTsrTc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$CapiTestcCs$|jjdr|dtdS)NZPurezNot relevant in pure Python)r3r4r/r5 _testcapiZtest_datetime_capirYrrr rs zCapiTest.setUpc Cs>dD]4}t|}|j|d||tjW5QRXqdS)NTF) use_macro)rVZget_timezone_utc_capirrzrr)r+rXZcapi_utcrrr test_utc_capis zCapiTest.test_utc_capic Cst\}}}ttddd}ttdd}d||fd||fd||fg}|D]\}}} |j|dz||| tdd d |d } tdd d | d } || | || | tdd d d tjd } || tj| W5QRXqLdS) Nrrrest_capi est_macro est_macro_nn)r0rrArCrr>) rVZmake_timezones_capirrrr*rr^rr) r+rZr[r\Z exp_namedZ exp_unnamedcasesr0Ztz_actZtz_exprmrrrrr test_timezones_capi&s   zCapiTest.test_timezones_capic Cst\}}}|jdd||tjW5QRX|jdd||tjW5QRX|jddp||tjttddd}|||t dd d |d }t dd d |d }||||| | W5QRXdS) Nutc0)Ztestnameutc1non_utcrrrrrArCr) rVZget_timezones_offset_zerorrzrrrrr*rr^)r+r_r`raZ non_utc_exprmrrrr test_timezones_offset_zero@s  z#CapiTest.test_timezones_offset_zeroc CsGdddt}tddd}|ddd}tddd}tj}||||||||||||d|||d|||dttddtdt j t ddg}|D]8}d D].}|j ||d ||||W5QRXqqdS) Nc@s eZdZdS)z.CapiTest.test_check_date..DateSubclassNrXrrrr rYWsrYr"T 2011-01-01rrrWargexact) rrrVZdatetime_check_datersrrurtrrrrr) r+rYr%Zdsr\Zis_daterrfrgrrr test_check_dateVs(    zCapiTest.test_check_datec CsGdddt}tdd}|dd}tj}|||||||||d|||dttddtdtj t dddg}|D]8}d D].}|j ||d ||||W5QRXqqdS) Nc@s eZdZdS)z.CapiTest.test_check_time..TimeSubclassNrXrrrr r"ssr"rrfTr"rdrcrWre) rrVZdatetime_check_timersrrurtrrrrr)r+r"rrZis_timerrfrgrrr test_check_timers"    zCapiTest.test_check_timec CsGdddt}tddddd}|ddddd}tj}|||||||||d|||dttddtdtj t dddg}|D]8}d D].}|j ||d ||||W5QRXqqdS) Nc@s eZdZdS)z6CapiTest.test_check_datetime..DateTimeSubclassNrXrrrr resrercr"rrfTrdrWre) rrVZdatetime_check_datetimersrrurtrrrrr)r+rer\rZ is_datetimerrfrgrrr test_check_datetimes"  zCapiTest.test_check_datetimec CsGdddt}td}|d}tj}|||||||||d|||dttddtjt dddt dddg}|D]8}dD].}|j ||d||||W5QRXqqdS) Nc@s eZdZdS)z4CapiTest.test_check_delta..TimeDeltaSubclassNrXrrrr TimeDeltaSubclasssrkr"TrdrcrWre) rrVZdatetime_check_deltarsrrurtrrrrr)r+rkrZtdsZ is_timedeltarrfrgrrr test_check_deltas"  zCapiTest.test_check_deltac CsGdddt}t}|}ttdd}tj}||||||||||||d|||d|||dttddt dddt dddg}|D]8}d D].}|j ||d ||||W5QRXqqdS) Nc@s eZdZdS)z2CapiTest.test_check_tzinfo..TZInfoSubclassNrXrrrr TZInfoSubclasssrmrrTr"rdrcrWre) rrrrVZdatetime_check_tzinforsrrurtrrr) r+rmrZtzisrZ is_tzinforrfrgrrr test_check_tzinfos&  zCapiTest.test_check_tzinfoc CsTtddd}dD]>}|j|d(t||j|j|j}|||W5QRXqdS)Nrnrrr"macro)rrrVZget_date_fromdaterrrCr*r+exp_daterr c_api_daterrr test_date_from_dates zCapiTest.test_date_from_datec Csltddddddd}dD]N}|j|d 8t||j|j|j|j|j|j |j }| ||W5QRXqdS) Nrornrrr7韆rprq) rrrVZget_datetime_fromdateandtimerrrCrrlrkrr*rsrrr test_datetime_from_dateandtimes z'CapiTest.test_datetime_from_dateandtimecCstddddddd}dD]n}dD]d}|j||d Lt||j|j|j|j|j|j |j |j }| ||| |j |j W5QRXq qdS) Nrornrrrrwrxrprrr) rrrVZ#get_datetime_fromdateandtimeandfoldrrrCrrlrkrrr*)r+rtrrrrurrr %test_datetime_from_dateandtimeandfolds" z.CapiTest.test_datetime_from_dateandtimeandfoldc CsZtdddd}dD]B}|j|d,t||j|j|j|j}|||W5QRXqdS)Nrrrwrxrprq) rrrVZget_time_fromtimerrlrkrr*)r+exp_timerr c_api_timerrr test_time_from_timeszCapiTest.test_time_from_timec Csztdddd}dD]b}dD]X}|j||d@t||j|j|j|j|j}| ||| |j|jW5QRXqqdS)Nrrrwrxrprz) rrrVZget_time_fromtimeandfoldrrlrkrrr*)r+r|rrrr}rrr test_time_from_timeandfolds z#CapiTest.test_time_from_timeandfoldc CsTtddd}dD]>}|j|d(t||j|j|j}|||W5QRXqdS)Nrrwrxrprq)rrrVZget_delta_fromdsurrrr*)r+Z exp_deltarrZ c_api_deltarrr test_delta_from_dsu.s zCapiTest.test_delta_from_dsuc CsZtddd}dD]@}|j|d*tt||}||tdddW5QRXqdS)NrCrrprq)rrCrrVZget_date_fromtimestamprPr*r)r+rrrr%rrr test_date_from_timestamp;s z!CapiTest.test_date_from_timestampc Csdddttdddfddd ttdddfg}tj}|D]f}d D]\}|j||d D|\}}}t|d |i}t|} || |||} ||| W5QRXqBq:dS) N)rrCrNF)rNTrr"rT)rrCrrrfNF)rNTrrp)caserrr) rrrVZget_datetime_fromtimestamprrrPrCr*) r+r]rrrrZdtuprZusetzZdt_origrr\rrr test_datetime_from_timestampDs    z%CapiTest.test_datetime_from_timestampN)r4rHrIrrYr^rbrhrirjrlrnrvryr{r~rrrrrrrr rUs"    rUcCs|t|SrW)ZaddTestrO)loaderZstandard_testspatternrrr load_tests[s r__main__)mrrer(rrr2r!rrdr rrroperatorrrrrrrr r r Ztestr Z test.supportr rrrrr)rrrrrrrrrVrr~Z_loadsrrrr|r$rr-ryrFrZTestCaser'rJr`rcrfrrrrrrrwrxrrrr(rMrlrrrrrrrrrrrrrrrrrrrrrrrrrrrrAZ TestSuiterOrTrUrr4mainrrrr s ,       2_A3=!K\"<   *  c"32 gi H