B j^qG^@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) timedelta)tzinfo)time)timezone)datedatetimecCsg|]}tt|fqS)pickle).0protorr8/opt/alt/python37/lib64/python3.7/test/datetimetester.py )sr g@A@abcrinfnanc@s$eZdZddZddZddZdS) TestModulecCs$t}||jd||jddS)Nri')datetime_module assertEqualrr)selfrrrrtest_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 Fsz/TestModule.test_name_cleanup..rrrrZ datetime_CAPIrrrrsys) __class____name__skipTestr%setdirr&)r'rnamesZallowedrrrtest_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 implementationiir i)r/r0r1r%Z_divide_and_roundr&)r'Zdarrrrtest_divide_and_roundMs"  z TestModule.test_divide_and_roundN)r0 __module__ __qualname__r(r5r@rrrrr$:s r$c@s6eZdZd ddZddZddZdd Zd d Zd S) FixedOffset*cCs>t|trt|d}t|tr(t|d}||_||_||_dS)N)minutes) isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffset)r'offsetr, dstoffsetrrr__init__ns    zFixedOffset.__init__cCs |jS)N)rIlower)r'rrr__repr__vszFixedOffset.__repr__cCs|jS)N)rH)r'dtrrr utcoffsetxszFixedOffset.utcoffsetcCs|jS)N)rI)r'rPrrrtznamezszFixedOffset.tznamecCs|jS)N)rJ)r'rPrrrdst|szFixedOffset.dstN)rD)r0rArBrMrOrQrRrSrrrrrCls  rCc@seZdZdddZddZdS)PicklableFixedOffsetNcCst||||dS)N)rCrM)r'rKr,rLrrrrMszPicklableFixedOffset.__init__cCs|jS)N)__dict__)r'rrr __getstate__sz!PicklableFixedOffset.__getstate__)NNN)r0rArBrMrVrrrrrTs rTc@seZdZddZdS)_TZInfocCstS)N)random)r'r%rrrrQsz_TZInfo.utcoffsetN)r0rArBrQrrrrrWsrWc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestTZInfoc Cs>t}tddddddd|}|t|WdQRXdS)Nir; r8r)rWr assertRaises TypeErrorrQ)r'Ztz1dt1rrrtest_refcnt_crash_bug_22044s z&TestTZInfo.test_refcnt_crash_bug_22044cCs@t}tj}|t|j||t|j||t|j|dS)N)rrmaxr]NotImplementedErrorrRrQrS)r'ZuselessrPrrrtest_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||_||_dS)N)Z_NotEnough__offsetZ_NotEnough__name)r'rKr,rrrrMszBTestTZInfo.test_subclass_must_override..NotEnough.__init__N)r0rArBrMrrrr NotEnoughsrdr8ZNotByALongShot) r assertTrue issubclassassertIsInstancernowr]rbrRrQrS)r'rdrrPrrrtest_subclass_must_overrides  z&TestTZInfo.test_subclass_must_overridecCsrtdd}||txVtdfD]F}|||tdd|||d|| |tddq$WdS)Nr8ZThree)rErD) rCrgrrrhr&rQrrRrS)r'ZforPrrr test_normals   zTestTZInfo.test_normalcCsXtt}|t|tx8tD]0\}}}|||}||}|t|tq WdS)N)r__new__assertIstypepickle_choicesdumpsloads)r'origpickler unpicklerrgreenderivedrrrtest_pickling_bases    zTestTZInfo.test_pickling_basec Cstdd}xt|dfft|fft|dffgD]\}}||}|d}||t|t|||| d|||d|xht D]`\}}}| ||} | | } || t|t| ||| d||| d|qWq,WdS)Ni)rEcookieEST) rrTrrRrgrrlrmr&rQrnrorp) r'rKZotypeargsrqZonamerrrsrrtrurrrtest_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. csS)Nr)r'rP) DSTOFFSETrrrQsz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsetcsS)Nr)r'rP)DSTDIFFrrrSsz4TestTZInfo.test_issue23600..UKSummerTime.dstcSsdS)N UKSummerTimer)r'rPrrrrRsz7TestTZInfo.test_issue23600..UKSummerTime.tznameN)r0rArB__doc__rQrSrRr)r}r|rrr~s  r~ir= )r)rrrfromutcr&rQ)r'r~tzutr)r}r|rtest_issue23600s  zTestTZInfo.test_issue23600N) r0rArBr`rcrirjrvrzrrrrrrYs  rYc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestTimeZonecCs8ttddd|_ttdd d|_tddd|_dS)Ng#@)r{ACDTr9rxir)rrrrxrDT)r'rrrsetUpszTestTimeZone.setUpcCs<x6|j|jtjtjtjgD]}|t||dqWdS)N) rrxrutcminrar&strrR)r'rrrrtest_strszTestTimeZone.test_strcCsBt}x8|j|jtjtjtjgD]}t|}||t |qWdS)N) r%rrxrrrrareprr&eval)r'rrZtzreprrr test_reprs zTestTimeZone.test_reprcCsNtddd}|tjdt|tjd| |tjd|dS)N;)r{rE)rr&rrrQZEROrra)r'limitrrrtest_class_memberss zTestTimeZone.test_class_membersc Csd|tjttd|tjttdd|tjttddx@tddtddgD](}t|}||dtdddq\Wx8tddtdgD]"}|t t||t t| qW|t tdWdQRX|t tdWdQRX|t tt dWdQRX|t tt dWdQRX|t tt dd WdQRXdS) NrUTCr) microseconds)seconds)rErDABCextra) rlrrr assertIsNotr&assertNotEqualrQr] ValueErrorr^r)r'Z subminuterZinvalidrrrtest_constructors&      zTestTimeZone.test_constructorcCs |tjt||jtdS)N)rgrrrrx)r'rrrtest_inheritanceszTestTimeZone.test_inheritancec Cs|j}xDdD]<}|t}||t|||| t| |q W|t|jdWdQRX|t|jdWdQRXdS)N)rg?rr9)rHOURr&rrQr]r^rx)r'dummyhrKrrrtest_utcoffsets   zTestTimeZone.test_utcoffsetc Cs\|tj|j|t|jdWdQRX|t|jdWdQRXdS)Nrr9) assertIsNonerrrSrr]r^rx)r'rrrtest_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 dWdQRX|t|j dWdQRXdS)Nrz UTC-05:00z UTC+09:30g#@z UTC-00:01)rEZXYZuz UTC+01:06:40riz UTC-01:06:40zUTC+01:06:40.000001rzUTC-01:06:40.000001rr9) r&rrrRrrrr]r^rx)r'rrr test_tzname+s$  zTestTimeZone.test_tznamec Cs|ttj|jWdQRX|ttjdWdQRXx\|j|jt gD]J}|jj |d}||}| ||| || ||jj tjdqVWdS)Nz not datetime)r) r]rrrrrr^rxrEasternreplacer&rQ)r'rZutctimelocalrrr test_fromutcAs   zTestTimeZone.test_fromutcc Cs>|tttt|tttt|tdttdtd|tttttkWdQRX|tttth|ttdk| ttdktt}||t k| |t k||t k| |t k||t k| |t k| |t k||t k| |t k||t kdS)Nrrx) rrrrr&r]r^assertInre assertFalserrr)r'rrrrtest_comparisonMs& zTestTimeZone.test_comparisoncCstddd}xrtjtjtjgD]^}||||j|d||||j|d|| ||j|d qWdS)Nr)r) rrrrarr&rRrrQrS)r'rrrrrtest_aware_datetimebs    z TestTimeZone.test_aware_datetimecCsxN|j|jtjtjfD]6}x0tD](\}}}||||}|||q WqWtj }x0tD](\}}}||||}| ||q\WdS)N) rrxrrrarnrpror&rrl)r'rrrrsrtz_copyrrr test_picklemszTestTimeZone.test_picklecCsTx2|j|jtjtjfD]}t|}|||qWtj}t|}|||dS)N) rrxrrracopyr&rrl)r'rrrrr test_copyws   zTestTimeZone.test_copycCsTx2|j|jtjtjfD]}t|}|||qWtj}t|}| ||dS)N) rrxrrrarZdeepcopyr&rrl)r'rrrrr test_deepcopys   zTestTimeZone.test_deepcopyc Cstdddtddddtdddddg}|dd|Dx.|D]&}|jd |d t|WdQRXqBWtd d td d dg}|dd|DxD|D]<}|jd|d $|tt|WdQRXWdQRXqWdS)Nrr)r{rE)r{rEri?B)r{rErrcSsg|] }| qSrr)rdeltarrrrsz7TestTimeZone.test_offset_boundaries..Zgood)Z test_typer)r{r)r{rcSsg|] }| qSrr)rrrrrrsZbad)rextendsubTestrr]r)r'Z time_deltasrZbad_time_deltasrrrtest_offset_boundariess     z#TestTimeZone.test_offset_boundariescCs,|tjt|ttddtdS)Nr)r{)rrrrr)r'rrrtest_comparison_with_tzinfosz(TestTimeZone.test_comparison_with_tzinfoN)r0rArBrrrrrrrrrrrrrrrrrrrrrrs"    rc@seZdZddZddZdS)HarmlessMixedComparisoncCs|ddd}||dk||dk|d|k|d|k||ddg|g|g|ddgg||tk||tk||tk||tk||tk||tk||tk||tk||tk||tkdS)Nrr)theclassrrerrrr)r'merrrtest_harmless_mixed_comparisons"z6HarmlessMixedComparison.test_harmless_mixed_comparisoncs|ddd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d|tfd ddS) NrcsdkS)Nrrr)rrrzGHarmlessMixedComparison.test_harmful_mixed_comparison..csdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrrcsdkS)Nrrr)rrrrr)rr]r^)r'r)rrtest_harmful_mixed_comparisonsz5HarmlessMixedComparison.test_harmful_mixed_comparisonN)r0rArBrrrrrrrsrc@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/d0Zd1d2Zd3S)4 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)weeksdaysr{rEr millisecondsrr)r)r)r)rr;r)r{<)rEi)rg$I$I?gUUUUUU?g?gMbP?)r&r)r'rtdrrrrs& zTestTimeDelta.test_constructorcCsj|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|x2td(d D]$}|||d|t|dqWx2td(d D]$}|||d|t|dqW||dd!d)|d%d||d*d d+|d*d d,|ddd||d*dd|d*dd|ddddS)-Nr;rrir?iDQiriQiX>iQir FiXi'r:irri@i6i@g?x)rr8r<r9r7r)rg~Ϛ?i@g6+1?iS g@gig`""K?-?iɚ;i?Bi>B)r&r__rsub__absrangeround)r'rrabcusirrrtest_computationss   $$zTestTimeDelta.test_computationscstdxddD]\|tfdd|tfdd|tfdd|tfddqWd|tfd d|tfd d|tfd d|tfd d|tfd ddS)NrD)rg?csS)Nrr)rrrrrRrz.csS)Nrr)rrrrrSrcsS)Nrr)rrrrrTrcsS)Nrr)rrrrrUrrcsS)Nrr)rzerorrrZrcsS)Nrr)rrrrr[rcsS)Nrr)rrrrr\rcsdS)Ngrr)rrrr]rcsdS)Nrrr)rrrr^r)rr]r^ZeroDivisionError)r'r)rrrrtest_disallowed_computationsMs z*TestTimeDelta.test_disallowed_computationscCs,td}|t|jt|t|jtdS)NrD)rr]r__mul__NAN __truediv__)r'rrrrtest_disallowed_special`sz%TestTimeDelta.test_disallowed_specialcCsDd\}}}t|||}||j|||j|||j|dS)N)rr;)rr&rrr)r'rrrrrrrtest_basic_attributesfs   z#TestTimeDelta.test_basic_attributescCsxtdd}||dx&dD]}t|d}|||q Wx0dD](}t|d}|||tddqHWdS) Nim)rg8~A)g ˟ $@g ˟ $g~Ϛ?rg.A)r)rr:i)rr)rr& total_seconds)r'rrZmsrrrtest_total_secondsms     z TestTimeDelta.test_total_secondscCs.tddddddd}tdd }|||dS) Ndii8r7rgA)rrr{rErrr)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)Nrii8r7riz )rrr{rErrr;)r1)rrr<)rr&hashlen)r'rrdrrrtest_hash_equalitys  z TestTimeDelta.test_hash_equalitycCsFd}t|}x4tD],\}}}|||}||}|||qWdS)N)r"8)rrnrorpr&)r'ryrqrrrsrrtrurrr test_picklings   zTestTimeDelta.test_picklingcs,tdddtddd}||||k||k||k||k||kxdD]}t|}||k||k||k||k||k||k||k||k||k||k||k||kqpWxtD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfdd|tfddq.WdS)Nr<r8r=))r8r8r8)r<r=r=)r<r8r9FTcskS)Nrr)badargrrrrrz,TestTimeDelta.test_compare..cskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrr)rr&rer OTHERSTUFFr]r^)r'rryr)rrr 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)Nrz1 day, 0:00:00rz-1 day, 0:00:00r<z2 days, 0:00:00r:z-2 days, 0:00:00r:r)r{rErz12:58:59r8r=z2:03:04irr)rr{rErz-210 days, 23:12:34)rz0:00:00.001000)rz0:00:00.000003iɚ;i?B)rr{rErrz999999999 days, 23:59:59.999999)rr&r)r'rrrrrrszTestTimeDelta.test_strcCsd|jj}|t|dd||t|ddd||t|dddd ||t|jd d d ||t|d ||t|jddd||t|jdddd||t|jdddd|dS)Nz datetime.rz %s(days=1)r r<z%s(days=10, seconds=2)iiz,%s(days=-10, seconds=2, microseconds=400000)r)rz%s(seconds=60)z%s(0)r)rz%s(microseconds=100))rrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100))rr0r&r)r'r,rrrrs"        zTestTimeDelta.test_reprcCsxtddddddtddtddd tdd d d fD]Z}t|}||d |dd}t|}|||t|j|j|j}|||q4WdS)Niɚ;rri?B)rr{rErri6e)rr)rrr<r8)rrrz datetime. ) rrrer*rr&rrr)r'rsZtd2rrrtest_roundtrips    zTestTimeDelta.test_roundtripcCs~|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)Ni6eiɚ;iQg~.Arr)rgrrra resolutionrer&)r'rrrtest_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 S)N)rrarrrrrrz-TestTimeDelta.test_overflow..riʚ;geAg#B ;g|=gr{>) rrrr] OverflowError__sub____add__rarr)r'tinyrdayrrr test_overflow s   zTestTimeDelta.test_overflowcCs.td}|t|jt|t|jt dS)Nr)rr]rrINF)r'rrrr_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?rga2U0*Crg~jtX?r<g~jtXr:gƠ>)rgƠg?igi|gtArg?)rg?)r{)rr{gٿgɿg?g?)rr&r)r'rrZ us_per_hourZ us_per_dayrrrtest_microsecond_rounding&s0  z'TestTimeDelta.test_microsecond_roundingcCs&tdd}||j|j|jfddS)Nr)r)riQi?B)rr&rrr)r'rrrrtest_massive_normalizationGs z(TestTimeDelta.test_massive_normalizationcCsR|td|tdd|tddd|tdd|tddS)Nrr)r)rerr)r'rrr 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|jS)N)rrr)r)Trrfrom_tdVsz8TestTimeDelta.test_subclass_timedelta..T.from_tdcSs&|jd|jd|jd}t|S)Nrg @gtA)rrrr)r'sumrrras_hoursZs z9TestTimeDelta.test_subclass_timedelta..T.as_hoursN)r0rArB staticmethodrrr)rrrrUsrr)rrri)rri) rrlrmr&rrrrrr)r'rrt3t4r)rrtest_subclass_timedeltaSs    z%TestTimeDelta.test_subclass_timedeltacCstdddd}tdd}|||d|||dtdd d }tdd }|||d |||dtd }|tt|||tt||dS)Nrr)r{rEr)rgó@ir<)rEr)rEg@r)rr&r]rr r )r'rsecondminutezerotdrrr test_divisionrs   zTestTimeDelta.test_divisioncCstddd}tdd}||}||tddtddd}||}||tddtd}|tt|||tt|d dS) Nr<r )rErr)rE)rr:rr )rr&r]rr r^)r'rrrrrrrtest_remainders   zTestTimeDelta.test_remaindercCstddd}tdd}t||\}}||d||tddtddd}t||\}}||d||tddtd}|tt|||tt|d dS) Nr<r )rErr)rE)rr:rr )rdivmodr&r]rr^)r'rrqrrrrr test_divmods     zTestTimeDelta.test_divmodc Csdd}|tt|dd>WdQRX|tt|dd>WdQRXxTdD]L}|tt||WdQRX|tt||WdQRXq^WdS)NcsGfdddt}|S)NcseZdZfddZdS)zFTestTimeDelta.test_issue31293..get_bad_float..BadFloatcsS)Nr)r') bad_ratiorras_integer_ratioszWTestTimeDelta.test_issue31293..get_bad_float..BadFloat.as_integer_ratioN)r0rArBrr)rrrBadFloatsr)float)rrr)rr get_bad_floatsz4TestTimeDelta.test_issue31293..get_bad_floatri)r)rD)rr<r8)r]r^rr)r'rrrrrtest_issue31293s     zTestTimeDelta.test_issue31293c snGfdddt}GfdddGfdddtx,dD]"|jd yt|d d Wntk r~YnXyt|d d Wntk rYnXyt|d d Wnttfk rYnXytd |d Wnttfk rYnXy|d td Wntk r.YnXytd |d Wntk rZYnXWdQRXqBWdS) Ncs<eZdZfddZfddZfddZfddZd S) z-TestTimeDelta.test_issue31752..BadIntcsS)Nr)r'other)Prodrrrsz5TestTimeDelta.test_issue31752..BadInt.__mul__csS)Nr)r'r)rrr__rmul__sz6TestTimeDelta.test_issue31752..BadInt.__rmul__csS)Nr)r'r)rrr __floordiv__sz:TestTimeDelta.test_issue31752..BadInt.__floordiv__csS)Nr)r'r)rrr __rfloordiv__sz;TestTimeDelta.test_issue31752..BadInt.__rfloordiv__N)r0rArBrrr r!r)rrrBadInts   r"cs$eZdZfddZfddZdS)z+TestTimeDelta.test_issue31752..ProdcsS)Nr)r'r)Sumrrrsz3TestTimeDelta.test_issue31752..Prod.__add__csS)Nr)r'r)r#rr__radd__sz4TestTimeDelta.test_issue31752..Prod.__radd__N)r0rArBrr$r)r#rrrs rcseZdZfddZdS)z*TestTimeDelta.test_issue31752..SumcsS)Nr)r'r) divmodresultrr __divmod__sz5TestTimeDelta.test_issue31752..Sum.__divmod__N)r0rArBr&r)r%rrr#sr#)Nr)rrr<)rr)r%r)r)r{)r)rGrrr^r)r'r"r)rr#r%rtest_issue31752s: zTestTimeDelta.test_issue31752N) r0rArBrrrrrr Zrequires_IEEE_754rrrrrrrrrrrrrrrrr rrrrr'rrrrrs4S  ( !rc@seZdZddZdS) TestDateOnlycCstddd}tdddddd}t|j}||td||}||||||}||||||}||||| }t|j}||td||}||||||}||||||}||||dS) Nirr<r8r=r9)rr{rErrr:)rrrr&)r'rPrrdt2rrrtest_delta_non_days_ignoreds(    z(TestDateOnly.test_delta_non_days_ignoredN)r0rArBr*rrrrr(sr(c@seZdZdZdS) SubclassDaterN)r0rArBsub_varrrrrr+sr+c@s@eZdZeZddZddZddZddZd 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*dMS)NTestDatecCs<|ddd}||jd||jd||jddS)Nir8r)rr&yearmonthr)r'rPrrrrszTestDate.test_basic_attributescCs~xx|ddd|jfD]\}t|}||d|dd}t|}|||||j|j|j }|||qWdS)Nrr<r8z datetime.r) rtodayrrer*rr&r.r/r)r'rPrr)rrrr s  zTestDate.test_roundtripc CsxdD]\}}}}||||}||||j|}|||t|dr||jd||jd||jd||jdqWxt t t ddD]|}||dd}|}|j|}||||dkr|j|d}||ddd}||||||dqWdddd dd ddd dd dg }xd D]\}} ||dd}xt t dd |D]v\} } | d kr| r| d7} xRt d| dD]@} ||| | }||||||j||d7}qWqnWqBWdS) N))rrrr)rrrim)r<rrin)ir[ri hourrrr;rrr ))iT)iF r<) rr& toordinal fromordinalhasattrr1rr microsecondrrrzip) r'ymrnZfromordr.d2ZdimZisleapr/Zmaxdayrrrrtest_ordinal_conversions.s>      z!TestDate.test_ordinal_conversionscs|jj|jjj}|||t fddt dd}||d|||jd|jj |jjj}|||t fddt dd}||d|||jddS)NcsdS)Nr)r5r)raordrrrdrz0TestDate.test_extreme_ordinals..r)rcsdS)Nr)r5r)rr>rrrpr) rrr.r/rr4r5r&r]rrra)r'rr)rr>rtest_extreme_ordinals]s$    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)Nrirrr3r<ii` r ii4ilr\)rrrr]r)r'rrrtest_bad_constructor_argumentsvs"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)Nirrrr<i)rr&rr)r'redicrrrrs$  zTestDate.test_hash_equalityc s6|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 ||||||| | ||| | |||||||xfdD]^|t fdd|t fdd|t fdd|t fddq&W|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdddS)Nirriir<iAr=rr;r8rr4i)rg?csS)Nrr)rrrrrrz,TestDate.test_computations..csS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrrcsS)Nrr)rrrrrcsS)Nrr)rrrrrcsS)Nrr)rrrrr) rr&rrrrrrr]r^)r'rrdiffweekr)rrrrrsP zTestDate.test_computationscCs|jj}x|tdtdgD]p}|jj|}||8}|t|j||t|j| |jj|}||7}|t|j||t|j| qWdS)Nrr<) rrrrr]rrrra)r'rrrPrrrrs  zTestDate.test_overflowc Cshddl}d\}}}||||ddddddf }|j|}||j|||j|||j|dS)Nr)irr r)rmktimer fromtimestampr&r.r/r)r'rr.r/rtsrrrrtest_fromtimestamps  zTestDate.test_fromtimestampcCs$xdD]}|t|jj|qWdS)N)gZbtgZbti)r]rrrH)r'insanerrrtest_insane_fromtimestamps  z"TestDate.test_insane_fromtimestampcCsnddl}xBtdD]6}|j}|}|j|}||kr>P|dqW||krj|j||tddddS)Nrr8g?g?)r)r)rrrr0rHZsleepZassertAlmostEqualr)r'rrr0rIZ todayagainrrr test_todays   zTestDate.test_todayc CsxtdD]}||ddd||||ddd||d||ddd||||ddd||dq WdS)Nr;ir8r=rir<)rr&rweekdayZ isoweekday)r'rrrr test_weekdays "zTestDate.test_weekdaycCs*x"tdD]}|ddd|}||dd|df|dddt|}||dd|df|ddd |}||dd |df|d dd |}||d d|df|d dd t|}||d d|df|ddd|}||dd|dfq WdS)Nr;irrDrr@ir9r<irZr25ir=)rrr& isocalendarr)r'rrrrrtest_isocalendarszTestDate.test_isocalendarcCsd}ttt|}g}xrtdD]f}|d|dd}|d|dd}||dd|dd|ddkr$||q$W|||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 iirri@rrQ) sortedmaprGsplitrrr&rRappend)r'ZISO_LONG_YEARS_TABLEZiso_long_yearsLrrd1rrrtest_iso_long_years0s$zTestDate.test_iso_long_yearscCs"|ddd}||ddS)Nr<r8z 0002-03-02)rr& isoformat)r'rrrrtest_isoformatVszTestDate.test_isoformatcCs"|ddd}||ddS)Nir8r<zSat Mar 2 00:00:00 2002)rr&ctime)r'rrrr test_ctimeZszTestDate.test_ctimec Cs|ddd}||dd||dd||dd|t|j|t|jdd |t|jd ||d d ||d dx0dD](}y||Wqtk rYqXqWy|dWntk rYnX|ddS)Nir8r<zm:%m d:%d y:%yzm:03 d:02 y:05rAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoneZtworDz%mZ03z '%z' '%Z'z'' '')z%e%z%#u%y%mz%f)rr&strftimer]r^rUnicodeEncodeError)r'rfrrr test_strftime^s&  zTestDate.test_strftimecCs||ddd}ytdWntk r:|dYnX||dtd|||dtd|dS)Nir8r<r`z'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r_timerarr1r& timetuple)r'rrrrtest_strftime_trailing_percentsz'TestDate.test_strftime_trailing_percentc Cs|ddd}||dt||td|dWdQRXGddd|j}|ddd}||ddGd d d |j}|ddd}||dt|xNd D]F}|||||||||||||d qWdS) Nirr rzmust be str, not int{c@seZdZddZdS)zTestDate.test_format..AcSsdS)NAr)r'rrr__str__sz'TestDate.test_format..A.__str__N)r0rArBrjrrrrrisric@seZdZddZdS)zTestDate.test_format..BcSsdS)NBr)r' format_specrrrrasz(TestDate.test_format..B.strftimeN)r0rArBrarrrrrksrk)zm:%m d:%d y:%yzm:%m d:%d y:%y H:%H M:%M S:%Sz%z %Z)rr& __format__rassertRaisesRegexr^ra)r'rPrirrkrfmtrrr test_formats   zTestDate.test_formatcCs`t|jtrt}nt}||jj|||jj|||jjt| |jj|jjkdS)N) rfrrrrgrrarrre)r'Zexpected_classrrrrs zTestDate.test_resolution_infocCsz|jj|jj}|jdd|jd|j}tdd|}|||||jj||jj||jj||jjdS)Nrii@Br)rrarrrrrr&)r'bigr;Z justasbigrrrtest_extreme_timedeltas   zTestDate.test_extreme_timedeltac CsxxptdD]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 dq WdS) Nr;irr<rrr\r8=) rrrfr&tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r'rrrrrrtest_timetuples&&..zTestDate.test_timetuplecCs^d}|j|}x4tD],\}}}|||}||}|||qW|||ddS)N)r?r;rr<)rrnrorpr& __reduce__ __reduce_ex__)r'ryrqrrrsrrtrurrrrs   zTestDate.test_picklingcCsPdddg}d}|j|}x2|D]*}x$tD]}||dd}|||q(WqWdS)Ns'cdatetime date (S'\x07\xdf\x0b\x1b' tR.scdatetime date (U tR.scdatetime date U R.)ir[latin1)encoding)r pickle_loadsr&)r'testsryexpecteddatarprurrrtest_compat_unpickles    zTestDate.test_compat_unpicklecs|ddd|ddd}||||k||k||k||k||kxdD]}|j|}||k||k||k||k||k||k||k||k||k||k||k||kqtWxtD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfddq4WdS)Nr<r8r=))r8r8r8)r<r=r=)r<r8r9FTcskS)Nrr)rrrrrrz'TestDate.test_compare..cskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrrcskS)Nrr)rrrrrr)rr&rerrr]r^)r'rryr)rrrrsD    zTestDate.test_comparecs|ddd|dkd|dkd|dkd|dkd|tfdd|tfd dGd d d }||kd|kd|kd|kd|tfd d|tfd ddS)Nir=r9rFTcsdkS)Nrrr)ourrrr'rz-TestDate.test_mixed_compare..csdkS)Nrrr)rrrr(rc@s eZdZdS)z.TestDate.test_mixed_compare..SomeClassN)r0rArBrrrr SomeClass,srcskS)Nrr)rtheirrrr4rcskS)Nrr)rrrrr5r)rr&r]r^)r'rr)rrrtest_mixed_compareszTestDate.test_mixed_comparecCs ||jj||jjdS)N)rerrra)r'rrrr7szTestDate.test_boolcCs^xXdD]P}||dd}|dd|kr||dd|||dd|qWdS)N)rrrcriiirz%Yz%04dz%dz%4Y)rrar&)r'r9rrrrtest_strftime_y2k<s  zTestDate.test_strftime_y2kc Cs|j}dddg}||}|||d}xPdD]H\}}|dd}|||<||}|jf||i} ||| |d7}q2W|ddd}|jt|jdd dS) Nrr<r8r))r.r<)r/r8)rr=ir@i)r.)rr&rr]r) r'clsrybaserr,newvalnewargsrgotrrr test_replaceIs     zTestDate.test_replacecCs:Gddd|j}|ddd}|t|jdd|dS)Nc@s eZdZdS)z4TestDate.test_subclass_replace..DateSubclassN)r0rArBrrrr DateSubclass_sriri)r.)rrlrmr)r'rrPrrrtest_subclass_replace^s zTestDate.test_subclass_replacecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestDate.test_subclass_date..CrDcs0|}|d}jj|f||}||_|S)Nr)rpoprrkr)rrykwstemprresult)r'rrrkjs  z.TestDate.test_subclass_date..C.__new__cSs||j|jS)N)r.r/)r'startrrrnewmethqsz.TestDate.test_subclass_date..C.newmethN)r0rArB theAnswerrkrr)r'rrCgs r)ir=rrr;rDi) rr&r/rrr4rr.r/)r'rryr_r)r)r'rtest_subclass_datees  zTestDate.test_subclass_datec sGfdddj}d}d}d}||}|||jdt|td}d|ffd |ffd |ffg}xx|D]p\}} xf||fD]Z} jt | |d >t | |} | | } | || || jdWdQRXqWqzWdS) NcseZdZfddZdS)zCTestDate.test_subclass_alternate_constructors..DateSubclasscsjj|f||}d|_|S)Nr;)rrkr)rrykwargsr)r'rrrkszKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__N)r0rArBrkr)r'rrrsr)ir=ri( z 2003-04-14r;rr5rH fromisoformat) base_obj_type constr_name) rrgr&rrcombiner timestamprrmgetattr) r'rryZd_ord d_isoformatbase_drI test_casesr constr_argsbase_objconstrrPr)r'r$test_subclass_alternate_constructorss(       z-TestDate.test_subclass_alternate_constructorscCsFd}t|}x4tD],\}}}|||}||}|||qWdS)N)r?r;r)r+rnrorpr&)r'ryrqrrrsrrtrurrrtest_pickling_subclass_dates   z$TestDate.test_pickling_subclass_datec Csd}t|jts|dd}x4dD],}|t|j|dd||ddq"Wt|jtr|td |tdgt|dWdQRXx:tdd D],}||ddt|g|ddqWdS) Ns 1995-03-25r=)9 r<r8z^bad tzinfo state arg$rrxr3) rfrrr]r^rnbytesrr)r'rZ month_byteZord_byterrrtest_backdoor_resistances     " $z!TestDate.test_backdoor_resistancec Csjdddddddg}xR|D]J}|j|}|}|j|d"|j|}|||WdQRXqWdS) N)rrr)ir<r)ilrr)ir<r@)ir[r)ir=r8)ir9r )dt_str)rr[rrr&)r' base_datesdt_tuplerPrdt_rtrrrtest_fromisoformats  zTestDate.test_fromisoformatcCs<Gddd|j}|ddd}||}|||dS)Nc@s eZdZdS)z:TestDate.test_fromisoformat_subclass..DateSubclassN)r0rArBrrrrrsrirr)rrr[rg)r'rrPrrrrtest_fromisoformat_subclasss z$TestDate.test_fromisoformat_subclassc CsNddddddddd d d g }x.|D]&}|t|j|WdQRXq WdS) Nruz 009-03-04Z 123456789z 200a-12-04z 2009-1a-04z 2009-12-0az 2009-01-32z 2009-02-29Z20090228u20090228)r]rrr)r'bad_strsbad_strrrrtest_fromisoformat_failss  z!TestDate.test_fromisoformat_failsc CsLddl}dd|dg}x.|D]&}|t|j|WdQRXqWdS)Nrs 2009-03-01z 2009-03-01)ioStringIOr]r^rr)r'r bad_typesbad_typerrr"test_fromisoformat_fails_typeerrors   z+TestDate.test_fromisoformat_fails_typeerrorN)+r0rArBrrrrr=r?rArrrrJrLrMrOrSrZr\r^rdrgrprrrr}rrrrrrrrrrrrrrrrrrrrr-sN/2   &'    ' ,  r-c@seZdZdZdS)SubclassDatetimerN)r0rArBr,rrrrr src@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:dfS)g TestDateTimecCsx|ddddd}||jd||jd||jd||jd||jd||jd||jddS)Nir8rrr) rr&r.r/rr1rrr7)r'rPrrrrsz"TestDateTime.test_basic_attributesc Cs||ddddddd}||jd||jd||jd||jd||jd||jd||jddS)Nir8rrri@) rr&r.r/rr1rrr7)r'rPrrrtest_basic_attributes_nonzerosz*TestDateTime.test_basic_attributes_nonzeroc Csx|ddddddd|jfD]l}t|}||d|d d}t|}|||||j|j|j |j |j |j |j }|||q"WdS) Nrr<r8r=r9r?r;z datetime.r)rrhrrer*rr&r.r/rr1rrr7)r'rPrr)rrrr)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)(Nrr<r8r=r9rhz0001-02-03T04:05:01.000123r z0001-02-03 04:05:01.000123z0001-02-0304:05:01.000123uu0001-02-0304:05:01.000123r{)timespecz 0001-02-03T04rEz0001-02-03T04:05rz0001-02-03T04:05:01rz0001-02-03T04:05:01.000rauto)seprz0001-02-03 04:05fooiL@)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:00)rZXXXz0002-03-02T00:00:00+00:00:16) rr&r[r]rrrrrCr)r'rrrrrr\9sB zTestDateTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|dddd dd}d}xL|D]D\}}|j|d}||}|j|d||kstWdQRXqWdS)Nz05:00r9)r{z02:00r<z06:27r?r)r{rEz12:32:30rr\r )r{rErz02:04:09.123456r=ri@)r{rErr)rNz+00:00rcSs2g|]*\}}dD]\}}||t||fqqS)))-r)+r)r)rrrprefixsignrrrrusz8TestDateTime.test_isoformat_timezone..ir%z2016-04-01T12:37:09)r)tzi)rrrrrrr[AssertionError) r' tzoffsetstzinfosZdt_baseexp_baseexp_tzrrPexprrrtest_isoformat_timezonees$    z$TestDateTime.test_isoformat_timezonec Cs|ddddddd}||dt||td |dWdQRXGd d d |j}|ddddddd}||dd Gd d d |j}|ddddddd}||dt|xNdD]F}|||||||||||||d qWdS)Nirr r=r9rrhrzmust be str, not intc@seZdZddZdS)z#TestDateTime.test_format..AcSsdS)Nrir)r'rrrrjsz+TestDateTime.test_format..A.__str__N)r0rArBrjrrrrrisric@seZdZddZdS)z#TestDateTime.test_format..BcSsdS)Nrkr)r'rlrrrrasz,TestDateTime.test_format..B.strftimeN)r0rArBrarrrrrksrk)zm:%m d:%d y:%yzm:%m d:%d y:%y H:%H M:%M S:%Sz%z %Z)rr&rmrrnr^ra)r'rPrirrkrrorrrrps zTestDateTime.test_formatc Cshddl}|ddddddd}||d|ddd dddd}|||||dS) Nrir8r<r9rhzSat Mar 2 18:03:05 2002rP)rrr&r]rGrf)r'rrrrrtest_more_ctimes zTestDateTime.test_more_ctimec Cs|dddddd}|dddddd}|dddddd}||||||k|tddd d d d }tdd }||}|||||||kdS) Nir8rrrr rrrri>B)r)rr&rerr)r'r_r)dt3rrrrtest_tz_independent_comparings  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..MyStrcWsdS)Nr)r'ryrrrrszbTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStr.replaceN)r0rArBrrrrrMyStrsrr,)r)r'rPrrrrrRszKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznameN)r0rArBrRrrrrMyTzInfosrir8r<rr,z%Z)rCrr]r^ra)r'rrrrr%test_strftime_with_bad_tzname_replacesz2TestDateTime.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)Nrirrr3r<r@ii` r ii4ilr\rrrrrri?Bi@B)fold)rrrr]rr^)r'rrrrAsT      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) Nirrrr rr<irr9)rr&rr)r'rrBrCrrrrs$  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|||||||xfdD]^|t fdd|t fd d|t fd!d|t fd"dq0W|t fd#d|t fd$d|t fd%d|t fd&d|t fd'd|t fd(d|t fd)d|t fd*ddS)+NirriiAr=rr8r<rr?iir;rr rrrZrrrDiirPr9riX>)rg?csS)Nrr)rrrrrLrz0TestDateTime.test_computations..csS)Nrr)rrrrrMrcsS)Nrr)rrrrrNrcsS)Nrr)rrrrrOrcsS)Nrr)rrrrrRrcsS)Nrr)rrrrrTrcsS)Nrr)rrrrrUrcsS)Nrr)rrrrrVrcsS)Nrr)rrrrrWrcsS)Nrr)rrrrXrcsS)Nrr)rrrrYrcsS)Nrr)rrrr[r) rr&rrrrrrr]r^)r'rrEZmillisecr1rFr)rrrrrsz  " """ zTestDateTime.test_computationscCs^d}|j|}x4tD],\}}}|||}||}|||qW|||ddS)N)r?r;rrrrir<)rrnrorpr&r~r)r'ryrqrrrsrrtrurrrr]s   zTestDateTime.test_picklingc Csr|ddddddd}xVttjdD]D}t||}t|}||jd||jd||j dq&WdS) Nir<r;r0rir) rrrHIGHEST_PROTOCOLrorpr&r.r/r)r'rrrrrrrtest_more_picklingfs  zTestDateTime.test_more_picklingcCsFd}t|}x4tD],\}}}|||}||}|||qWdS)N)r?r;rrrri)rrnrorpr&)r'ryrqrrrsrrtrurrrtest_pickling_subclass_datetimeos   z,TestDateTime.test_pickling_subclass_datetimecCsPdddg}d}|j|}x2|D]*}x$tD]}||dd}|||q(WqWdS)Ns@cdatetime datetime (S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00' tR.s#cdatetime datetime (U  ;tR.s$cdatetime datetime U  ;R.)ir[rrrrir)r)rrr&)r'rryrrrprurrrrws    z!TestDateTime.test_compat_unpicklecCs`dddddddg}|j|}|j|}||||||k|||k|||k|||k|||kxtt|D]}|dd}||d||<|j|}|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||kqWdS) Nir[r@rrri>Br)rr&rerrr)r'ryrrrrrrrtest_more_compares2     zTestDateTime.test_more_comparecCsd||j|j||j|j||j|j||j|j||j |j ||j |j dS)N) r&rtr.rur/rvrrwr1rxrryr)r'rrrrrverify_field_equalitys z"TestDateTime.verify_field_equalitycCs6ddl}|}||}|j|}|||dS)Nr)r localtimerrHr)r'rrIrrrrrrJs   zTestDateTime.test_fromtimestampcCs6ddl}|}||}|j|}|||dS)Nr)rZgmtimerutcfromtimestampr)r'rrIrrrrrtest_utcfromtimestamps   z"TestDateTime.test_utcfromtimestampzEST+05EDT,M3.2.0,M11.1.0c Cs2|ddd}||d|ddddddd}||d|ddd dd }|jdd }||j||tdd ||j||tdd |dd ddd }||j||x\|ddd|d ddgD]<}y |}Wntk rYqX||j||qWdS)Nirg@r<r8r=g6@ir[r )r)r{i'r)rr&rrrHrr)r'rt0rrrrrtest_timestamp_naives&  " z!TestDateTime.test_timestamp_naivec Cs|jdddtjd}||d|jdddddddtjd}||d|jdddddddttd d d d}||d dS) Nir)rgr<r8r=g7@r)r{rxg6@)rrrr&rr)r'rrrrtest_timestamp_awares  z!TestDateTime.test_timestamp_awarezMSK-03c Csxx|jj|jjgD]b}|d}||jd||jd|d}y |d}Wntk rfYn~X||jd||jd|d}||||d}||||d}||||d }||jd||jd |d }||||d }||||d }||jd||jd|d}||jd||jd|d}||jd||jdqWdS)Nrgư>gưri?Bg:0yEg1E2gHzgi#gHz>g1E2>g<"2?gP?rg?i)rrHrr&rr7OSError)r'Zftsrr_Z minus_onerrrrrsD       z&TestDateTime.test_microsecond_roundingc CsZ|jjjtjd}|}y||jj|tjd|Wn4tt fk rl}z| t |Wdd}~XYnX|jj jtjddd}|}||jj|tjd|d}||}| ttf|j|WdQRX| ttf|j|WdQRX||}| ttf|j|WdQRX| ttf|j|WdQRXdS)N)r)rr)rrr7iX)rrrrrrr&rHrrr1rrar]rr)r'Zmin_dtZmin_tsexcZmax_dtZmax_tsrrIrrrtest_timestamp_limits s.     z"TestDateTime.test_timestamp_limitscCs$xdD]}|t|jj|qWdS)N)gZbtgZbti)r]rrrH)r'rKrrrrL= s  z&TestDateTime.test_insane_fromtimestampcCs$xdD]}|t|jj|qWdS)N)gZbtgZbti)r]rrr)r'rKrrrtest_insane_utcfromtimestampF s  z)TestDateTime.test_insane_utcfromtimestampwin32z*Windows doesn't accept negative timestampscCs|jddS)Ng)rrH)r'rrr!test_negative_float_fromtimestampO sz.TestDateTime.test_negative_float_fromtimestampc Cs.|jd}|||ddddddddS) Ngirrrrri~)rrr&)r'rrrr$test_negative_float_utcfromtimestampU s z1TestDateTime.test_negative_float_utcfromtimestampcCshddl}tdd}x)r{EDT)rr=)r{rE)rc@seZdZddZddZdS)z+TestDateTime.test_astimezone..BoguscSsdS)Nr)r'rPrrrrQ7 rz5TestDateTime.test_astimezone..Bogus.utcoffsetcSstdS)Nr)r)r'rPrrrrS8 rz/TestDateTime.test_astimezone..Bogus.dstN)r0rArBrQrSrrrrBogus6 src@seZdZddZddZdS)z/TestDateTime.test_astimezone..AlsoBoguscSstdS)Nr)r)r'rPrrrrQ> rz9TestDateTime.test_astimezone..AlsoBogus.utcoffsetcSsdS)Nr)r'rPrrrrS? rz3TestDateTime.test_astimezone..AlsoBogus.dstN)r0rArBrQrSrrrr AlsoBogus= src@seZdZddZddZdS)z,TestDateTime.test_astimezone..BrokencSsdS)Nrr)r'rPrrrrQD rz6TestDateTime.test_astimezone..Broken.utcoffsetcSsdS)Nrr)r'rPrrrrSE rz0TestDateTime.test_astimezone..Broken.dstN)r0rArBrQrSrrrrBrokenC sr) rrhrCrrrr& astimezoner]r^rr) r'rPrcdt_utcZdt_frZbogrZalsobogrZbrokenZ dt_brokenrrrtest_astimezone* s*    zTestDateTime.test_astimezonecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|j|j ddS)Ncs$eZdZdZfddZddZdS)z.TestDateTime.test_subclass_datetime..CrDcs0|}|d}jj|f||}||_|S)Nr)rrrrkr)rryrrrr)r'rrrkP s  z6TestDateTime.test_subclass_datetime..C.__new__cSs||j|j|jS)N)r.r/r)r'rrrrrW sz6TestDateTime.test_subclass_datetime..C.newmethN)r0rArBrrkrr)r'rrrM s r)ir=rrr3)rr;rDi) rr&r/rrr4rr.r/r)r'rryr_r)r)r'rtest_subclass_datetimeK s   z#TestDateTime.test_subclass_datetimec sGfdddj}d}d}d}||}|||jd|}d|ffd|ffd |ffd |d ffd t|d dt|ddffg}x|D]x\}} xn||fD]b} jt| |dFt | |} | | } | || |j dd| jdWdQRXqWqWdS)NcseZdZfddZdS)zTTestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclasscsjj|f||}d|_|S)Nr;)rrkr)rryrr)r'rrrki sz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__N)r0rArBrkr)r'rrDateTimeSubclassh sr)ir=rrr i@z2003-04-14T12:30:15.123456gh͏TMAr;rHrrrz%Y-%m-%dT%H:%M:%S.%frrr8)rr)r) rrgr&rrrrrrmrr) r'rryrZutc_tsrrIrrrrrrPr)r'r-test_subclass_alternate_constructors_datetimef s,  &    z:TestDateTime.test_subclass_alternate_constructors_datetimec sddddg}ddddgd d g}dtjttd d ttd d gfdd|D}xV|D]N}xH|D]@}|j|d}j|dj|}||WdQRXqhWq^WdS)N)rrr)ilrr)ir[r)ir9r )rrrr)rrrih)rrriG)rr r iGrrr)r{r<cs4g|],}D]"}D]}j||d|iqq qS)r)r)rZ date_tupleZ time_tupler) base_timesr'rrrr sz.)r)r)rrrr[rrrr&)r'r separatorsdtsrPrrrr)rr'rrtest_fromisoformat_datetime s(     z(TestDateTime.test_fromisoformat_datetimec Cs|ddddddd}tddtddtd d d tdd dd tdddddg}|dd|D7}dtjttddg}|dd|D7}xT|D]L}|j|d}|}|j|d"|j|}||kst|WdQRXqWdS)Nirr r ipQr9)r{r<r?r)r{rEr\)r{rErr=ri@)r{rErrcSsg|] }d|qS)rr)rrrrrr sz.rcSsg|] }t|qSr)r)rrrrrr s)r)tstr) rrrrrr[rrr)r'Zbase_dtrrrrPrrrrrtest_fromisoformat_timezone s     z(TestDateTime.test_fromisoformat_timezonec Cszddddddddd g }x^|D]V}|d d d d ddd}|j|d}|j|d|j|}|||WdQRXqWdS)Nrr€uʁuᛇu時u🐍uirrrrriu)r)r)rr[rrr&)r'rrrPrrrrrtest_fromisoformat_separators s   z*TestDateTime.test_fromisoformat_separatorsc Cshddg}xZ|D]R}|ddddd}|j|d}|j|d |j|}|||WdQRXqWdS) Nrrirrrr)r)r)rr[rrr&)r'rrrPrrrrrtest_fromisoformat_ambiguous s   z)TestDateTime.test_fromisoformat_ambiguousc Csddg}dtjttddttddttdddg}d d d d d g}xt|D]\}}x|D]}x|D]}|d krd|dd}|dd|f}|j|dd|d|i} | j|d} |j| d|j| } || | WdQRXqhWq^WqPWdS)N)irr=r rr i@)irr=r rr rr)r{r<r?r)r{rEr{rErrrirr=r)r)r) rrr enumeraterr[rrr&) r'Zdatetime_basesr timespecsiprIrrnew_microsecondsrPrrrrrtest_fromisoformat_timespecs s&      z)TestDateTime.test_fromisoformat_timespecscCsddddddddd d d d d dddddddddddddddg}xF|D]>}|j|d(|t|j|WdQRXWdQRXqBWdS)Nruz 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:00a)r)rr]rrr)r'rrrrr!test_fromisoformat_fails_datetime s@  z.TestDateTime.test_fromisoformat_fails_datetimec Cs6d}|ttt||j|WdQRXdS)Nu2018-01-0301:0113)rnrreescaperrr)r'rrrr"test_fromisoformat_fails_surrogate. sz/TestDateTime.test_fromisoformat_fails_surrogatecCs$d}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)rrrlrrr)r'rrPrrrtest_fromisoformat_utc6 s z#TestDateTime.test_fromisoformat_utcc Cs`Gddd|j}|ddddddd ttd dd d }||}||||||dS) Nc@s eZdZdS)zBTestDateTime.test_fromisoformat_subclass..DateTimeSubclassN)r0rArBrrrrr= srirrrr r ir )r{rE)r)rrrrr[r&rg)r'rrPrrrrr< s  z(TestDateTime.test_fromisoformat_subclassN);r0rArBrrrrrr\rrprrrrArrrrrrrrrJrr run_with_tzrrrrrLrunittestZskipIfr.platformrrrrrrrr r rrrrrrr"r#r(r)r,r-rrrrrrsb  , 5D  !  ))  :""!0# &rc@s"eZdZeZedddZdS)TestSubclassDateTimeznot appropriate for subclassescCsdS)Nr)r'rrrrL sz#TestSubclassDateTime.test_roundtripN)r0rArBrrr/skiprrrrrr1I sr1c@seZdZdZdS) SubclassTimerN)r0rArBr,rrrrr3P sr3c@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-S).TestTimecCsH|dd}||jd||jd||jd||jddS)Nrr)rr&r1rrr7)r'rrrrrW s  zTestTime.test_basic_attributescCsL|dddd}||jd||jd||jd||jddS)Nrri@)rr&r1rrr7)r'rrrrr^ s z&TestTime.test_basic_attributes_nonzerocCsp|dddd}t|}||d|dd}t|}|||||j|j|j|j }|||dS)Nrr<r8r=z datetime.r) rrrer*rr&r1rrr7)r'rrrrrrrg s  zTestTime.test_roundtripcsZddddg}|j||j|}||||k||k||k||k||kxtt|D]}|dd}||d||<|j|}||k||k||k||k||k||k||k||k||k||k||k||kqWxtD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfdd|tfddq\WdS)Nrr<r8r=FTcskS)Nrr)rrrrr rz)TestTime.test_comparing..cskS)Nrr)rrrrr rcskS)Nrr)rrrrr rcskS)Nrr)rrrrr rcskS)Nrr)rrrrr rcskS)Nrr)rrrrr rcskS)Nrr)rrrrr rcskS)Nrr)rrrrr r) rr&rerrrrr]r^)r'ryrrrr)rrrtest_comparingv 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) Nrrrrrri?Bi@B)rr]r)r'rrrrA 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)Nrr rrr<rr9)rr&rr)r'rrBrCrrrr 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)+Nr=r9rrhz04:05:01.000123z00:00:00)r7z00:00:00.000001r z00:00:00.000010rz00:00:00.000100iz00:00:00.001000i'z00:00:00.010000iz00:00:00.100000rrri@)r1rrr7r{)rZ12rEz12:34rz12:34:56rz 12:34:56.123rz12:34:56.123456rZmonkeyuiL@z 12:34:56.999rz 12:34:56.000z12:34:56.000000)rr&r[rr]r)r'rrrrr\ sN      zTestTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|d dd}d}xL|D]D\}}|j|d}||}|j|d||kstWdQRXqWdS)Nz05:00r9)r{z02:00r<z06:27r?r)r{rEz12:32:30rr\r )r{rErz02:04:09.123456r=ri@)r{rErr)rNz+00:00rcSs2g|]*\}}dD]\}}||t||fqqS)))rr)rr)r)rrrrrrrrr sz4TestTime.test_isoformat_timezone..rz12:37:09)r)r)rrrrrrr[r) r'rrZt_baserrrrrrrrr s$    z TestTime.test_isoformat_timezonecCs"|jdd}|jt|jdddS)Nr)rr8)r)rr]r^r[)r'rrrr test_1653736 s zTestTime.test_1653736cCs\|dddd}||dd||ddy|d Wntk rVYnXdS) Nrr<r8r=z %H %M %S %fz01 02 03 000004z '%z' '%Z'z'' ''u%H%M)rr&rarb)r'rrrrrd% szTestTime.test_strftimec Cs|dddd}||dt||td|dWdQRXGdd d |j}|dddd}||dd Gd d d |j}|dddd}||dt|xNd D]F}|||||||||||||d qWdS) Nrr<r8r=rzmust be str, not intrhc@seZdZddZdS)zTestTime.test_format..AcSsdS)Nrir)r'rrrrj: sz'TestTime.test_format..A.__str__N)r0rArBrjrrrrri9 sric@seZdZddZdS)zTestTime.test_format..BcSsdS)Nrkr)r'rlrrrraA sz(TestTime.test_format..B.strftimeN)r0rArBrarrrrrk@ srk)z%H %M %S)rr&rmrrnr^ra)r'rrirrkrrorrrrp1 s zTestTime.test_formatc Cs|t|ddddd|t|ddddd|t|d ddd d |t|d ddd d |t|ddd d ddS)Nrr<r8r=z01:02:03.000004r iz10:02:03.004000riz00:02:03.400000rz12:02:03rrz23:15:00)r&rr)r'rrrrL s zTestTime.test_strc Csd|jj}|t|ddddd||t|ddddd ||t|d ddd d ||t|d ddd d||t|ddd d d|dS)Nz datetime.rr<r8r=z%s(1, 2, 3, 4)r iz%s(10, 2, 3, 4000)riz%s(0, 2, 3, 400000)rz %s(12, 2, 3)rrz %s(23, 15))rr0r&r)r'r,rrrrS s     zTestTime.test_reprcCsN||jj|j||jj|j||jjt||jj|jjkdS)N)rgrrrarrre)r'rrrr` szTestTime.test_resolution_infocCs^d}|j|}x4tD],\}}}|||}||}|||qW|||ddS)N)rrrir<)rrnrorpr&r~r)r'ryrqrrrsrrtrurrrrf s   zTestTime.test_picklingcCsFd}t|}x4tD],\}}}|||}||}|||qWdS)N)rrri)r3rnrorpr&)r'ryrqrrrsrrtrurrrtest_pickling_subclass_timeo s   z$TestTime.test_pickling_subclass_timec Csvddddddg}x`t|D]T\}\}}|j|d6|j|}x$tD]}||dd }|||qDWWdQRXqWdS) N)s,cdatetime time (S'\x14;\x10\x00\x10\x00' tR.)rrri)scdatetime time (U;tR.)rrri)scdatetime time U;R.)rrri)s,cdatetime time (S'\x14;\x19\x00\x10\x00' tR.)rrri)scdatetime time (U;tR.)rrri)scdatetime time U;R.)rrri)rr)r)r$rrrr&)r'rrrryrrprurrrrw s   zTestTime.test_compat_unpicklecCsh|j}||d||dd||ddd||dddd||d||dS)Nrr)rre)r'rrrrr szTestTime.test_boolc Cs|j}ddddg}||}|||d}xPdD]H\}}|dd}|||<||}|jf||i} ||| |d7}q4W|d}|jt|jdd|jt|jd d |jt|jd d |jt|jd ddS)Nrr<r8r=r))r1r9)rr?)rr;)r7r r)r1r)rr)ri@B)r7)rr&rr]r) r'rryrrr,rrrrrrrr s"    zTestTime.test_replacecCs8Gddd|j}|dd}|t|jdd|dS)Nc@s eZdZdS)z4TestTime.test_subclass_replace..TimeSubclassN)r0rArBrrrr TimeSubclass sr8rr r )r1)rrlrmr)r'r8r]rrrr s zTestTime.test_subclass_replacecsGfdddj}d}j|}||ddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestTime.test_subclass_time..CrDcs0|}|d}jj|f||}||_|S)Nr)rrrrkr)rryrrrr)r'rrrk s  z.TestTime.test_subclass_time..C.__new__cSs||j|jS)N)r1r)r'rrrrr sz.TestTime.test_subclass_time..C.newmethN)r0rArBrrkrr)r'rrr s r)r=r9r?rr;rDi) rr&r/rrr[rr1r)r'rryr_r)r)r'rtest_subclass_time s  zTestTime.test_subclass_timec Cspd}x4ddtddfD] }|t|j||ddqW|td |tdgt|dWdQRXdS) Nz2:59.0r9rÿrz^bad tzinfo state arg$rx)chrr]r^rrnrr)r'rZ hour_byterrrr s  z!TestTime.test_backdoor_resistanceN)r0rArBrrrrrr5rArr\rr6rdrprrrrr7rrrrr9rrrrrr4S s. +4    r4c@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)Nrealnoner)r'rPrrrrR rz>TZInfoBase.test_argument_passing..introspective.tznamecSst|r dp ddS)NrDi)rE)r)r'rPrrrrQ szATZInfoBase.test_argument_passing..introspective.utcoffsetN)r0rArBrRrQrSrrrr introspective sr@rr<r8)rr?r>irD)rE)rrrr&rRrrQrS)r'rr@objrrrrtest_argument_passing sz TZInfoBase.test_argument_passingcCsz|j}|jt|dddddGdddt}|jt|ddd|dGdddt}|}|ddd|d}||j|dS)Nrr)rc@seZdZddZddZdS)z3TZInfoBase.test_bad_tzinfo_classes..NiceTrycSsdS)Nr)r'rrrrM rz.NiceTry.__init__cSsdS)Nr)r'rPrrrrQ rz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetN)r0rArBrMrQrrrrNiceTry srCc@seZdZddZddZdS)z5TZInfoBase.test_bad_tzinfo_classes..BetterTrycSsdS)Nr)r'rrrrM rz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__cSsdS)Nr)r'rPrrrrQ rz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffsetN)r0rArBrMrQrrrr BetterTry srD)rr]r^objectrrl)r'rrCrDrrrrrtest_bad_tzinfo_classes sz"TZInfoBase.test_bad_tzinfo_classesc CsGdddt}|j}xdD]\}}|tkrB|ddd||d}n0|tkrf|dddddd||d}n d srtd |rt|}t|d \}}d |d krd pd||f} t|tr|}| t |d| q| t t |qWdS)Nc@seZdZddZddZdS)z6TZInfoBase.test_utc_offset_out_of_bounds..EdgycSst|d|_dS)N)rE)rrK)r'rKrrrrM sz?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__cSs|jS)N)rK)r'rPrrrrQ sz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffsetN)r0rArBrMrQrrrrEdgy srG))i`F)iaT)iT)iFrr<r8)rr?rZ impossiblerz %c%02d:%02drrz01:02:03) rrrrrrrrFtimetzr&rr]r) r'rGrrKZlegitrZaofsrr:tagrrrtest_utc_offset_out_of_bounds s   z(TZInfoBase.test_utc_offset_out_of_boundscCs|j}Gdddt}x^|ddd|ddddd|ddd|dfD].}||||||qDWGdddt}|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..C1cSsdS)Nr)r'rPrrrrQ! rz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetcSsdS)Nr)r'rPrrrrS" rz.TZInfoBase.test_tzinfo_classes..C1.dstcSsdS)Nr)r'rPrrrrR# rz1TZInfoBase.test_tzinfo_classes..C1.tznameN)r0rArBrQrSrRrrrrC1 srKr)rc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C3cSs tddS)Nia)rE)r)r'rPrrrrQ, rz4TZInfoBase.test_tzinfo_classes..C3.utcoffsetcSs tddS)Ni)rE)r)r'rPrrrrS- rz.TZInfoBase.test_tzinfo_classes..C3.dstcSsdS)Nanamer)r'rPrrrrR. rz1TZInfoBase.test_tzinfo_classes..C3.tznameN)r0rArBrQrSrRrrrrC3+ srMia)rEirLc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C4cSsdS)NrLr)r'rPrrrrQ6 rz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetcSsdS)Nr;r)r'rPrrrrS7 rz.TZInfoBase.test_tzinfo_classes..C4.dstcSsdS)Nrr)r'rPrrrrR8 rz1TZInfoBase.test_tzinfo_classes..C4.tznameN)r0rArBrQrSrRrrrrC45 srNc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C6cSs tddS)Ni)r{)r)r'rPrrrrQ@ rz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetcSs tddS)Nr)r{)r)r'rPrrrrSA rz.TZInfoBase.test_tzinfo_classes..C6.dstN)r0rArBrQrSrrrrC6? srOc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C7cSs tddS)Nrs)r)r)r'rPrrrrQH rz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetcSs tddS)Ni)r)r)r'rPrrrrSI rz.TZInfoBase.test_tzinfo_classes..C7.dstN)r0rArBrQrSrrrrC7G srPrs)ri) rrrrQrSrRr&rr]r^r)r'rrKrrMrNrOrPrrrtest_tzinfo_classes s4 zTZInfoBase.test_tzinfo_classesc Cs|j}Gdddt}|ddd|d}|jdd}|jdd}|jd d}xd|||fD]V}xP|||fD]B}x.OperandDependentOffsetcSs$|jdkrt|jdStddSdS)Nr )rEr)rr)r'rrrrrQT s  zGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetN)r0rArBrQrrrrOperandDependentOffsetS srRr rr )rr8)rr[)rrrrr) rrrrrrrrrrr&rr) r'rrRrd0rYr<xr9oprrrrrtest_aware_compareN s8      ( zTZInfoBase.test_aware_compareN)r0rArBrBrFrJrQrVrrrrr= s 0r=c@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdS) TestTimeTZcCsP|}||jd||jd||jd||jd||jdS)Nr)rr&r1rrr7rr)r'rrrr test_empty s 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)6Nirxrrrr:rMETr8r;r)rrr3()r7)r7r)rEzno argscskS)Nrr)r t5rrr rz'TestTimeTZ.test_zones..cskS)Nrr)r r[rrr rz07: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 +0100iaz %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..BadtznamerDcSs|jS)N)r)r'rPrrrrR rz/TestTimeTZ.test_zones..Badtzname.tznameN)r0rArBrrRrrrr Badtzname sr\r<r=z%H:%M:%Sz02:03:04z%Zr6u)rCrr&rrrQrr]r^rRrSrrrr[rrar/r0rr) r'estrmetrrr rZyuckr\rr)r r[r test_zones s             zTestTimeTZ.test_zonescCs|jddddtddd}|jddddtddd}|t|t||jd d d d td dd}|jd dd d tddd}|t|t|dS)Nrrr<r8ir)rirrr?riri)rrCr&r)r'rrrrrtest_hash_edge_cases s zTestTimeTZ.test_hash_edge_casesc Csd}|j|}x4tD],\}}}|||}||}|||qW|||dtdd}|jddd|d}xhtD]`\}}}|||}||}|||||j t|| t dd || dq|W|||ddS) N)rrrir<irwr9r?r;)r)rE) rrnrorpr&r~rrTrgrrQrrR) r'ryrqrrrsrrtrutinforrrr s"       zTestTimeTZ.test_picklingcCsdddg}tdd}|jdddd |d }xl|D]d}x^tD]V}||d d }|||t|||jt||tdd || dq8Wq.WdS)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.irwr9r?r;i@)rr)r)rE) rTrrr&rrgrrQrrR)r'rrarrrprurrrrs    zTestTimeTZ.test_compat_unpicklecCs||j}|dtddd}|||dtddd}|||dtddd}|||ddtd dd}||dS) Nrir)rr9i,rri)rrCre)r'rrrrrtest_more_bool#s   zTestTimeTZ.test_more_boolcCs\|j}tdd}ttddd}dddd |g}||}|||d }x^d d d dd|ffD]H\}}|dd} || |<|| } |jf||i} || | |d7}q^W||d|jdd} || j|| | j|d} ||| ||j| j|d}|j t |jdd|j t |jdd|j t |jdd|j t |jdddS)Nrz+100i8)rEz-200rr<r8r=r)r1r9)rr?)rr;)r7r r)rr)r1r)r)ri@B)r7) rrCrr&rrRrrrlr]r)r'rz100zm200ryrrr,rrrrbase2base3rrrr3s<        zTestTimeTZ.test_replacecCs|ddd}|ddd}||||jdd}||||jtddd}||||jtddd}|||Gdddt}|}|j|d}|j|d}||td d ||td d ||||j|d}|||kdS) Nrr<r8)rrrc@seZdZddZddZdS)z-TestTimeTZ.test_mixed_compare..VariescSstdd|_dS)NrP)rE)rrK)r'rrrrMgsz6TestTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jS)Nr)rE)rKr)r'rrrrrQisz7TestTimeTZ.test_mixed_compare..Varies.utcoffsetN)r0rArBrMrQrrrrVariesfsrgr)rEr) rr&rrCrrrQrre)r'rrrgvrrrrZs$        zTestTimeTZ.test_mixed_comparec Csddg}d}d}d}d}|tt||||7}dtjttddttd d d g}xb|D]Z}xT|D]L}|j|d |i} | } |j| d |j | } | | | WdQRXqdWqZWdS)N)rrrr)rrri?B)rrr)r9r )r=r )rii[ r<)r{r?r)r{rEr)r) list itertoolsproductrrrrr[rrr&) r'Z time_examplesZhhZmmssZusecrZttuprrrt_rtrrrrxs"    zTestTimeTZ.test_fromisoformatc Cs|dddd}tddtddtdd d tdd dd tdd dddg}|dd|D7}dtjttddg}|dd|D7}xT|D]L}|j|d}|}|j|d"|j|}||kst|WdQRXqWdS)Nrr r ipQr9)r{r<r?r)r{rEr\)r{rErr=ri@)r{rErrcSsg|] }d|qS)rr)rrrrrrsz:TestTimeTZ.test_fromisoformat_timezone..rcSsg|] }t|qSr)r)rrrrrrs)r)r) rrrrrr[rrr)r'Z base_timerrrrrrmrrrrs     z&TestTimeTZ.test_fromisoformat_timezonec Csddg}dtjttddttddttdddg}d d d d d g}xt|D]\}}x|D]}x|D]}|d krd|dd}|dd|f}|j|dd|d|i} | j|d} |j| d|j| } || | WdQRXqhWq^WqPWdS)N)r rr i@)r rr rr)r{r<r?r)r{rEr{rErrrirrrr)r)r) rrrr$rr[rrr&) r'Z time_basesrr%r&rIrZt_tupler'rrrmrrrr(s&      z'TestTimeTZ.test_fromisoformat_timespecscCszddddddddd d d d d ddddddddg}xF|D]>}|j|d(|t|j|WdQRXWdQRXq4WdS)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:30a)r)rr]rrr)r'rrrrrrs2  z#TestTimeTZ.test_fromisoformat_failsc CsLddl}dd|dg}x.|D]&}|t|j|WdQRXqWdS)Nrs12:30:45z12:30:45)rrr]r^rr)r'rrrrrrrs   z-TestTimeTZ.test_fromisoformat_fails_typeerrorcCsPGddd|j}|ddddtjd}||}||||||dS)Nc@s eZdZdS)z.TimeSubclassN)r0rArBrrrrr8sr8rrr i)r)rrrrr[r&rg)r'r8ZtscZtsc_rtrrrrs  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..CrDcs0|}|d}jj|f||}||_|S)Nr)rrrrkr)rryrrrr)r'rrrks  z2TestTimeTZ.test_subclass_timetz..C.__new__cSs||j|jS)N)r1r)r'rrrrrsz2TestTimeTZ.test_subclass_timetz..C.newmethN)r0rArBrrkrr)r'rrrs rr=r9r?iirxrrr;rDi) rrCr&r/rrrQrr1r)r'rryr_r)r)r'rtest_subclass_timetzs  zTestTimeTZ.test_subclass_timetzN)r0rArBrrrXr_r`rrrbrrrrr(rrrrorrrrrW s W "'  rWc@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)Nrr<r8r=r9r?r;) rr&r.r/rr1rrr7r)r'rPrrr 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|||tkWdQRXGdddt }|jddd|d|||ddd|Gdddt }|jd d d |d|jd d d tddd|t fdddS)Nrir)rrrrri?Biar<r8r3r)rr)rr7c@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..NaivecSsdS)Nr)r'rPrrrrQVrz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetN)r0rArBrQrrrrNaiveUsrsr9r?r;c@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..BoguscSs tddS)Ni)rE)r)r'rPrrrrQbsz>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsetN)r0rArBrQrrrrrasrcskS)Nrr)rrrrrfrz7TestDateTimeTZ.test_even_more_compare..) rrCrrer&rrr]r^rr)r'rsrr)rrrtest_even_more_compare#sH         z%TestDateTimeTZ.test_even_more_comparec Csd}|j|}x4tD],\}}}|||}||}|||qW|||dtdd}|j|d|i}|jdddtdddd }xhtD]`\}}}|||}||}|||| |j t|| t dd || dqW|||ddS) N)r?r;rrrrir<irwrrrr)r)rE)rrnrorpr&r~rrTrCrgrrQrrR) r'ryrqrrrsrrtrurarrrrhs$       zTestDateTimeTZ.test_picklingcCsdddg}d}tdd}|j|d|i}xf|D]^}xXtD]P}||dd }|||||jt||tdd ||dq8Wq.WdS) 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.)ir[rrrri@irwrr)r)rE) rTrrr&rgrrQrrR)r'rryrarrrprurrrrs     z#TestDateTimeTZ.test_compat_unpicklec Csr|jdddtddd}t||jtdddddd td dd}t||jd d d td dd}|tt|dS) Nrir)rrrrri?Biar9i`)rrCrrr]r)r'rrrrtest_extreme_hashessz"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)NirxrrrrYir8r r;r)rrr3)rEz2002-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)) rCrr&rrQrrRrrr)r'r]rr^rrr rrrrr_s8      zTestDateTimeTZ.test_zonesc CsXtdd}tddd}tdddd|d }t||}||tddddddd|d dS) NrrYir8r=rr i)r)rCrrrrr&)r'r^rrrPrrrr s    zTestDateTimeTZ.test_combinec Csxtdd}|jddddddd|d }||tddd||tdddd||tdddd|d dS) NrrYir8r=rr i)r)rCrr&rrrH)r'r^rPrrrr s  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:30)rcsS)Nrr)rhnowawarerrrrz9TestDateTimeTZ.test_tz_aware_arithmetic..csS)Nrr)rhrvrrrrcsS)Nrr)rhrvrrrrcsS)Nrr)rhrvrrrrcsS)Nrr)rvrrrrrrri.)rrErcsS)Nrr)r nowawareplusrrrriaiZrandomtimezoneirrrri?Brai> )rErirk)rrhrCrrrrrlrr&rHr]r^rrXZ randrangerQrrarrr) r'Ztz55Z timeawareZ nowawareplus2rEZtzrrrrraZmaxdiffZtzaZtzbr)rrhrvrwrtest_tz_aware_arithmeticsP        z'TestDateTimeTZ.test_tz_aware_arithmeticc Cs4|jj}|}tdd}||}||d}||j|j||tdd|t |d|jt |dd|jt ||d|t |||tdd d}xttd d d d dt td d d d gD]j}xdt dD]N}t |} || j|t j|d} | |} t| | tddkrPqW|dqWdS)NrD42)r)rEr)r)rarrrr)r{rEweirdtzr8r )rz0utcnow(), now(tz), or astimezone() may be broken)rrhrCrlrr&rQrr]r^rrrrrrrZfail) r'methroff42anotheragainrrzrrhrZnow2rrrtest_tzinfo_now s,     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)NrrDry)r)rEr)r)raiʚ;i')r{rEr)rrrHrCrlrr&rQrr]r^rrr)r'rr{rIrr|r}r~rZ utcdatetimerQrrrrrrtest_tzinfo_fromtimestampEs*        z(TestDateTimeTZ.test_tzinfo_fromtimestampcCs:|jj}|}tdd}|t|||jt||ddS)NrDry)r)rrrCr]r^)r'r{rr|rrrtest_tzinfo_utcnowhs  z!TestDateTimeTZ.test_tzinfo_utcnowcCsPddl}|jj}|}||}tdd}|t||||jt|||ddS)NrrDry)r)rrrrCr]r^)r'rr{rIrr|rrrtest_tzinfo_utcfromtimestamprs z+TestDateTimeTZ.test_tzinfo_utcfromtimestampc CslGdddt}|j}xdD]\}}|ddddddd||d }|}|d|j|d|j|d|j|d|j|d|j|d|j |d |j |d|j |||j qW| 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}||_dS)N)rE)rFrGrdstvalue)r'rrrrrMs  z:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__cSs|jS)N)r)r'rPrrrrSsz5TestDateTimeTZ.test_tzinfo_timetuple..DST.dstN)r0rArBrMrSrrrrDSTsr))ir)rr)rr)Nrrr rr rZ)rrrTiiaii`)rrrfr&rtrurvrwrxryrzr{r|r]r^r)r'rrrflagrrrrrtest_tzinfo_timetuple~s&""z$TestDateTimeTZ.test_tzinfo_timetuplec sGdddt|j}|t|dddddjGfddd}xdD]}|dd d d d d d|d|d}|}||j|j||j |j ||j |j |d|j |d|j||j|j|||j||tdddd|j|d|jqNW|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}xRtjtjtjgD]>}|j|d} || dd| tjddq&W|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}||_dS)N)rE)rFrGrr)r'rrrrrMs  z6TestDateTimeTZ.test_utctimetuple..DST.__init__cSs|jS)N)r)r'rPrrrrSsz1TestDateTimeTZ.test_utctimetuple..DST.dstN)r)r0rArBrMrSrrrrrs rrr)rcs"eZdZdfdd ZddZdS)z.TestDateTimeTZ.test_utctimetuple..UOFSNcs||t|d|_dS)N)rE)rMruofs)r'rZdofs)rrrrMs z7TestDateTimeTZ.test_utctimetuple..UOFS.__init__cSs|jS)N)r)r'rPrrrrQsz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffset)N)r0rArBrMrQr)rrrUOFSsr)irrNr<r8r rr rZir[r3rc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..NOFScSsdS)Nr)r'rPrrrrQsz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffsetN)r0rArBrQrrrrNOFSsrc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..BOFScSsdS)Nrxr)r'rPrrrrQsz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetN)r0rArBrQrrrrBOFSsrirrri+rirrrri?Bia)#rrr]rbrQZ utctimetupler&r.rtr/rurrvrwrxrryrNrzr4rr{r|rfr^rrrrarrrrrr) r'rrrrrrrrZdtzrZhuger)rrtest_utctimetuplesV     z TestDateTimeTZ.test_utctimetuplec Cstdd}tdd}tdd}tdd}|j}d}xd||||fD]}xd D]}|d d d d dd||d} d|rrdptd} |dk r| pd} | | } | } || |d| || | d|| d|d| || d|d| |t| |d| qLWqBWdS)Nrz+00:00z+03:40iz-03:51rz 0001-02-03)riyrr<r8r=r9r)rz04:05:59z.987001rkuሴr)rCrrRr[r&r)r'rZplusZminusunknownrZdatestrZofsrrZtimestrZofsstrZtailstrZisorrrtest_tzinfo_isoformats$     z$TestDateTimeTZ.test_tzinfo_isoformatc Cs6|j}tdd}ttddd}dddd d d d |g}||}|||d }xddddddddd|ffD]H\}}|dd} || |<|| } |jf||i} || | |d7}qjW||d|jdd} || j|| | j|d} ||| ||j| j|ddd}|j t |jdddS)Nrz+100i8)rEz-200rr<r8r=r9r?r;r)r.r<)r/r8)rr=)r1r9)rr?)rr;)r7r r)rir@i)r.) rrCrr&rrRrrrlr]r)r'rrcrdryrrr,rrrrrerfrrrrs<         zTestDateTimeTZ.test_replacecCsDtdd}tdd}ttdd d}|jj|d}||j||t|j|||j}||j|| | | | | | ||}||j|| | tdd|| }|| |7}|j |d }| | | | | | | ||||j|j| ||dS) NNoner Z44r9)r{Zm300)rr)r)rCrrrhrlrr]rrr&rrrQrrH)r'ZfnoneZf44mZfm5hrPrTrrrrrtest_more_astimezone.s*      z#TestDateTimeTZ.test_more_astimezonercCs4|jtj}||d||||dS)N)rrhrrr&r)r'rPrrrtest_astimezone_default_utcKsz*TestDateTimeTZ.test_astimezone_default_utczEST+05EDT,M3.2.0,M11.1.0cCs|jdddddtjd}|}|||||dd|jdddd dtjd}|}|||||dd dS) Nir[r=r?r )rz%z %Zz -0500 ESTr9z -0400 EDT)rrrrr&ra)r'rPrrrrtest_astimezone_default_easternSs  z.TestDateTimeTZ.test_astimezone_default_easterncCs8tddddtjd}|}|}||j|jdS)Nir[rr9)r)rrrrr&r)r'rrrrrr!test_astimezone_default_near_fold^sz0TestDateTimeTZ.test_astimezone_default_near_foldc Cs|j}Gdddt}|ddddddd |d }|jd d }|jdd }|jdd }xL|||fD]>}x8|||fD]*}||} t|j|jd } || | qpWq`W|ddddddd }|jd |d}|jd|d}|jd|d}x|||fD]}x|||fD]}||} ||ks"||kr@||ks6||kr@td} nT||krX|krfnn td} n.||kr|tdd } n||ksttdd } || | qWqWdS)Nc@seZdZddZdS)zBTestDateTimeTZ.test_aware_subtract..OperandDependentOffsetcSs$|jdkrt|jdStddSdS)Nr )rEr)rr)r'rrrrrQls  zLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetN)r0rArBrQrrrrrRksrRr rr r[rr3r)rr8)r)rE)rrrir)rrrrrr&r) r'rrRrrSrYr<rTr9rrrrrtest_aware_subtractfs6    (     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)Nrr<r8r=r9r?r;)rrrc@seZdZddZddZdS)z1TestDateTimeTZ.test_mixed_compare..VariescSstdd|_dS)NrP)rE)rrK)r'rrrrMsz:TestDateTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jS)Nr)rE)rKr)r'rrrrrQsz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetN)r0rArBrMrQrrrrrgsrgr)rEr) rr&rrCrrrQrre)r'rrrgrhrrrrs$        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..CrDcs0|}|d}jj|f||}||_|S)Nr)rrrrkr)rryrrrr)r'rrrks  z:TestDateTimeTZ.test_subclass_datetimetz..C.__new__cSs||j|jS)N)r1r.)r'rrrrrsz:TestDateTimeTZ.test_subclass_datetimetz..C.newmethN)r0rArBrrkrr)r'rrrs rirrr=r9r?iirxrrr;rDi) rrCr&r/rrrQrr1r.)r'rryr_r)r)r'rtest_subclass_datetimetzs  z'TestDateTimeTZ.test_subclass_datetimetzN)r0rArBrrrqrtrrrur_r r rxrrrrrrrrrr r.rrrrrrrrrrrps2 E%A%#  $P' ,rpcCs d|}|r|t|7}|S)Nr?)rNr)rPZ days_to_gorrrfirst_sunday_on_or_afters  r)rE)r{)rr=r<rc@s4eZdZddZddZddZddZd d Zd S) USTimeZonecCs"t|d|_||_||_||_dS)N)r{)r stdoffsetreprnamestdnamedstname)r'r{rrrrrrrMs zUSTimeZone.__init__cCs|jS)N)r)r'rrrrOszUSTimeZone.__repr__cCs||r|jS|jSdS)N)rSrr)r'rPrrrrRs zUSTimeZone.tznamecCs|j||S)N)rrS)r'rPrrrrQszUSTimeZone.utcoffsetcCs|dks|jdkrtS|j|ks$tttj|jd}|dkrV|jdkrV|j dksZttt j|jd}|dkr|jdkr|j dkst||jddkr|krnnt StSdS)N)r.r?r=r;r r)r) rrrrDSTSTARTrr.rNr/rDSTENDr)r'rPrendrrrrSs$$ zUSTimeZone.dstN)r0rArBrMrOrRrQrSrrrrrs rrrrxriCentralZCSTZCDTiMountainZMSTZMDTiPacificZPSTZPDTri0ZUTCfakec@sdeZdZeddddZeddddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestTimezoneConversionsir=r;r<r rrc Cs||t||||||}||}||kr|jdkr||t|||t|||||n ||||t}||} ||kr|jdkr|| |jdd|t7}||} || |jddn|| |tdS)Nr<rr)r1)r&rSrrrr1rr) r'rPrrdstondstoffasutcthere_and_backZ nexthour_utcZ nexthour_tzrrr checkinsides$      z#TestTimezoneConversions.checkinsidecCsF||t||||||}||}|||dS)N)r&rSrr)r'rPrrrrrrr checkoutsideMs   z$TestTimezoneConversions.checkoutsidec Cs|jj|d}|jj|d}xtddtttddtddfD]x}||||||x*||||fD]}||||||qfW||||x&||||fD]}||||qWq>WdS)N)rr3)rr)rE)r)rrrrDAYrrr)r'rrrrrZduringZoutsiderrrconvert_between_tz_and_utcXs z2TestTimezoneConversions.convert_between_tz_and_utccCsL|tt|tt|tt|tt|tt|ttdS)N)rrutc_realrutc_fake)r'rrr test_easyns      z!TestTimezoneConversions.test_easyc CsZ|jtdd}tddd}|j|d}|jjdd}|tjdd}||||jjd td }|jjd d}|tjdd}|||xttfD]}xtt fD]}|j td d}|| d8}|| d} | j|d} xhd D]`} |j j| d} xDdD]<} | j| d}| j| d} | |}||jdd|qW| t 7} qWqWqWdS)Nr=)r{iz-0900r)rr8)r1r?)r1rrr<)rrrr<)rr r)r) rrrCrrrr&rrrrrQr)r'ZfourbackZninewestrrZsixutcrrZfirst_std_hourrZ asutcbaseZtzhourZ expectedbaserZastzrrr test_trickys0          z#TestTimezoneConversions.test_trickycCsGdddt}|jjtd}||Gddd|}|t|j|Gddd|}|dd d jtd}|t|j|dS) Nc@seZdZddZddZdS)z2TestTimezoneConversions.test_bogus_dst..okcSstS)N)r)r'rPrrrrQrz.ok.utcoffsetcSstS)N)r)r'rPrrrrSrz6TestTimezoneConversions.test_bogus_dst..ok.dstN)r0rArBrQrSrrrroksr)rc@seZdZddZdS)z5TestTimezoneConversions.test_bogus_dst..notokcSsdS)Nr)r'rPrrrrSrz9TestTimezoneConversions.test_bogus_dst..notok.dstN)r0rArBrSrrrrnotoksrc@seZdZddZdS)z.tricky_notokcSs|jdkrdSdtSdS)Nir )r.r)r'rPrrrrSs z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dstN)r0rArBrSrrrr tricky_notoksrir)rrrhrrrr]r)r'rrhrrrPrrrtest_bogus_dsts z&TestTimezoneConversions.test_bogus_dstc Cs|ttjtjtd}|ttj||jtd}t|}| |j t|ttj|||ttjt Gdddt }|dddd}|jjdtd }|j|d}xd D]}|j|d }|d kr|td d8}t|} | || ||j}||} | || |jtd|} | || |t7}|t7}qW|jjdtd }|j|d}x~dD]v}|j|d }t|} | || ||j}||} | || |jtd|} | || |t7}|t7}qhWdS)N)rc@seZdZddZdS)z.FauxUSTimeZonecSs ||jS)N)r)r'rPrrrrszDTestTimezoneConversions.test_fromutc..FauxUSTimeZone.fromutcN)r0rArBrrrrrFauxUSTimeZonesrrFEasternZFESTZFEDTr=)r1r)rrrr8r=r9)r1rr)r)rrrr<r8r=)r]r^rrrrrrrr&rrr0rrrrrrr) r'rhZenowrrrZfstartZwallrrrrrrsL                     z$TestTimezoneConversions.test_fromutcN)r0rArBrrrrrrrrrrrrrrrrs4 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)NcskS)Nrr)as_date as_datetimerrrrz+Oddballs.test_bug_1028306..cskS)Nrr)rrrrr rcskS)Nrr)rrrrr!rcskS)Nrr)rrrrr"rcskS)Nrr)rrrrr#rcskS)Nrr)rrrrr$rcskS)Nrr)rrrrr%rcskS)Nrr)rrrrr&rTrr)rFr)rr0rrrrerr]r^r&__eq__rrr+r.r/r)r'Z different_dayZ as_differentZdate_scZ datetime_scr)rrrtest_bug_1028306s2     zOddballs.test_bug_1028306c CsNxHtttttttgD] }|t  d|_ WdQRXq&WdS)Nr) rr0rrrrrrr]AttributeErrorr!)r'rTrrrtest_extra_attributes;s zOddballs.test_extra_attributesc CsGddd}xNtdtd|dgD]0}|tdddddddt|||||||q*W|tdtdddWdQRX|d}|tdtdd|WdQRXGd d d t}|d}|td tdd|WdQRX|ttd ddWdQRX|ttdd dWdQRX|ttddd WdQRX|ttdddd WdQRX|ttddddd WdQRX|ttdddddd WdQRX|ttddddddd WdQRXdS) Nc@seZdZddZddZdS)z-Oddballs.test_check_arg_types..NumbercSs ||_dS)N)value)r'rrrrrMGsz6Oddballs.test_check_arg_types..Number.__init__cSs|jS)N)r)r'rrr__int__Isz5Oddballs.test_check_arg_types..Number.__int__N)r0rArBrMrrrrrNumberFsrr 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..FloatN)r0rArBrrrrFloat[srz&^integer argument expected, got float$g$@)decimalZDecimalr&rrnr^rr])r'rZxxZf10rZs10rrrtest_check_arg_typesEs:        zOddballs.test_check_arg_typesN)r0rArBrrrrrrrrs% rc@seZdZddZdS)tzinfo2cCst|tstd|j|k r$td|jdd}|jdd}|dks`|dks`|dkrdt||kr||}|}||kr|SxD||gD]8}||}||kr|S|jdd}||kr|SqWtddS)z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.tzinfo is not selfr)rrNzNo suitable local time found)rFrr^rrrrQrS)r'rPZoff0Zoff1ldtZoffrrrrxs*     ztzinfo2.fromutcN)r0rArBrrrrrrvsrc@s4eZdZddZddZddZddZd d Zd S) USTimeZone2cCs"t|d|_||_||_||_dS)N)r{)rrrrr)r'r{rrrrrrrMs zUSTimeZone2.__init__cCs|jS)N)r)r'rrrrOszUSTimeZone2.__repr__cCs||r|jS|jSdS)N)rSrr)r'rPrrrrRs zUSTimeZone2.tznamecCs|j||S)N)rrS)r'rPrrrrQszUSTimeZone2.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 StStSdS)N)r.r?r=r;r r)r) rrrrrrr.rNr/rrrr)r'rPrrrrrrSs$$  zUSTimeZone2.dstN)r0rArBrMrOrRrQrSrrrrrs rEastern2Central2 Mountain2Pacific2c@s<eZdZddZddZddZddZd d Zd d Zd S)Europe_Vilnius_1941cCs$tdddd|dtdddd|dgS)Nir?rrZ)rrP)r)r'rrr _utc_foldszEurope_Vilnius_1941._utc_foldcCs$tdddd|dtdddd|dgS)Nir?r)rrr)r)r'rrr _loc_foldszEurope_Vilnius_1941._loc_foldcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nr8r<)rrr)r'rP fold_start fold_stoprrrrQs  zEurope_Vilnius_1941.utcoffsetcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nrr)rrr)r'rPrrrrrrSs  zEurope_Vilnius_1941.dstcCs.|\}}||krdS||kr*d|jSdS)NMSK)rCESTr)rr)r'rPrrrrrrRs   zEurope_Vilnius_1941.tznamecCsr|jdkst|j|kst|jdkr*t|\}}||krJ|dtS||krf|dtjddS|dtS)Nrir8r<r)r)rrrr.rbrrr)r'rPrrrrrrs   zEurope_Vilnius_1941.fromutcN) r0rArBrrrQrSrRrrrrrrs    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)Nir?rrr)rz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrZz"Mon Jun 23 23:00:00 1941 CEST+0200rrPz"Tue Jun 24 00:00:00 1941 CEST+0200) rrrrrr&rarrrSre)r'Vilniusgdtrrrrtest_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)Nir?rrPr)rz%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&ra)r'rrrrrrtest_vilnius_1941_toutc(s"        z3TestLocalTimeDisambiguation.test_vilnius_1941_toutcc Csdtddd}tddddd}||jd||jd|ttddddddWdQRXdS)Nrr)r)rrr&rr]r^)r'rrPrrrtest_constructors?s   z-TestLocalTimeDisambiguation.test_constructorscCs@tddddd}|}||jd|}||jddS)Nr)r)rrr&rrH)r'rPrrrr test_memberGs z'TestLocalTimeDisambiguation.test_memberc CsTtd}tddd}||jddjd||jddjd||jddjd||jddjd|jdtd}|jdtd}||jddjd||jddjd|t|jddWdQRX|t|jddWdQRX|t|dddddWdQRX|t |ddddddddd WdQRXdS)Nrr)r)rr)rr<) rrr&rrrr]rr^)r'rrPrrrrNs$     z(TestLocalTimeDisambiguation.test_replacecCs@td}tddd}|||jdd|||jdddS)Nrr)r)rrr&r)r'rrPrrrres z+TestLocalTimeDisambiguation.test_comparisoncCsPtd}tddd}|t|t|jdd|t|t|jdddS)Nrr)r)rrr&rr)r'rrPrrr test_hashks z%TestLocalTimeDisambiguation.test_hashzEST+05EDT,M3.2.0,M11.1.0cCs<d}t|}t|d}||jd||jddS)NiXUTirr)rrHr&r)r'rdt0r_rrrrJqs  z.TestLocalTimeDisambiguation.test_fromtimestampzAustralia/Lord_HowecCsltd}td|dkr$|dd}t|}t|d}|||||jd||jddS) NgAz%Z%zz LHST+1030z>Australia/Lord_Howe timezone is not supported on this platformiUirr)rerrar1rrHr&r)r'tmrrrrrrtest_fromtimestamp_lord_howeys    z8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howecCs|tdjddS)Nr)r&rrHr)r'rrr%test_fromtimestamp_low_fold_detectionszATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectioncCs8tddddd}|jdd}||d|dS)Nir[r<rr )ri)rrr&r)r'rr_rrrtest_timestamps z*TestLocalTimeDisambiguation.test_timestampcCshtd}td|dkr$|dtddddd }|jd d }|jdd }||d |dS) NgAz%Z%zz LHST+1030z>Australia/Lord_Howe timezone is not supported on this platformir=r9rr r)ri)rerrar1rrrr&)r'rrs0s1rrrtest_timestamp_lord_howes  z4TestLocalTimeDisambiguation.test_timestamp_lord_howecCs|tddddd}|jdd}|}|}||d||d||t|||jd ||jd dS) Nir[r<rr )rrrxr)rrrr&rRrr)r'rr_Zadt0Zadt1rrrrs z+TestLocalTimeDisambiguation.test_astimezonec Cstdd}tddddd}xbtD]Z\}}}xN||gD]B}|||}||}|||||dkrjdn|j|jq4Wq WdS)Nr)rr=r)rrrnrorpr&r) r'rrPrrrsrrTrr9rrrtest_pickle_folds    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&r)r'rrPrrrrs   z%TestLocalTimeDisambiguation.test_reprc Cstddddtdtj}tddddtd}||t||t||jddt||jddtxHdD]@}tdddd|td}||t||jddtqWxHdD]@}tdd d d|td}||t||jddtqWdS) Nir rr)rr<)r)rr rr=r;) rrrrr&rSrrr)r' dt_summer dt_winterrrPrrrrs  z$TestLocalTimeDisambiguation.test_dstcCstddddtdtj}tddddtd}||dt||dt||jdd dt||jdd dtdS) Nir rr)rr<r>r)r)rrrrr&rQrr)r'rrrrrrs 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)Nir rr?)rr;r=r9rr r)rrZ)rrr<)r?rZ) rrrrrr&rrrr1) r'Zu_summerZu_winterZt_summerZt_winterrrrrrrrrs0        z(TestLocalTimeDisambiguation.test_fromutccCsLtdddtd}|||tjtdddtd}|||tjdS)Nir)rr?)rrr&rrr)r'rrrrtest_mixed_compare_regularsz6TestLocalTimeDisambiguation.test_mixed_compare_regularcCs<tdddddtd}|tj}||||||dS)Nir rrr )r)rrrrrr)r't_foldZ t_fold_utcrrrtest_mixed_compare_fold s  z3TestLocalTimeDisambiguation.test_mixed_compare_foldcCs<tdddddtd}|tj}||||||dS)Nir=r;r<r )r)rrrrrr)r't_gapZ t_gap_utcrrrtest_mixed_compare_gaps  z2TestLocalTimeDisambiguation.test_mixed_compare_gapcCstdddtd}|t|t|jddtdddddtd}tdd d d dtd}|t|t|jdd|t|t|jdddS) Nir)r)rir rr r=r;r<)rrr&rr)r'rrrrrrtest_hash_awares z+TestLocalTimeDisambiguation.test_hash_awareN)r0rArBrrrrrrrr r.rJrrrrrrrrrrrrrrrrrrrs,   !rcCs"t|\}}t|dt||S)N)rjteenextr8)iterablerrrrrpairs!s 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'rrrrrrM(s zZoneInfo.__init__cCstd|td|f}|r|ddt}|dd|7<|dd|7<xZtdt|D]H}|d|||ddt7<|d|||dt7<q`W|S)Nrrr)rSECrr)rrrrKrrrrr5s$$zZoneInfo.invertc CsT|ddkrtd|dtd}||dtjdkrJ|td}|||dtjdkrt|td }|||dg}x,t |d D]}| t d |d qW||d }xFt |D]:\}\}} } || |d| } td|| | f||<qWdgt|} x"t |D]\}} || | |<q,W||| }|S)Nr=ZTZifznot a zoneinfo filer\rr8rqrrkrz>lbbr?r<)readdecoderseekrfromfiler. byteorderZbyteswaprrWstructZunpackr$findrr)rZfileobjZcountsrZ type_indicesZttisrZabbrsZgmtoffisdstZabbrindabbrridxr'rrrrAs2     zZoneInfo.fromfilec Cs0tj|j|}t|d }||SQRXdS)Nrb)ospathjoinzonerootopenr)rr,rrcrrrfromnamefs zZoneInfo.fromnameircCst|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) z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.tzinfo is not selfiQirrrr<)rN)rFrr^rrr4 EPOCHORDINALr1rrrrbisect bisect_rightrrrr)r'rPrZttirrZtti_prevshiftrrrrns$  ,    zZoneInfo.fromutccCs\||jd|jd|jd|j}|j|j}t||}|j t d|d|S)NiQirrr) r4rr1rrrrrrrra)r'rPrrrrrrr_find_tis,  zZoneInfo._find_ticCs ||dS)Nr)r )r'rPrrrrQszZoneInfo.utcoffsetcCs||d}|rtStS)Nr)r rr)r'rPrrrrrSs z ZoneInfo.dstcCs ||dS)Nr<)r )r'rPrrrrRszZoneInfo.tznameNc cs|dkr|j}tj|d}y t|}Wntk r<dSX|8x0|D](}|}|rJ|dsJ|dVqJWWdQRXdS)Nzzone.tab#r<) rrrrrrstripr*rV)rZzonedirZzone_tabrclinerrr zonenamess  zZoneInfo.zonenamescCsd}}}}tj}}t}} tj} } d} } tj}}d}}t|dd}x|D]}|d7}||}x|D]\}}||krq~|tkr|d7}||f|| fkr|}|} |} |tj|f|tj| fkr|}|} |} q~|tkrH|d7}| }||f| |fkr|} |}|}|tj|f|tj|fkrP|}|}|}q~|d7}q~Wq^W|||f}td|tdt |f|td|| | ftd|| | ftd|||ftd| ||fdS) NrrzNumber 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) rrarrrr r transitionsprintr)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_sincezonenamerrPrZ trans_countsrrrstatssX        zZoneInfo.statsccsLxFtt|j|jD]0\\}}\}}|d|d}t||fVqWdS)Nr)rr8rrrr)r'_prev_tirrrrrrrs$zZoneInfo.transitionsccsrxltt|j|jD]V\\}}\}}|d|d}|tkr|d|dkrt|| |d|dfVqWdS)zLFind all folds with the same value of isdst on both sides of the transition.rrr<N)rr8rrrrr)r'rrrrrrrr nondst_foldss$zZoneInfo.nondst_foldsFc Csvd}xl|D]`}||}xP|D]D\}}}} |j|ks&|rJ|| krJq&|d7}td|||||| fq&WqWdS)Nrrz%3d) %-30s %s %10s %5s -> %s)r rrr.r) rZ same_abbrrrrrrPrZ prev_abbrrrrrprint_all_nondst_foldss zZoneInfo.print_all_nondst_foldsccs.x(|D]\}}|tkr || fVq WdS)N)rr)r'rrrrrfoldsszZoneInfo.foldsccs,x&|D]\}}|tkr ||fVq WdS)N)rr)r'rrrrrgapssz ZoneInfo.gapsccs$x|D]\}}|s |Vq WdS)N)r)r'rrrrrzerosszZoneInfo.zeros)N)r)Fr)r0rArBrrMrr classmethodrrrr4rrr rQrSrRr rrrrrrrrrrrr&s, %    0 rc@s8eZdZdZddZddZddZdd Zd d Zd S) ZoneInfoTestzAmerica/New_Yorkc Csbtjdkr|dyt|j|_Wn6tk r\}z|d|j|fWdd}~XYnXdS)Nrz"Skipping zoneinfo tests on WindowszSkipping %s: %s)r.r0r1rrrrFileNotFoundError)r'errrrrrs   zZoneInfoTest.setUpcCs<||jdd|jt|jf|jdd|jt|jfdS)N)r)r&rridr)r'rrrrrassertEquivDatetimessz!ZoneInfoTest.assertEquivDatetimesc Cs |j}x|D]\}}xd|d||tjgD]}||}||j|d}||jd|jtj d |}| ||| }||jdd||| | tj |jtj dq2Wx@tj |gD]0}||}|j|d}||}||jdqWqWdS)Nrg?)rr) rrrrrrr&rrrrr rQ) r'rrPrrTudtradtrQrrr test_foldss"   zZoneInfoTest.test_foldsc Cs>|j}x0|D]"\}}xd|d||tjgD]}||}|j|d}||}||jd|jtj d |}| ||| }||jdd|jdd|||j|d||}| |jdd |jdd d|q6Wx>tj |gD].}||}||j|d}||jdqWqWdS)Nrg?)rr)rzAt %s.)rrrrrrr&rrrrr rQZ assertLess) r'rrPrrTr!rr"rQrrr test_gaps1s&    zZoneInfoTest.test_gapsc Csd|jks|jdr&|d|j|j}tjd}|jtjd<ztx| D]\}}|j dkrpP|t dddt }|t }xldd d d |d|d |d gD]J}||}t |} t ||jdd} || | | } ||| qW|d kr\t ||d} | } | jdd}|| ||d||||dq\WWd|dkrptjd=n |tjd<tXdS)NZRiyadh8zright/z Skipping %sTZiiriirri@i2)rr<)r)rr*r1rrenvirongetreZtzsetrr.rrrHrr rr&)r'rr%r!rrrlrTrZsdtZtzdtrrPZts0Zts1rrrtest_system_transitionsHs>           z$ZoneInfoTest.test_system_transitionsN) r0rArBrrr r#r$r(rrrrr s rcseZdZfddZZS)ZoneInfoCompleteTestcspg}tdr`xRtD]F}td|tfi}||_x(t|D]}|dr<|||q.DateSubclassN)r0rArBrrrrrsrirTz 2011-01-01rr)TF)argexact) rrr/Zdatetime_check_daterertuplerirrrrr) r'rrZdsrPZis_dateryr:r;rrrtest_check_dates"      zCapiTest.test_check_datec CsGdddt}tdd}|dd}tj}|||||||||d|||dttddtdtj t dddg}xD|D]<}x6d D].}|j ||d ||||WdQRXqWqWdS) Nc@s eZdZdS)z.CapiTest.test_check_time..TimeSubclassN)r0rArBrrrrr8sr8rr Trz 2011-01-01i)TF)r:r;) rr/Zdatetime_check_timererr<rirrrrr)r'r8rrIZis_timeryr:r;rrrtest_check_times     zCapiTest.test_check_timec CsGdddt}tddddd}|ddddd}tj}|||||||||d|||dttddtdtj t dddg}xD|D]<}x6d D].}|j ||d ||||WdQRXqWqWdS) Nc@s eZdZdS)z6CapiTest.test_check_datetime..DateTimeSubclassN)r0rArBrrrrrsrirrr Tz 2011-01-01)TF)r:r;) rr/Zdatetime_check_datetimererr<rirrrrr)r'rrPrZ is_datetimeryr:r;rrrtest_check_datetimes   zCapiTest.test_check_datetimec CsGdddt}td}|d}tj}|||||||||d|||dttddtjt dddt dddg}xD|D]<}x6dD].}|j ||d||||WdQRXqWqWdS) Nc@s eZdZdS)z4CapiTest.test_check_delta..TimeDeltaSubclassN)r0rArBrrrrTimeDeltaSubclasssr@rTz 2011-01-01i)TF)r:r;) rr/Zdatetime_check_deltarerr<rirrrrr)r'r@rZtdsZ is_timedeltaryr:r;rrrtest_check_deltas   zCapiTest.test_check_deltac CsGdddt}t}|}ttdd}tj}||||||||||||d|||d|||dttddt dddt dddg}xD|D]<}x6d D].}|j ||d ||||WdQRXqWqWdS) Nc@s eZdZdS)z2CapiTest.test_check_tzinfo..TZInfoSubclassN)r0rArBrrrrTZInfoSubclass2srBr)r{Trz 2011-01-01i)TF)r:r;) rrrr/Zdatetime_check_tzinforerr<rirrr) r'rBrZtzisrZ is_tzinforyr:r;rrrtest_check_tzinfo1s"   zCapiTest.test_check_tzinfoN) r0rArBrr1r5r9r=r>r?rArCrrrrr.s r.cCs|t|S)N)ZaddTestr))loaderZstandard_testspatternrrr load_testsNs rF__main__)mrrjrrrr.rrrXr*rr/roperatorrrrrrrr r r Ztestr Z test.supportr rrrrr%rrrrrrrrer/rrpZ_loadsrrrrnrrrrrrZTestCaser$rCrTrWrYrrrr(r+r-rrr1r3r4r=rWrprrrrrrrrrrrrrrrrrrrrrrrrrrrrZ TestSuiter)r-r.rFr0mainrrrrs ,      2_A3!}B"<   *  b"32 gi I