o =?h@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl m Z ddlmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddlZ ddlm!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/dDZ0e1e0ej/dksJdddigdfZ2e3dZ4e3dZ5Gddde 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 j6ZidudvZjekdwkrRe ldSdS)xzUTest date/time type. See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases N)array) ltlegtgeeqnetruedivfloordivmod)support)is_resource_enabled ALWAYS_EQLARGESTSMALLEST)MINYEARMAXYEAR timedeltatzinfo)timetimezone)datedatetimecCsg|]}tt|fqS)pickle).0protorr:/opt/alt/python310/lib64/python3.10/test/datetimetester.py *sr! g@A@abcrinfnanc@s,eZdZddZddZddZddZd S) TestModulecCs$t}||jd||jddS)Nr"')datetime_module assertEqualrr)selfrrrr test_constants=szTestModule.test_constantscCs$tt}tjD]}|||qdS)z2Test that __all__ only points to valid attributes.N)dirr)__all__assertIn)r+Z all_attrsattrrrr test_allBs zTestModule.test_allcCsTd|jjvr |dt}tddt|D}tgd}|||tgdS)NZ_Purez"Only run for Fast C implementationcss(|]}|ds|ds|VqdS)__N) startswithendswith)rnamerrr Ms z/TestModule.test_name_cleanup..) rrrrZ datetime_CAPIrrrrsys) __class____name__skipTestr)setr-r*)r+rnamesZallowedrrr test_name_cleanupHs   zTestModule.test_name_cleanupcCsd|jjvr |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#)r8r9r:r)Z_divide_and_roundr*)r+Zdarrrr test_divide_and_roundTs"  z TestModule.test_divide_and_roundN)r9 __module__ __qualname__r,r1r=rKrrrr r';s  r'c@s6eZdZd ddZddZddZdd Zd d Zd S) FixedOffset*cCs>t|tr t|d}t|trt|d}||_||_||_dSNminutes) isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr+offsetr5Z dstoffsetrrr __init__us     zFixedOffset.__init__cCs |jSN)rVlowerr+rrr __repr__} zFixedOffset.__repr__cC|jSr[)rUr+dtrrr utcoffsetzFixedOffset.utcoffsetcCr`r[)rVrarrr tznamerdzFixedOffset.tznamecCr`r[)rWrarrr dstrdzFixedOffset.dstNrO)r9rLrMrZr^rcrerfrrrr rNss   rNc@seZdZdddZddZdS)PicklableFixedOffsetNcCst||||dSr[)rNrZrXrrr rZszPicklableFixedOffset.__init__cCr`r[)__dict__r]rrr __getstate__rdz!PicklableFixedOffset.__getstate__)NNN)r9rLrMrZrjrrrr rhs  rhc@eZdZddZdS)_TZInfocCstSr[)random)r+r)rrr rcsz_TZInfo.utcoffsetNr9rLrMrcrrrr rl rlc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestTZInfoc CsTt}tddddddd|}|t |WddS1s#wYdS)NrD rAr)rlr assertRaises TypeErrorrc)r+Ztz1dt1rrr test_refcnt_crash_bug_22044s   "z&TestTZInfo.test_refcnt_crash_bug_22044cCs@t}tj}|t|j||t|j||t|j|dSr[)rrmaxruNotImplementedErrorrercrf)r+Zuselessrbrrr test_non_abstractnesss z TestTZInfo.test_non_abstractnesscCsrGdddt}|t|t|dd}||tt}|t|j||t|j ||t|j |dS)Nc@rk)z9TestTZInfo.test_subclass_must_override..NotEnoughcSs||_||_dSr[)Z_NotEnough__offsetZ_NotEnough__name)r+rYr5rrr rZs zBTestTZInfo.test_subclass_must_override..NotEnough.__init__N)r9rLrMrZrrrr NotEnoughror|rAZNotByALongShot) r assertTrue issubclassassertIsInstancernowrurzrercrf)r+r|rrbrrr test_subclass_must_overrides  z&TestTZInfo.test_subclass_must_overridecCsntdd}||ttdfD]#}|||tdd|||d|| |tddqdS)NrAZThreerQrO) rNrrrrr*rcrrerf)r+Zforbrrr test_normals  zTestTZInfo.test_normalcCsTtt}|t|ttD]\}}}|||}||}|t|tqdSr[)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]0\}}}| ||} | | } || t|t| ||| d||| d|qDqdS)NrQcookieEST) rrhrrerrrrr*rcrrr) r+rYZotypeargsrZonamerrrrrrrr 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. cSr[rra) DSTOFFSETrr rcz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsetcrr[rra)DSTDIFFrr rfrz4TestTZInfo.test_issue23600..UKSummerTime.dstcSdS)N UKSummerTimerrarrr rerz7TestTZInfo.test_issue23600..UKSummerTime.tznameN)r9rLrM__doc__rcrfrerrrrr rs    rrqrG r)rrrfromutcr*rc)r+rtzutrrr test_issue23600s  zTestTZInfo.test_issue23600N) r9rLrMrxr{rrrrrrrrr rps  rpc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestTimeZonecCs8ttddd|_ttdd d|_tddd|_dS)N#@rACDTrBrr")rrrrrDTr]rrr setUpszTestTimeZone.setUpcCs8|j|jtjtjtjfD] }|t||dq dSr[) rrrutcminryr*strrer+rrrr test_strs zTestTimeZone.test_strcCs>t}|j|jtjtjtjfD]}t|}||t |qdSr[) r)rrrrrryreprr*eval)r+rrZtzreprrr test_reprs zTestTimeZone.test_reprcCsNtddd}|tjdt|tjd| |tjd|dS)N;rrR)rr*rrrcZEROrry)r+limitrrr test_class_memberss zTestTimeZone.test_class_memberscCs|tjttd|tjttdd|tjttddtddtddfD]}t|}||dtdddq-tddtdfD]}|t t||t t| qK|t  tdWdn1sqwY|t  tdWdn1swY|t  tt dWdn1swY|t  tt dWdn1swY|t tt dd WddS1swYdS) NrUTCr" microsecondssecondsrQrOABCextra) rrrr assertIsNotr*assertNotEqualrcru ValueErrorrvr)r+Z subminuterZinvalidrrr test_constructor s2244<zTestTimeZone.test_constructorcCs |tjt||jtdSr[)rrrrrr]rrr test_inheritanceszTestTimeZone.test_inheritancecCs|j}dD]}|t}||t|||| t| |q|t|jdWdn1s:wY|t|jdWddS1sVwYdS)N)rg?rrB)rHOURr*rrcrurvr)r+dummyhrYrrr test_utcoffset!s6<zTestTimeZone.test_utcoffsetcCs|tj|j|t|jdWdn1s wY|t|jdWddS1sdS)Nz not datetimer) rurrrrrrvrrEasternreplacer*rc)r+rZutctimelocalrrr test_fromutcHs   zTestTimeZone.test_fromutccCsR|tttt|tttt|tdttdtd|tttttkWdn1s;wY|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*rurvr/r} assertFalserrrrrrr test_comparisonTs$:zTestTimeZone.test_comparisoncCstddd}tjtjtjfD]/}||||j|d||||j|d|| ||j|d qdS)Nr"r) rrrryrr*rerrcrfr+rrrrr test_aware_datetimeis    z TestTimeZone.test_aware_datetimecCs|j|jtjtjfD]}tD]\}}}||||}|||qq tj }tD]\}}}||||}| ||q)dSr[) rrrrryrrrr*rr)r+rrrrtz_copyrrr test_pickletszTestTimeZone.test_picklecCsP|j|jtjtjfD] }t|}|||q tj}t|}|||dSr[) rrrrrycopyr*rrr+rrrrr test_copy~   zTestTimeZone.test_copycCsP|j|jtjtjfD] }t|}|||q tj}t|}| ||dSr[) rrrrryrZdeepcopyr*rrrrrr test_deepcopyrzTestTimeZone.test_deepcopyc Cstdddtddddtdddddg}|dd|D|D]}|jd |d  t|Wdn1s8wYq td d td d dg}|dd|D|D]2}|jd|d !|t t|Wdn1sswYWdn1swYqUdS)NrrrrrRr?BrrRrrcSg|]}| qSrrrdeltarrr r!z7TestTimeZone.test_offset_boundaries..Zgood)Z test_typerrr")rrcSrrrrrrr r!rZbad)rextendsubTestrrur)r+Z time_deltasrZbad_time_deltasrrr test_offset_boundariess.      z#TestTimeZone.test_offset_boundariescCs,|tjt|ttddtdS)Nr"r)rrrrrr]rrr test_comparison_with_tzinfosz(TestTimeZone.test_comparison_with_tzinfoN)r9rLrMrrrrrrrrrrrrrrrrrrrrr rs$     rc@eZdZddZddZdS)HarmlessMixedComparisoncCs|ddd}||dk||dk|d|k|d|k||ddg|g|g|ddgg||tk||tk||tk||tk||tk||tk||tk||tk||tk||tkdS)Nr"r)theclassrr}r/rrr)r+merrr test_harmless_mixed_comparisons"z6HarmlessMixedComparison.test_harmless_mixed_comparisoncs|ddd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d|tfd ddS) Nr"cdkSNrrrrrr zGHarmlessMixedComparison.test_harmful_mixed_comparison..csdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rr)rrurvr]rrr test_harmful_mixed_comparisonsz5HarmlessMixedComparison.test_harmful_mixed_comparisonN)r9rLrMrrrrrr rs rc@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)weeksdaysrrRr millisecondsrr"rrrrrDrr<rQrg$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|dqQtd(d D]}|||d|t|dqi||dd!d)|d%d||d*d d+|d*d d,|ddd||d*dd|d*dd|ddddS)-NrDrrrrIiDQrFrQX>Qir#FiX'rCrr"i@i6i@?xrrArErBr@rr翶~Ϛ?@g6+1?iS g@gr?g`""K?-?ɚ;r>B)r*r__rsub__absrangeround)r+rrabcusirrr test_computationss   ""  zTestTimeDelta.test_computationscstddD].|tfdd|tfdd|tfdd|tfddqd|tfd d|tfd d|tfd d|tfd d|tfd ddS)NrOr"?cSr[rrrrrr rYrz.cSr[rrrrr rZrcSr[rrrrr r[rcSr[rrrrr r\rrcSr[rrrzerorr rarcSr[rrr"rr rbrcsSr[rrr"rr rcrcdS)Nrrrrr rdrcr%)Nrrrr'rr rer)rrurvZeroDivisionErrorr]r)rrr#r test_disallowed_computationsTsz*TestTimeDelta.test_disallowed_computationscCs,td}|t|jt|t|jtdS)NrO)rrur__mul__NAN __truediv__)r+rrrr test_disallowed_specialgsz%TestTimeDelta.test_disallowed_specialcCsDd\}}}t|||}||j|||j|||j|dS)N)r"rDrr*rrr)r+rrrrrrr test_basic_attributesms  z#TestTimeDelta.test_basic_attributescCsptdd}||ddD]}t|d}|||qdD]}t|d}|||tddq!dS) Nmrg8~A)g ˟ $@g ˟ $r rg.Ar)rrCirr")rr* total_seconds)r+rr2Zmsrrr test_total_secondsts   z TestTimeDelta.test_total_secondscCs.tddddddd}tdd }|||dS) NdrF8r@rgArrrrRrrr"r)rr*r+t1t2rrr test_carriess zTestTimeDelta.test_carriescCstddddddd}t}|t|t||tdd 7}|td d 7}||||t|t||d i}d ||<|t|d |||d dS)Nr4rFr5r@riz r6rDr1rr"rE)rr*hashlen)r+r8r9drrr test_hash_equalitys" z TestTimeDelta.test_hash_equalitycCsBd}t|}tD]\}}}|||}||}|||qdS)N)r"8)rrrrr*r+rrrrrrrrrr test_picklings  zTestTimeDelta.test_picklingcs"tdddtddd}||||k||k||k||k||kdD]Z}t|}||k||k||k||k||k||k||k||k||k||k||k||kq7tD]z|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfdd|tfddqdS)NrErArG)rArArA)rErGrG)rErArBFTckSr[rrZbadargr8rr rrz,TestTimeDelta.test_compare..ckSr[rrrFrr rrckSr[rrrFrr rrckSr[rrrFrr rrckSr[rrrFrr rrckSr[rrrFrr rrckSr[rrrFrr rrckSr[rrrFrr rr)rr*r}r OTHERSTUFFrurvr+r9rrrFr test_comparesH   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:00rEz2 days, 0:00:00rCz-2 days, 0:00:00r:rrz12:58:59rArGz2:03:04irr@)rrrRrz-210 days, 23:12:34rz0:00:00.001000rz0:00:00.000003rrrrrRrrz999999999 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#rEz%s(days=10, seconds=2)r?z,%s(days=-10, seconds=2, microseconds=400000)rrz%s(seconds=60)z%s(0)r4rz%s(microseconds=100))rrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100)rr9r*rr+r5rrr rs2 zTestTimeDelta.test_reprcCstddddddtddtddd tdd d d fD]-}t|}||d |dd}t|}|||t|j|j|j}|||qdS)NrrrrrR6err"rrrErArrrrS ) rrr}r3rr*rrr)r+rsZtd2rrr test_roundtrips    zTestTimeDelta.test_roundtripcCs~|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)NrWrrg~.Arr")rrrry resolutionr}r*r]rrr 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 Sr[)rryrrrr rrz-TestTimeDelta.test_overflow..r"ʚ;geAg#B ;g|=gr{>) rr]rru OverflowError__sub____add__ryr*r,)r+tinyrdayrrr test_overflows   zTestTimeDelta.test_overflowcCs.td}|t|jt|t|jt dSNr")rrur`r*INF)r+rdrrr _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?rEg~jtXrCgƠ>rgƠ?i|tArg?rg?rrrgٿgɿr r)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_normalizationNs z(TestTimeDelta.test_massive_normalizationcCsR|td|tdd|tddd|tdd|tddS)Nr"rr)r}rrr]rrr test_boolSs 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|jSr[rY)rTrr from_td]sz8TestTimeDelta.test_subclass_timedelta..T.from_tdcSs&|jd|jd|jd}t|S)Nrg @rl)rrrr)r+sumrrr as_hoursas z9TestTimeDelta.test_subclass_timedelta..T.as_hoursN)r9rLrM staticmethodrsrurrqrr rr\s rrr"rrrirXi) rrrr*rursrrrr)r+r8r9t3t4rrqr test_subclass_timedeltaZs    z%TestTimeDelta.test_subclass_timedeltac CsGdddt}|ddd}tdd}ddd |ddd fd d d |ddd fd dd |dddfg}|D]+\}}}|||||}||||||Wdn1s[wYq5dS)Nc@ eZdZdS)z6TestTimeDelta.test_subclass_date..DateSubclassNr9rLrMrrrr DateSubclasszr|r"rBraddcS||Sr[rr>rrrr rrz2TestTimeDelta.test_subclass_date..rIraddcS||Sr[rrrrr rrsubcS||Sr[rrrrr rrrG)rrrr*r) r+r|d1rtestsr5funcexpectedactrrr test_subclass_dateys     z TestTimeDelta.test_subclass_datec CsGdddt}|ddddd}tddd}d d d |ddd d fddd |ddd d fddd |ddddfg}|D]+\}}}|||||}||||||Wdn1sawYq;dS)Nc@rz)z>TestTimeDelta.test_subclass_datetime..DateTimeSubclassNr{rrrr DateTimeSubclassr}rr~r"rBr)rrRrcSrr[rrrrr rrz6TestTimeDelta.test_subclass_datetime..rI rcSrr[rrrrr rrrcSrr[rrrrr rrrG)rrrr*r) r+rrrrr5rrrrrr test_subclass_datetimes    z$TestTimeDelta.test_subclass_datetimecCstdddd}tdd}|||d|||dtdd d }tdd }|||d |||dtd }|tt|||tt||dS)Nr"rrrgó@irErrRrrQg@r)rr*rur(r r )r+rsecondminutezerotdrrr test_divisions   zTestTimeDelta.test_divisioncCstddd}tdd}||}||tddtddd}||}||tddtd}|tt|||tt|d dS NrErrr"rQrrCrr#)rr*rur(r rv)r+rrrrrrr test_remainders   zTestTimeDelta.test_remaindercCstddd}tdd}t||\}}||d||tddtddd}t||\}}||d||tddtd}|tt|||tt|d dSr)rdivmodr*rur(rv)r+rrqrrrrr test_divmods     zTestTimeDelta.test_divmodc Csdd}|tt|dd>Wdn1swY|tt|dd>Wdn1s;wYdD]:}|tt||Wdn1s[wY|tt||Wdn1swwYqBdS)NcsGfdddt}|S)NceZdZfddZdS)zFTestTimeDelta.test_issue31293..get_bad_float..BadFloatcrr[rr] bad_ratiorr as_integer_ratiorzWTestTimeDelta.test_issue31293..get_bad_float..BadFloat.as_integer_ratioN)r9rLrMrrrrr BadFloatr)float)rrrrr get_bad_floatsz4TestTimeDelta.test_issue31293..get_bad_floatr"r)rrgr"rErA)rurvrr)r+rrrrr test_issue31293s     zTestTimeDelta.test_issue31293c sfGfdddt}GfdddGfdddtdD]|jdz t|d d Wn ty:Ynwz t|d d Wn tyMYnwz t|d d Wn ttfybYnwz td |d Wn ttfyxYnwz |d td Wn tyYnwz td |d Wn tyYnwWdn1swYqdS) Ncs<eZdZfddZfddZfddZfddZd S) z-TestTimeDelta.test_issue31752..BadIntcSr[rr+otherProdrr r*rdz5TestTimeDelta.test_issue31752..BadInt.__mul__crr[rrrrr __rmul__rdz6TestTimeDelta.test_issue31752..BadInt.__rmul__crr[rrrrr __floordiv__rdz:TestTimeDelta.test_issue31752..BadInt.__floordiv__crr[rrrrr __rfloordiv__rdz;TestTimeDelta.test_issue31752..BadInt.__rfloordiv__N)r9rLrMr*rrrrrrr BadInts    rcs$eZdZfddZfddZdS)z+TestTimeDelta.test_issue31752..Prodcrr[rrSumrr rbrdz3TestTimeDelta.test_issue31752..Prod.__add__crr[rrrrr __radd__rdz4TestTimeDelta.test_issue31752..Prod.__radd__N)r9rLrMrbrrrrr rs rcr)z*TestTimeDelta.test_issue31752..Sumcrr[rr divmodresultrr __divmod__rz5TestTimeDelta.test_issue31752..Sum.__divmod__N)r9rLrMrrrrr rrr)Nr)rr"rE)rrrr"rrr)rTrrrvr)r+rr)rrrr test_issue31752sN     zTestTimeDelta.test_issue31752N)"r9rLrMrrrrr)r Zrequires_IEEE_754r-r0r3r:r?rCrPrrr\r^rerhrnrorpryrrrrrrrrrrr rs>S   (  ! rc@rk) TestDateOnlycCstddd}tdddddd}t|j}||td||}||||||}||||||}||||| }t|j}||td||}||||||}||||||}||||dS) Nr"rErArGrBrRrC)rrrr*)r+rbrrdt2rrr test_delta_non_days_ignored!s*    z(TestDateOnly.test_delta_non_days_ignoredN)r9rLrMrrrrr rs rc@eZdZdZdS) SubclassDater"Nr9rLrMZsub_varrrrr r>rc@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*dMdNZ+dOdPZ,dQdRZ-dSdTZ.dUS)VTestDatecCs<|ddd}||jd||jd||jddS)NrAr")rr*yearmonthrdrarrr r0GszTestDate.test_basic_attributescCsz|ddd|jfD].}t|}||d|dd}t|}|||||j|j|j }|||q dS)Nr"rErArSrZ) rtodayrr}r3rr*rrrdr+rbr[rrrr r\Ms   zTestDate.test_roundtripc CsdD]B\}}}}||||}||||j|}|||t|drD||jd||jd||jd||jdqt t t ddD]>}||dd}|}|j|}||||dkr|j|d}||ddd}||||||dqMgd}d D]K\}} ||dd}t t dd |D]5\} } | d kr| r| d7} t d| dD]} ||| | }||||||j||d7}qqqdS) N))r"r"r"r")r"rr.r1)rEr"r"n)irsri hourrr"rDrr.) r.r.rr.rr.r.rr.rr.))rT)rFrrE) rr* toordinal fromordinalhasattrrrr microsecondrrrzip) r+ymr>nZfromordrd2ZdimZisleaprZmaxdayrdrrr test_ordinal_conversions[sH         z!TestDate.test_ordinal_conversionscs|jj|jjj}|||t fddt dd}||d|||jd|jj |jjj}|||t fddt dd}||d|||jddS)NcsdSrfrrrZaordrr rz0TestDate.test_extreme_ordinals..r"rcsdSrfrrrrr rr) rrrrrdrrr*rurrry)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"rrrrrE` r4lrt)rrrrurr]rrr 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)Nrrr.r"rErrr*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"r.rrEArGrrDrArZr4rcrr[rrrrr rrz,TestDate.test_computations..crr[rrrrr rrcrr[rrrrr rrcr r[rrrrr rrcr r[rrrrdrr rrcSr[rrrrr rrcSr[rrrrr rrcr!r[rrrrr rrcr$r[rrrrr rrcSr[rrr'rr rrcSr[rrr'rr rrcSr[rrr'rr rr rr*rr=rrrrrurv)r+rrdiffweekrrrdrr rsPzTestDate.test_computationscCs|jj}|tdtdfD]8}|jj|}||8}|t|j||t|j| |jj|}||7}|t|j||t|j| q dS)Nr"rE) rr]rrrur`rarbry)r+rcrrbrrr res  zTestDate.test_overflowc Cshddl}d\}}}||||ddddddf }|j|}||j|||j|||j|dS)Nr)irZrr)rmktimer fromtimestampr*rrrd)r+rrrrdtsr>rrr test_fromtimestamps  zTestDate.test_fromtimestampcC dD] }|t|jj|qdSN)gZbtgZbtirur`rrr+Zinsanerrr test_insane_fromtimestamp  z"TestDate.test_insane_fromtimestampcCspddl}tdD]}|j}|}|j|}||krn|dq||kr6|j||tddddSdS)NrrAg?r r)r)rrrrrsleepZassertAlmostEqualr)r+rrrrZ todayagainrrr test_today&s     zTestDate.test_todayc CstdD]B}||ddd||||ddd||d||ddd||||ddd||dqdS)NrDrrArGr"rrE)rr*rweekdayZ isoweekday)r+rrrr test_weekdayCs "$zTestDate.test_weekdayc Csgd}g}|D]*\}}|j|}tdD]}|t|}|dd|d|f}|||fqq|D]J\} } |j| dd|| | Wdn1sSwY|j| dd| } || j| j| j f| Wdn1szwYq5dS)N)))rr)rrr"))rrrrr"r"))rr"rB)rrEr"))rrr)rrr"))rrr)r5r"))rr"rG)rr"r"rDrrEtuple)r>Z comparisonZfields) rrrappendrr* isocalendarrrr) r+Z week_mondays test_casesZcal_dateZiso_dateZ base_daterZnew_dateZnew_isor>Zexp_isorrrr test_isocalendarLs&     zTestDate.test_isocalendarcCsF|ddd}t|}t|}|t|t||ddS)zTest that the result of datetime.isocalendar() can be pickled. The result of a round trip should be a plain tuple. r")rr"rEN)rrrrrr*rr)r+r>presrrr test_isocalendar_picklingjs  z"TestDate.test_isocalendar_picklingcCsd}ttt|}g}tdD]3}|d|dd}|d|dd}||dd|dd|ddkrD||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 rrr.i@r"r) sortedmaprTsplitrrr*rr)r+ZISO_LONG_YEARS_TABLEZiso_long_yearsLrr>rrrr test_iso_long_yearsus $ zTestDate.test_iso_long_yearscCs"|ddd}||ddS)NrErAz 0002-03-02)rr* isoformatr+rrrr test_isoformatzTestDate.test_isoformatcCs"|ddd}||ddS)NrrArEzSat Mar 2 00:00:00 2002)rr*ctimerrrr test_ctimerzTestDate.test_ctimec Cs|ddd}||dd||dd||dd|t|j|t|jdd |t|jd ||d d ||d ddD]}z||WqNty`YqNwz|dWn tyqYnw|ddS)NrArEm:%m d:%d y:%yzm:03 d:02 y:05rAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoneZtworO%mZ03 '%z' '%Z''' '')z%e%z%#u%y%mz%f)rr*strftimerurvrUnicodeEncodeError)r+rfrrr test_strftimes*   zTestDate.test_strftimecCsz|ddd}ztdWnty|dYnw||dtd|||dtd|dS)NrrArErz'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r_timerrr:r* timetuplerrrr test_strftime_trailing_percents z'TestDate.test_strftime_trailing_percentcCs|ddd}||dt||td |dWdn1s(wYGddd|j}|ddd}||ddGd d d |j}|ddd}||dt|d D]#}|||||||||||||d qadS) NrZr#rmust be str, not int{c@rk)zTestDate.test_format..AcSrNArr]rrr __str__rz'TestDate.test_format..A.__str__Nr9rLrMr'rrrr r&ror&c@rk)zTestDate.test_format..BcSrNBrr+ format_specrrr rrz(TestDate.test_format..B.strftimeNr9rLrMrrrrr r*ror*rzm:%m d:%d y:%y H:%H M:%M S:%S%z %Zrr* __format__rassertRaisesRegexrvrr+rbr&rr*rfmtrrr test_formats    zTestDate.test_formatcCs`t|jtr t}nt}||jj|||jj|||jjt| |jj|jjkdSr[) r~rrrrrryr]rr})r+Zexpected_classrrr r^s zTestDate.test_resolution_infocCsz|jj|jj}|jdd|jd|j}tdd|}|||||jj||jj||jj||jjdS)Nr@Br)rryrrrrrr*)r+bigrZ justasbigrrr test_extreme_timedeltas   zTestDate.test_extreme_timedeltac CsptdD]}|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) NrDrr"rErrrtrA=) rrr r*tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r+rr>rrrr test_timetuple s( &..zTestDate.test_timetuplecCZd}|j|}tD]\}}}|||}||}|||q |||ddS)NrIrDrrErrrrr* __reduce__ __reduce_ex__rBrrr rC%   zTestDate.test_picklingcCFgd}d}|j|}|D]}tD]}||dd}|||qq dS)N)s'cdatetime date (S'\x07\xdf\x0b\x1b' tR.scdatetime date (U tR.scdatetime date U R.)rslatin1encodingr pickle_loadsr*r+rrrdatarrrrr test_compat_unpickle.s  zTestDate.test_compat_unpicklecs|ddd|ddd}||||k||k||k||k||kdD][}|j|}||k||k||k||k||k||k||k||k||k||k||k||kq9tD]o|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfddqdS)NrErArGrDFTcrGr[rrrFrr rZrz'TestDate.test_compare..crHr[rrrFrr r[rcrIr[rrrFrr r\rcrJr[rrrFrr r]rcrKr[rrrFrr r^rcrLr[rrrFrr r_rcrMr[rrrFrr r`r)rr*r}rrNrurvrOrrFr rP;sF  zTestDate.test_comparecs|ddd|dkd|dkd|dkd|dkd|tfdd|tfd dGd d d }||kd|kd|kd|kd|tfd d|tfd ddS)NrrGrBr"FTcrrfrrourrr rlrz-TestDate.test_mixed_compare..crrfrrrVrr rmrc@rz)z.TestDate.test_mixed_compare..SomeClassNr{rrrr SomeClassqr}rXcrKr[rrrWZtheirrr ryrcrGr[rrrYrr rzr)rr*rurv)r+rXrrYr test_mixed_comparebszTestDate.test_mixed_comparecCs ||jj||jjdSr[)r}rrryr]rrr rp|szTestDate.test_boolcCsZdD](}||dd}|dd|kr*||dd|||dd|qdS)N)r"r;rcr4irr"z%Yz%04d%dz%4Y)rrr*)r+rr>rrr test_strftime_y2kszTestDate.test_strftime_y2kc C|j}gd}||}|||d}dD]&\}}|dd}|||<||}|jd i||i} ||| |d7}q|ddd}|jt|jdd dS) Nrr)rrErrArdrGr"rrErrrrrr*rrur r+clsrbaserr5newvalnewargsrgotrrr test_replaces     zTestDate.test_replacecCs:Gddd|j}|ddd}|t|jdd|dS)Nc@rz)z4TestDate.test_subclass_replace..DateSubclassNr{rrrr r|r}r|r"ircrrrr)r+r|rbrrr test_subclass_replaces zTestDate.test_subclass_replacecGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|jddS)Nc$eZdZdZfddZddZdS)z&TestDate.test_subclass_date..CrOc6|}|d}jj|g|Ri|}||_|SNrrpoprrrrfrZkwsZtemprresultr]rr r  z.TestDate.test_subclass_date..C.__new__cS||j|jSr[)rrr+startrrr newmethz.TestDate.test_subclass_date..C.newmethNr9rLrM theAnswerrr{rr]rr C  rrrGr rrDrOrF) rr*r8r~rrr{rrr+rrrwrrr]r r "zTestDate.test_subclass_datec sGfdddj}d}d}d}||}|||jdt|td}d|ffd |ffd |ffg}|D]@\}} ||fD]7} jt | |d $t | |} | | } | || || jdWdn1svwYqDq.DateSubclassc$jj|g|Ri|}d|_|SNrDrrrrfrkwargsrvr]rr rzKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__Nr9rLrMrrr]rr r|rr|ri( z 2003-04-14rDrrr fromisoformatZ base_obj_type constr_name) rrr*rrcombiner timestamprrgetattr) r+r|rZd_ord d_isoformatbase_drrr constr_argsbase_objconstrrbrr]r $test_subclass_alternate_constructorss4       z-TestDate.test_subclass_alternate_constructorscCRd}t|}tD]\}}}|||}||}||||t|tqdS)NrF)rrrrr*r}rSrBrrr test_pickling_subclass_dates   z$TestDate.test_pickling_subclass_datec Csd}t|jts|dd}dD]}|t|j|dd||ddqt|jtrP|td|tdgt|dWdn1sKwYtdd D]}||ddt|g|ddqUdS) Ns 1995-03-25rG)9 rErA^bad tzinfo state arg$r"rr) r~rrrurvr2bytesr=r)r+rgZ month_byteZord_byterrr test_backdoor_resistances    *z!TestDate.test_backdoor_resistancec Cspgd}|D]/}|j|}|}|j|d|j|}|||Wdn1s0wYqdS)N)r"r"r")rrEr rr"r")rrErrrsr)rrGrAirBr)dt_strrrrrr*)r+ base_datesdt_tuplerbrdt_rtrrr test_fromisoformats zTestDate.test_fromisoformatcCs<Gddd|j}|ddd}||}|||dS)Nc@rz)z:TestDate.test_fromisoformat_subclass..DateSubclassNr{rrrr r|)r}r|rqrr )rrrr)r+r|rbrrrr test_fromisoformat_subclass(s z$TestDate.test_fromisoformat_subclassc CsLgd}|D]}|t|j|Wdn1swYqdS)N) rrz 009-03-04Z 123456789z 200a-12-04z 2009-1a-04z 2009-12-0az 2009-01-32z 2009-02-29Z20090228u20090228)rurrrr+Zbad_strsbad_strrrr test_fromisoformat_fails2s z!TestDate.test_fromisoformat_failsc CTddtdg}|D]}|t|j|Wdn1s"wYq dS)Ns 2009-03-01z 2009-03-01ioStringIOrurvrrr+Z bad_typesZbad_typerrr "test_fromisoformat_fails_typeerrorFs z+TestDate.test_fromisoformat_fails_typeerrorcCsddddddddd d d d d tddftddfg}|D]-}|j|d|j|}|}|jj|}|||Wdn1sAwYqdS)N)rGrA)rr"rE)irr)rr"rE)rrr.r)rrr.)rr"r")rrr.r)rrr.r)r(rr.r"rr.) datecomps)rrrrrfromisocalendarr*)r+ZdatesrZdobjisocalZ d_roundtriprrr test_fromisocalendarMs2  zTestDate.test_fromisocalendarc Csxgd}|D]3}|j|d#|t|jj|Wdn1s%wYWdn1s4wYqdS)N) )rrr")rrr")r6r")rr"r)rr"r)rr")rrr")rr"r")rr"r")ir"r")r"r")rrr")rr"rr)rrurrr)r+isocalsrrrr !test_fromisocalendar_value_errorsks z*TestDate.test_fromisocalendar_value_errorsc Csttddg}g}d}tdD]}|D]}t|}|||||<|t|qq|D]3}|j|d#|t|j j |Wdn1sKwYWdn1sZwYq,dS)NcSdSr[r)xrrr rz;TestDate.test_fromisocalendar_type_errors..)rr"r"rAr) rrrlistrrrrurvrr)r+Z err_txformersrrgrZtxformerZerr_valrrrr test_fromisocalendar_type_errorss*   z)TestDate.test_fromisocalendar_type_errorsN)/r9rLrMrrr0r\rrrr?rrerrrrrrr rrrr!r5r^r9rDrCrUrPrZrpr^rkrnrrrrrrrrrrrrrrr rAsX/2    &'    ' ,   rc@r)SubclassDatetimer"Nrrrrr rrrc@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 d7d8Z!d9d:Z"e#$e%j&d;kd<d=d>Z'e#$e%j&d;kd<d?d@Z(dAdBZ)dCdDZ*dEdFZ+dGdHZ,dIdJZ-dKdLZ.dMdNZ/dOdPZ0edQdRdSZ1dTdUZ2dVdWZ3dXdYZ4dZd[Z5d\d]Z6d^d_Z7d`daZ8dbdcZ9dddeZ:dfdgZ;dhdiZ.rr"%z2016-04-01T12:37:09rtzirrrrrrr) r+ tzoffsetstzinfosZdt_baseexp_baseexp_tzrrbexprrr test_isoformat_timezones.     z$TestDateTime.test_isoformat_timezonec Cs&|ddddddd}||dt||td  |dWdn1s,wYGd d d |j}|ddddddd}||dd Gd d d |j}|ddddddd}||dt|dD]#}|||||||||||||d qmdS)Nr"rZr#rGrBr"r$rr#c@rk)z#TestDateTime.test_format..AcSrr%rr]rrr r'rz+TestDateTime.test_format..A.__str__Nr(rrrr r&ror&c@rk)z#TestDateTime.test_format..BcSrr)rr+rrr r#rz,TestDateTime.test_format..B.strftimeNr-rrrr r*"ror*r.r0r3rrr r5s  zTestDateTime.test_formatc Cshddl}|ddddddd}||d|ddd dddd}|||||dS) NrrrArErBr$zSat Mar 2 18:03:05 2002r)rrr*rrr )r+rrrrr test_more_ctime0s $zTestDateTime.test_more_ctimec Cs|dddddd}|dddddd}|dddddd}||||||k|tddd d d d }tdd }||}|||||||kdS) NrrAr"rZrr#rr.rrrr)rr*r}rr)r+rwrdt3rrrr test_tz_independent_comparing@s  z*TestDateTime.test_tz_independent_comparingc CsBGdddt}|ddddddd|dd}|t|jddS) Nc@rk)zDTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfocSsGdddt}|dS)Nc@rk)zZTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStrcWrr[r)r+rrrr rWrzbTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStr.replaceN)r9rLrMrrrrr MyStrVrorr5)r)r+rbrrrr reUszKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznameN)r9rLrMrerrrr MyTzInfoTrorrrArErr5%Z)rNrrurvr)r+rrrrr %test_strftime_with_bad_tzname_replaceRsz2TestDateTime.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"rrrrrErrrrrrrrtr.rrrrrrr7fold)rrrrurrvr]rrr 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) Nrrr.rrr"rErrrBrrrrr r?s$  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"r.rrrGrrArErrIrr6rDrr#rrrrrZrrrrrrBrrrcrr[rrrrr rrz0TestDateTime.test_computations..crr[rrrrr rrcrr[rrrrr rrcr r[rrrrr rrcr r[rrrrr rrcrr[rrrrr rrcrr[rrrrr rrcr!r[rrrrr rrcr$r[rrrrr rrcrr[rrr'rr rrcrr[rrr'rr rrcrr[rrr'rr rrr)r+rrZmillisecrrrrr rs  " """zTestDateTime.test_computationscCrE)NrIrDrrrr"rErGrBrrr rCrJzTestDateTime.test_picklingc Csn|ddddddd}ttjdD]"}t||}t|}||jd||jd||j dqdS) NrrErDr0rir") rrrHIGHEST_PROTOCOLrrr*rrrd)r+rrr[rrrr test_more_picklings  zTestDateTime.test_more_picklingcCr)Nr)rrrrr*r}rSrBrrr test_pickling_subclass_datetime   z,TestDateTime.test_pickling_subclass_datetimecCrK)N)s@cdatetime datetime (S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00' tR.s#cdatetime datetime (U  ;tR.s$cdatetime datetime U  ;R.)rLrsrMrrr"rrNrOrQrSrrr rU s  z!TestDateTime.test_compat_unpicklecCsRgd}|j|}|j|}||||||k|||k|||k|||k|||ktt|D]i}|dd}||d||<|j|}|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||kq=dS)N)rrsrrrQrrr")rr*r}rrr=)r+rr8r9rrirrr test_more_compare s4     zTestDateTime.test_more_comparecCsd||j|j||j|j||j|j||j|j||j |j ||j |j dSr[) r*r;rr<rr=rdr>rr?rr@r)r+rrjrrr verify_field_equality; s z"TestDateTime.verify_field_equalitycC6ddl}|}||}|j|}|||dSNr)r localtimerrrr+rrrrjrrr rC   zTestDateTime.test_fromtimestampcCrr)rgmtimerutcfromtimestamprrrrr test_utcfromtimestampK rz"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|}Wn tyYqvw||j||qvdS)Nr\r"g@rErArG6@rlrsrrri'r)rr*rrrrr`)r+rt0r8r[rrr test_timestamp_naiveU s0       z!TestDateTime.test_timestamp_naivec Cs|jdddtjd}||d|jdddddddtjd}||d|jdddddddttd d d d}||d dS) Nr\r"rr&rErArGg7@rrrr)rrrr*rrrrrr test_timestamp_awareq s  z!TestDateTime.test_timestamp_awarezMSK-03c Csv|jj|jjfD]}|d}||jd||jd|d}z|d}Wn ty/Yn?w||jd||jd|d}||||d}||||d}||||d }||jd||jd |d }||||d }||||d }||jd||jd|d}||jd||jd|d}||jd||jdqdS)Nrgư>gưrrg:0yEg1E2gHzrki#gHz>g1E2>g<"2?gP?r"rirj)rrrr*rrOSError)r+Zftsr#rZ minus_onerrrr rn| sJ       z&TestDateTime.test_microsecond_roundingcCs|d|jjjtjd}|}||dWdn1s#wY|d|jjjtjdd}|}||dWddS1sMwYdS)Nz minimum UTCrlw#o9z maximum UTCrrrg MB) rrrrrrrr*ry)r+min_dtmin_tsmax_dtmax_tsrrr test_timestamp_limits s   "z"TestDateTime.test_timestamp_limitsc Csz|jdWnttfy|dYnw|jjtdd}|}|jjj dd}|jjtddtd d d d  }d ||fd ||ffD])\}}}|j |||d|j|}| ||Wdn1spwYqLd|tddd fd|tdd fd|tdd fd|tdd fg} | D]8\}}|j ||d%| ttf|j|Wdn1swYWdn1swYqdS)NTest not valid on this platformr"rrrrrrrrminimummaximumrrToo small by a littlerrmToo small by a lotrToo big by a littleToo big by a lotr)rrr r`r:rrrryrr2rr*rur) r+rrrr test_namerractualrrrr test_fromtimestamp_limits sB  z&TestDateTime.test_fromtimestamp_limitsc Csz|jdWnttfy|dYnw|jjjtjd}| }|jj jdtjd}| }d||jddfd||jddffD]G\}}}|j |||d2z|j|}Wnttfyw} z |t | WYd} ~ nd} ~ ww| ||Wdn1swYqFd |d fd |td d fd|d fd|td d fg} | D]8\}}|j ||d%|ttf|j|Wdn1swYWdn1swYqdS)Nrrrrrrrrrrr"rrrrrr)rrr r`r:rrrrrryrrr*rr2rur) r+rrrrrrrrexcrrrr test_utcfromtimestamp_limits sH   z)TestDateTime.test_utcfromtimestamp_limitscCrrrrrrr r rz&TestDateTime.test_insane_fromtimestampcCrr)rur`rrrrrr test_insane_utcfromtimestamp rz)TestDateTime.test_insane_utcfromtimestampwin32z*Windows doesn't accept negative timestampscCs|jddS)N)rrr]rrr !test_negative_float_fromtimestamp sz.TestDateTime.test_negative_float_fromtimestampc Cs.|jd}|||ddddddddS) Nr&irr.rrrQi~)rrr*)r+r>rrr $test_negative_float_utcfromtimestamp s "z1TestDateTime.test_negative_float_utcfromtimestampcCsfddl}tdd}tdD]}|j}|j|}t|||kr&nq |t|||dS)Nrr"rrA)rrrrutcnowrrZassertLessEqual)r+rZ tolerancerZfrom_nowfrom_timestamprrr test_utcnow# s   zTestDateTime.test_utcnowc Csd}d}t|j||}|j||}||||t||j|t||jgd}|D]0\}}|j||dt|j||}|j||}|||Wdn1s\wYq1|jj}||dddt ||ddd t ||d dt dd d d  ddt j t j dffD];\}}|dkrd} | } nd} |} t| dd\} } d| | | |} || d}||t |d|| |qd\} }|| |}||dtdt || d|||| ||ddjd|t |ddWdn 1s!wY|t |ddWdn 1s              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) Nrrr.rIr!) rrr.rIrr;rGrrr"r)rr*r rrrdrrrrrrr;r<r=r>r?r@rArBrC)r+rZttrrr test_more_timetuple s0   z TestDateTime.test_more_timetuplec Cs|ddddddd}||dd d D]!\\}}}ttd ||d  }|j|d }||dd|qz|dWdStyJYdSw)Nrrr.rIrr;/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))r;r$z 33.000123))r;rZ33rE)rrrrr.z-0200u%y%m %H%M)rr*rrrrr)r+rr[rr/rrrr test_more_strftime s   zTestDateTime.test_more_strftimec CsL|ddddddd}||tddd||tdddddS)NrrArGr-)rr*rrrarrr 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) NrrArGrr?r@)rrr"rErrr) rrrrr*rurvrrrr)r+r>rrrrbrrr test_combine s6       zTestDateTime.test_combinec Cr_) N)r"rErArGrBrIrDr)r`rarbrrBrrIrrDrrr"rrErrrcrrdrerrr rk s     zTestDateTime.test_replaceZEDT4c Cs\|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  | WddS1swYdS)N,Z0044rHrEDTrrGrrc@r)z+TestDateTime.test_astimezone..BoguscSrr[rrarrr rc rz5TestDateTime.test_astimezone..Bogus.utcoffsetcStdSrrrarrr rf rz/TestDateTime.test_astimezone..Bogus.dstNr9rLrMrcrfrrrr Bogus  rLc@r)z/TestDateTime.test_astimezone..AlsoBoguscSrJrrrarrr rc rz9TestDateTime.test_astimezone..AlsoBogus.utcoffsetcSrr[rrarrr rf rz3TestDateTime.test_astimezone..AlsoBogus.dstNrKrrrr AlsoBogus rMrNc@r)z,TestDateTime.test_astimezone..BrokencSrrfrrarrr rc rz6TestDateTime.test_astimezone..Broken.utcoffsetcSrrfrrarrr rf rz0TestDateTime.test_astimezone..Broken.dstNrKrrrr Broken rMrO) rrrNrrrr* astimezonerurvrr) r+rbrdt_utcZdt_frLZbogrNZalsobogrOZbrokenZ dt_brokenrrr test_astimezone s,     "zTestDateTime.test_astimezonecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|j|j ddS)Ncrp)z.TestDateTime.test_subclass_datetime..CrOcrqrrrsrur]rr r rwz6TestDateTime.test_subclass_datetime..C.__new__cSs||j|j|jSr[)rrrryrrr r{! sz6TestDateTime.test_subclass_datetime..C.newmethNr}rr]rr r rr)rrGr rr)rrDrOrF) rr*r8r~rrr{rrrrrr]r r 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]A\}} } ||fD]7} j t | |d$t | |} | | } | || | | jdWdn1swYqeq\dS)Ncr)zTTestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclasscrrrrr]rr r3 rz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__Nrrr]rr r2 rr)rrGr rrr z2003-04-14T12:30:15.123456gh͏TMArDrrrr1z%Y-%m-%dT%H:%M:%S.%frrrAr) rrr*rrrrrPrrrrr)r+rrrZutc_tsrrrrrrr constructorrbrr]r -test_subclass_alternate_constructors_datetime0 s>       $     z:TestDateTime.test_subclass_alternate_constructors_datetimec sGfdddj}ddifddifdddtjifdddttdd d ifg}|D]3\}}}|!t||}|d i|}|||jd Wdn1sXwYq*dS) Ncr)z8TestDateTime.test_subclass_now..DateTimeSubclasscrrrrr]rr rd rz@TestDateTime.test_subclass_now..DateTimeSubclass.__new__Nrrr]rr rc rrrr)Znow_utcrZ now_fixedrrrrDr) rrrrrrrr*r)r+rrr5Z meth_namerrrbrr]r test_subclass_nowa s   zTestDateTime.test_subclass_nowc sgd}gdddg}dtjttddttddgfdd |D}|D]/}|D]*}|j|d }j|d j|}||Wdn1sSwYq.q*dS) N)rrrr)rrrr)rrrih)rrrG)rrr?rYrrrrrrEcs:g|]}D]}D]}jg||Rd|iq qqSr)r)rZ date_tupleZ time_tuplerZ base_timesr+rrr r! s"z.rr4)rrrrrrrr*)r+r separatorsdtsrbrr4rrrZr test_fromisoformat_datetimey s(    z(TestDateTime.test_fromisoformat_datetimec Cs|ddddddd}tddtddtd d d tdd dd tdddddg}|dd|D7}dtjttddg}|dd|D7}|D]0}|j|d}|}|j|d|j|}||ksgJ|Wdn1sqwYqFdS)Nrqrrr?pQrBrrErIrMrrtrrGrZr rcSg|]}d|qSrrrrrrr r! z.rcSg|]}t|qSrrrcrrr r! rdrtstrrrrrrrrr)r+Zbase_dtrrrrbr4rrrr test_fromisoformat_timezone s(     z(TestDateTime.test_fromisoformat_timezonec Cs|gd}|D]5}|ddddddd}|j|d }|j|d |j|}|||Wdn1s6wYqdS) N) rrr€uʁuᛇu時u🐍rr~r"r.rrr=iur[r\rr+r]rrbr4rrrr test_fromisoformat_separators s  z*TestDateTime.test_fromisoformat_separatorsc Csxddg}|D]3}|ddddd}|j|d}|j|d |j|}|||Wdn1s4wYqdS) Nrrr~r"r.rrTr[r\rrlrrr test_fromisoformat_ambiguous s  z)TestDateTime.test_fromisoformat_ambiguousc Csddg}dtjttddttddttdddg}gd }t|D]Y\}}|D]R}|D]M}|d krEd |dd }|d d|f}|j|d d |d|i} | j|d} |j| d|j| } || | Wdn1svwYq.q*q$dS)N)rrrGrrr?r )rrrGrrr?rrrrErIrMrrrRrrrrrrrGrrr\ rrr enumeraterrrrr*) r+Zdatetime_basesr timespecsiprrrnew_microsecondsrbr4rrrr test_fromisoformat_timespecs s2    z)TestDateTime.test_fromisoformat_timespecsc Cxgd}|D]3}|j|d#|t|j|Wdn1s%wYWdn1s4wYqdS)N)rrz 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:00arrrurrrrrrr !test_fromisoformat_fails_datetime s z.TestDateTime.test_fromisoformat_fails_datetimecCsLd}|ttt||j|WddS1swYdS)Nu2018-01-0301:0113)r2rreescaperrr)r+r4rrr "test_fromisoformat_fails_surrogate s"z/TestDateTime.test_fromisoformat_fails_surrogatecCs$d}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)rrrrrr)r+rrbrrr test_fromisoformat_utc s z#TestDateTime.test_fromisoformat_utcc Cs`Gddd|j}|ddddddd ttd dd d }||}||||||dS) Nc@rz)zBTestDateTime.test_fromisoformat_subclass..DateTimeSubclassNr{rrrr r r}rrqrr rZrr?ir#rr)rrrrrr*r)r+rrbrrrr r s z(TestDateTime.test_fromisoformat_subclassN)>r9rLrMrrr0rr\rrr5rrrrr?rrCrrrUrrrrr run_with_tzr r rnrr r#rr$unittestZskipIfr7platformr'r(r+r5r:r<r>rArBrkrRrrVrWr_rirmrnruryr|r}rrrrr rst  , 5D   !  (''   ;""  1# & rc@s"eZdZeZedddZdS)TestSubclassDateTimeznot appropriate for subclassescCrr[rr]rrr r\/ sz#TestSubclassDateTime.test_roundtripN)r9rLrMrrrskipr\rrrr r, src@r) SubclassTimer"Nrrrrr r3 rrc@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)Nrrrr*rrrrrrrr r0: s zTestTime.test_basic_attributescCsL|dddd}||jd||jd||jd||jddS)Nrrrrrrrr rA s z&TestTime.test_basic_attributes_nonzerocCsp|dddd}t|}||d|dd}t|}|||||j|j|j|j }|||dS)Nr"rErArGrSrZ) rrr}r3rr*rrrr)r+rr[r9rrr r\J s  zTestTime.test_roundtripcsLgd}|j||j|}||||k||k||k||k||ktt|D]i}|dd}||d||<|j|}||k||k||k||k||k||k||k||k||k||k||k||kq=tD]z|kd|kd|kd|kd|tfdd|tfdd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd dqdS)Nr"rErArGr"FTcrEr[rrrFrr r{ rz)TestTime.test_comparing..crGr[rrrFrr r| rcrHr[rrrFrr r} rcrIr[rrrFrr r~ rcrJr[rrrFrr r rcrKr[rrrFrr r rcrLr[rrrFrr r rcrMr[rrrFrr r r) rr*r}rrr=rNrurv)r+rr9rrirrFr test_comparingY sN     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) Nrrrrrrrr7)rrurr]rrr 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)Nrrrr"rErrBrrrrr r? 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)+NrGrBr"r$z04:05:01.000123z00:00:00rz00:00:00.000001r#z00:00:00.000010r4z00:00:00.000100rz00:00:00.001000rz00:00:00.010000iz00:00:00.100000rr@rAr )rrrrrrZ12rRz12:34rz12:34:56rz 12:34:56.123rz12:34:56.123456rZmonkeyrrz 12:34:56.999rz 12:34:56.000z12:34:56.000000)rr*rrrurrrrr r sN      zTestTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|d dd}d}|D],\}}|j|d}||}|j|d||kseJWdn1sowYqHdS)NrrBrrrErrIrMrrrrtrrrrGrZr rrrrcSrrrrrrr r! rz4TestTime.test_isoformat_timezone..rz12:37:09rrr) r+rrZt_baserrrrrrrr r s.     z TestTime.test_isoformat_timezonecCs"|jdd}|jt|jdddS)Nr"rrA)r)rrurvrrrrr test_1653736 s zTestTime.test_1653736cCsZ|dddd}||dd||ddz|d WdSty,YdSw) Nr"rErArGz %H %M %S %fz01 02 03 000004rru%H%M)rr*rrrrrr r s zTestTime.test_strftimecCs|dddd}||dt||td |dWdn1s)wYGdd d |j}|dddd}||dd Gd d d |j}|dddd}||dt|d D]#}|||||||||||||d qddS) Nr"rErArGrr#r$c@rk)zTestTime.test_format..AcSrr%rr]rrr r' rz'TestTime.test_format..A.__str__Nr(rrrr r& ror&c@rk)zTestTime.test_format..BcSrr)rr+rrr r$ rz(TestTime.test_format..B.strftimeNr-rrrr r*# ror*)z%H %M %Sr0)r+rr&rr*rr4rrr r5 s  zTestTime.test_formatc Cs|t|ddddd|t|ddddd|t|d ddd d |t|d ddd d |t|ddd d ddS)Nr"rErArGz01:02:03.000004r#rz10:02:03.004000rrTz00:02:03.400000rz12:02:03rrTz23:15:00)r*rrr]rrr r/ s  zTestTime.test_strc Csd|jj}|t|ddddd||t|ddddd ||t|d ddd d ||t|d ddd d||t|ddd d d|dS)NrSr"rErArGz%s(1, 2, 3, 4)r#rz%s(10, 2, 3, 4000)rrTz%s(0, 2, 3, 400000)rz %s(12, 2, 3)rrTz %s(23, 15)rUrVrrr r6 s zTestTime.test_reprcCsN||jj|j||jj|j||jjt||jj|jjkdSr[)rrrryr]rr}r]rrr r^C szTestTime.test_resolution_infocCrE)NrrrrrErGrBrrr rCI rJzTestTime.test_picklingcCr)Nr)rrrrr*r}rSrBrrr test_pickling_subclass_timeR rz$TestTime.test_pickling_subclass_timec Cszgd}t|D]2\}\}}|j|d|j|}tD]}||dd}|||qWdn1s5wYqdS)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.rrr6r)scdatetime time (U;tR.r)scdatetime time U;R.r)rrNrO)rqrrrRr*)r+rrrTrrrrrrr rU[ s  zTestTime.test_compat_unpicklecCsh|j}||d||dd||ddd||dddd||d||dS)Nr"r)rr})r+rfrrr rpq szTestTime.test_boolc Cs|j}gd}||}|||d}dD]&\}}|dd}|||<||}|jd i||i} ||| |d7}q|d}|jt|jdd|jt|jdd|jt|jd d |jt|jd d dS)Nrr)rCrDrErFr"rrrrr4rr7rrrdrerrr rk{ s"    zTestTime.test_replacecCs8Gddd|j}|dd}|t|jdd|dS)Nc@rz)z4TestTime.test_subclass_replace..TimeSubclassNr{rrrr TimeSubclass r}rrrr#rrm)r+rrrrr rn s zTestTime.test_subclass_replacecro)Ncrp)z&TestTime.test_subclass_time..CrOcrqrrrsrur]rr r rwz.TestTime.test_subclass_time..C.__new__cSrxr[rrryrrr r{ r|z.TestTime.test_subclass_time..C.newmethNr}rr]rr r rr)rGrBrIrrDrOrF) rr*r8r~rrr{rrrrr]r test_subclass_time rzTestTime.test_subclass_timec Csd}ddtddfD]}|t|j||ddq |td|tdgt|dWddS1s:wYdS) Nz2:59.0r9rÿr"rr)chrrurvrr2rr=)r+rgZ hour_byterrr r s "z!TestTime.test_backdoor_resistanceN)r9rLrMrrr0rr\rrr?rrrrr5rrr^rCrrUrprkrnrrrrrr r6 s0 +4      rc@4eZdZddZddZddZddZd d Zd S) TZInfoBasecCs|j}Gdddt}|ddd|d}|turdpd}|||t|tur+d p,d d }||||||dS) Nc@s eZdZddZddZeZdS)z7TZInfoBase.test_argument_passing..introspectivecSs |rdpdS)Nrealnonerrarrr re s z>TZInfoBase.test_argument_passing..introspective.tznamecSst|rdpddS)NrOrQrrarrr rc szATZInfoBase.test_argument_passing..introspective.utcoffsetN)r9rLrMrercrfrrrr introspective srr"rErArrrrrOrQ)rrrr*rerrcrf)r+rfrobjrrrr test_argument_passing sz TZInfoBase.test_argument_passingcCsz|j}|jt|dddddGdddt}|jt|ddd|dGdddt}|}|ddd|d}||j|dS)Nr"rrc@r)z3TZInfoBase.test_bad_tzinfo_classes..NiceTrycSrr[rr]rrr rZ rz.NiceTry.__init__cSrr[rrarrr rc rz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetNr9rLrMrZrcrrrr NiceTry rMrc@r)z5TZInfoBase.test_bad_tzinfo_classes..BetterTrycSrr[rr]rrr rZ rz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__cSrr[rrarrr rc rz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffsetNrrrrr BetterTry rMr)rrurvobjectrr)r+rfrrrrrrr test_bad_tzinfo_classes sz"TZInfoBase.test_bad_tzinfo_classesc CsGdddt}|j}dD]^\}}|tur |ddd||d}n|tur2|dddddd||d}nJd |rdt|}t|d \}}d |d krJd pKd||f} t|trY|}|t |d| q | t t |q dS)Nc@r)z6TZInfoBase.test_utc_offset_out_of_bounds..EdgycSst|d|_dSrPrrY)r+rYrrr rZ r|z?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__cSr`r[)rYrarrr rc rdz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffsetNrrrrr Edgy  r))`F)aT)T)rFr"rErArrIrZ impossiblerz %c%02d:%02drrz01:02:03) rrrrrrrStimetzr*rrur) r+rrfrYZlegitrZaofsrrtagrrr test_utc_offset_out_of_bounds s"  z(TZInfoBase.test_utc_offset_out_of_boundscCs|j}Gdddt}|ddd|ddddd|ddd|dfD]}||||||q!Gdddt}|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@$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C1cSrr[rrarrr rcrz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetcSrr[rrarrr rfrz.TZInfoBase.test_tzinfo_classes..C1.dstcSrr[rrarrr rerz1TZInfoBase.test_tzinfo_classes..C1.tznameNr9rLrMrcrfrerrrr C1 rr"rc@r)z*TZInfoBase.test_tzinfo_classes..C3cS tddS)NrrQrrarrr rc z4TZInfoBase.test_tzinfo_classes..C3.utcoffsetcSr)NrrQrrarrr rfrz.TZInfoBase.test_tzinfo_classes..C3.dstcSrNanamerrarrr rerz1TZInfoBase.test_tzinfo_classes..C3.tznameNrrrrr C3rrrrQrrc@r)z*TZInfoBase.test_tzinfo_classes..C4cSrrrrarrr rcrz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetcSrrrrarrr rfrz.TZInfoBase.test_tzinfo_classes..C4.dstcSrrrrarrr rerz1TZInfoBase.test_tzinfo_classes..C4.tznameNrrrrr C4rrc@r)z*TZInfoBase.test_tzinfo_classes..C6cSr)Nirrrarrr rc$rz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetcSr)Nrrrrarrr rf%rz.TZInfoBase.test_tzinfo_classes..C6.dstNrKrrrr C6#rMrc@r)z*TZInfoBase.test_tzinfo_classes..C7cSr)Nr:rrrarrr rc,rz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetcSr)Nrrrarrr rf-rz.TZInfoBase.test_tzinfo_classes..C7.dstNrKrrrr C7+rMrr:rr) rrrrcrfrer*rrurvr)r+rfrrrrrrrrr test_tzinfo_classess6 zTZInfoBase.test_tzinfo_classesc Cs|j}Gdddt}|ddd|d}|jdd}|jdd}|jd d}|||fD]'}|||fD]}ttttttfD]} | ||} | |j |j } | | | q.OperandDependentOffsetcS |jdkr t|jdStddSNr#rQrrrrrrr rc8   zGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetNrnrrrr OperandDependentOffset7rorrrZr#rrArrsrrrrr") rrrrrrrrrrr*r) r+rfrrgd0rrrroprjrrrr test_aware_compare2sB       zTZInfoBase.test_aware_compareN)r9rLrMrrrrrrrrr r s  0rc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdS) TestTimeTZcCsP|}||jd||jd||jd||jd||jdSr)rr*rrrrrrrrrr test_emptyfs 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|jjvrd5| _|t| jd3dSdS)6Nrrr"rrrCrMETrArDr=rrr(rr!rQzno argscrKr[rrrxZt5rr rrz'TestTimeTZ.test_zones..crGr[rrrrr rrz07: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 +0100rz %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..BadtznamerOcSr`r[rIrarrr resz/TestTimeTZ.test_zones..Badtzname.tznameN)r9rLrMrrerrrr Badtznames rrErGz%H:%M:%Sz02:03:04rr>r)rNrr*rrrcrrurvrerfr<rrrrrr8r9rr) r+estrmetr8r9rwr>Zyuckrrrrr test_zonesns             zTestTimeTZ.test_zonescCs|jddddtddd}|jddddtddd}|t|t||jd d d d td dd}|jd dd d tddd}|t|t|dS)Nrr"rErArrrirrQrIr4iri)rrNr*r<r7rrr test_hash_edge_casess zTestTimeTZ.test_hash_edge_casesc Csd}|j|}tD]\}}}|||}||}|||q |||dtdd}|jddd|d}tD]0\}}}|||}||}|||||j t|| t dd || dq;|||ddS) NrrErrrBrIrDrrQ) rrrrr*rHrIrhrrrcrre r+rrrrrrrtinforrr rCs"       zTestTimeTZ.test_picklingcCsgd}tdd}|jdddd|d}|D]0}tD]+}||d d }|||t|||jt||tdd || dqqdS) N)scdatetime 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.rrrBrIrDr rrNrOrQ) rhrrRr*rrrrcrre)r+rrrrTrrrrr rUs  zTestTimeTZ.test_compat_unpicklecCs||j}|dtddd}|||dtddd}|||dtddd}|||ddtd dd}||dS) NrrrrrBi,rrr)rrNr})r+rfrrrr test_more_bools   zTestTimeTZ.test_more_boolcCs\|j}tdd}ttddd}dddd |g}||}|||d }d d d dd|ffD]&\}}|dd} || |<|| } |jdi||i} || | |d7}q.||d|jdd} || j|| | j|d} ||| ||j| j|d}|j t |jdd|j t |jdd|j t |jdd|j t |jdddS)Nr4+1008rQ-200r"rErArGrrCrDrErFrrrrrrrr7rr rrNrr*rrerrrrurr+rfZz100Zzm200rrgrr5rhrirrjZbase2Zbase3rrr rks>        zTestTimeTZ.test_replacecCs|ddd}|ddd}||||jdd}||||jtddd}||||jtddd}|||Gdddt}|}|j|d}|j|d}||td d ||td d ||||j|d}|||kdS) Nr"rErArrrc@r)z-TestTimeTZ.test_mixed_compare..VariescStdd|_dSNrrQrr]rrr rZKr|z6TestTimeTZ.test_mixed_compare..Varies.__init__cS|jtdd7_|jSNr"rQrYrrrrr rcMz7TestTimeTZ.test_mixed_compare..Varies.utcoffsetNrrrrr VariesJrrrrQr) rr*rrNrrrcrr}r+r8r9rvrrr rZ>s$        zTestTimeTZ.test_mixed_comparec Csddg}d}d}d}d}|tt||||7}dtjttddttd d d g}|D]5}|D]0}|j|d |i} | } |j| d |j | } | | | Wdn1s[wYq0q,dS)NrX)rrrr)rZrr)rBr)rGr?)rii[ rErrIrMrrrf) r itertoolsproductrrrrrrrr*) r+Z time_examplesZhhZmmssZusecrZttuprrrgt_rtrrr r\s.  zTestTimeTZ.test_fromisoformatc Cs|dddd}tddtddtdd d tdd dd tdd dddg}|dd|D7}dtjttddg}|dd|D7}|D]0}|j|d}|}|j|d|j|}||ksdJ|Wdn1snwYqCdS)Nrrr?r`rBrrErIrMrrtrrGrZr rcSrarbrrcrrr r!rdz:TestTimeTZ.test_fromisoformat_timezone..rcSrerrrcrrr r!rdrrfrh)r+Z base_timerrrrrgrrrr rivs(     z&TestTimeTZ.test_fromisoformat_timezonec Csddg}dtjttddttddttdddg}gd }t|D]Y\}}|D]R}|D]M}|d krEd |d d }|d d |f}|j|d d|d|i} | j|d} |j| d|j| } || | Wdn1svwYq.q*q$dS)N)rrr?r )rrr?rrrrErIrMrrorrrrr"rrrfrp) r+Z time_basesrrrrsrrZt_tuplertrrgrrrr rus2    z'TestTimeTZ.test_fromisoformat_timespecsc Crv)N)ru1200z12: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:30arwrxrrrr rs z#TestTimeTZ.test_fromisoformat_failsc Cr)Ns12:30:45z12:30:45rrrrr rs z-TestTimeTZ.test_fromisoformat_fails_typeerrorcCsPGddd|j}|ddddtjd}||}||||||dS)Nc@rz)z.TimeSubclassNr{rrrr rr}rrr r?ir)rrrrrr*r)r+rZtscZtsc_rtrrr rs  z&TestTimeTZ.test_fromisoformat_subclasscsGfdddj}ddddtddd f}j|}||id d i}|j||jd |jd |||d |j|j d dS)Ncrp)z*TestTimeTZ.test_subclass_timetz..CrOcrqrrrsrur]rr rrwz2TestTimeTZ.test_subclass_timetz..C.__new__cSrxr[rryrrr r{r|z2TestTimeTZ.test_subclass_timetz..C.newmethNr}rr]rr rrrrGrBrIrrr"rrDrOrF) rrNr*r8r~rrcr{rrrrr]r test_subclass_timetzs "zTestTimeTZ.test_subclass_timetzN)r9rLrMrrrrrrCrUrrkrZrrirurrrrrrrr rcs"W "' rc@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"rErArGrBrIrD) rr*rrrdrrrrrrarrr test_trivialszTestDateTimeTZ.test_trivialc sh|jdddtddd|jtdddddd td dd|k|k|k|||jdddddtddd|jd ddd d tddd||jdddddtddd|k|jdddddtd dd|k|jdddddtdddd|k|jdddddtdddd|k|jj|||t kWdn1swYGdddt }|jddd|d|||ddd|Gdddt }|jd d d |d|jd d d tddd|t fdddS)Nr"rrrrr.rrrrrErArr)rrr c@rk)z4TestDateTimeTZ.test_even_more_compare..NaivecSrr[rrarrr rc8rz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetNrnrrrr Naive7rorrBrIrDc@rk)z4TestDateTimeTZ.test_even_more_compare..BoguscSr)NrrQrrarrr rcDr_z>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsetNrnrrrr rLCrorLcskSr[rrr8r9rr rHrz7TestDateTimeTZ.test_even_more_compare..) rrNrr}r*rrrurvrr)r+rrLrrr test_even_more_comparesP          z%TestDateTimeTZ.test_even_more_comparec Csd}|j|}tD]\}}}|||}||}|||q |||dtdd}|j|id|i}|jdddtdddd }tD]0\}}}|||}||}|||| |j t|| t dd || dqI|||ddS) NrrErrrr"rrrrQ)rrrrr*rHrIrhrNrrrcrrerrrr rCJs$       zTestDateTimeTZ.test_picklingcCsgd}d}tdd}|j|id|i}|D]-}tD](}||dd}|||||jt||tdd||dqqdS) N)scdatetime 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.)rLrsrMrrr"r rrrrNrOrQ) rhrrRr*rrrcrre)r+rrrrrTrrrrr rUas   z#TestDateTimeTZ.test_compat_unpicklec Csr|jdddtddd}t||jtdddddd td dd}t||jd d d td dd}|tt|dS) Nr"rrrrr.rrrrrBr)rrNr<rrurrrrr test_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)NrrrrrrrrArrDr=rrrrQz2002-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)) rNrr*rrcrrer<rr)r+rrrr8r9rwr>rrr rs8      zTestDateTimeTZ.test_zonesc CsXtdd}tddd}tdddd|d }t||}||tddddddd|d dS NrrrrArGrr?r@r)rNrrrrr*)r+rr>rrbrrr rBs    zTestDateTimeTZ.test_combinec Csxtdd}|jddddddd|d }||tddd||tdddd||tdddd|d dSr)rNrr*rrr)r+rrbrrr rAs "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:30rcrr[rrrnowawarerr rrz9TestDateTimeTZ.test_tz_aware_arithmetic..cr r[rrrrr rrcrr[rrrrr rrcrr[rrrrr rrcrr[rr)rrr rrrr"ri.)rrRrcrr[rr)r nowawareplusrr rrrrZrandomtimezonerrr.rrrryi> rQr&r*)rrrNrrrrrrr*rrurvrrmZ randrangercrryrrr) r+Ztz55Z timeawareZ nowawareplus2rZtzrrjrrryZmaxdiffZtzaZtzbr)rrrrr test_tz_aware_arithmeticsT        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]4}t dD](}t |} || j|t j|d} | |} t| | tddkrnqf|dq`dS)NrO42rIrQrrrrrrTrQrweirdtzrArrz0utcnow(), now(tz), or astimezone() may be broken)rrrNrrr*rcrrurvrrrr)rrPrZfail) r+methrgoff42anotheragainrrrrr)Znow2rrr test_tzinfo_nows4       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)NrrOrrIrQrrrr_i'rr)rrrrNrrr*rcrrurvrrr)r+rrrrgrrrrZ utcdatetimercrrrjrrr test_tzinfo_fromtimestamp's*        z(TestDateTimeTZ.test_tzinfo_fromtimestampcCs:|jj}|}tdd}|t|||jt||ddS)NrOrr)rr)rNrurv)r+rrgrrrr test_tzinfo_utcnowJs  z!TestDateTimeTZ.test_tzinfo_utcnowcCsPddl}|jj}|}||}tdd}|t||||jt|||ddS)NrrOrr)rrrrNrurv)r+rrrrgrrrr test_tzinfo_utcfromtimestampTs z+TestDateTimeTZ.test_tzinfo_utcfromtimestampc CshGdddt}|j}dD]U\}}|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@r)z1TestDateTimeTZ.test_tzinfo_timetuple..DSTcSt|tr t|d}||_dSrPrSrTrdstvaluer+rrrr rZd   z:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__cSr`r[rrarrr rfhrdz5TestDateTimeTZ.test_tzinfo_timetuple..DST.dstNr9rLrMrZrfrrrr DSTcs r))r")r;r")rr)Nrr"r#rrrrrrrrrr)rrr r*r;r<r=r>r?r@rArBrCrurvr)r+rrfrflagr>rrrr test_tzinfo_timetuple`s& """z$TestDateTimeTZ.test_tzinfo_timetuplec sGdddt|j}|t|dddddjGfddd}dD]f}|dd d d d d d|d|d}|}||j|j||j |j ||j |j |d|j |d|j||j|j|||j||tdddd|j|d|jq&|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..DSTrcSrrPrrrrr rZrz6TestDateTimeTZ.test_utctimetuple..DST.__init__cSr`r[rrarrr rfrdz1TestDateTimeTZ.test_utctimetuple..DST.dstN)rrrrrr rs  rr"rrcs"eZdZdfdd ZddZdS)z.TestDateTimeTZ.test_utctimetuple..UOFSNcs||t|d|_dSrP)rZruofs)r+rZdofsrrr rZs z7TestDateTimeTZ.test_utctimetuple..UOFS.__init__cSr`r[)rrarrr rcrdz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffsetr[rrrrr UOFSs r )rr;rNrErAr#rrrirsrrc@rk)z.TestDateTimeTZ.test_utctimetuple..NOFScSrr[rrarrr rcrz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffsetNrnrrrr NOFSror c@rk)z.TestDateTimeTZ.test_utctimetuple..BOFScSr)Nrrrarrr rcrz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetNrnrrrr BOFSror rr rTri+rrrr.rrrr)#rrrurzrcZ utctimetupler*rr;rr<rdr=r>r?rr@rrArrrBrCr rvrrrryrrPrr`rr2) r+rfr rr>rr r rZdtzrcZhugerrr test_utctimetuples\   z TestDateTimeTZ.test_utctimetuplec Cstdd}tdd}tdd}tdd}|j}d}d||||fD]f}d D]a}|d d d d dd||d} d|r7dp8d} |durB| pCd} | | } | } || |d| || | d|| d|d| || d|d| |t| |d| q$q dS)Nrrz+03:40iz-03:51rz 0001-02-03)riyr"rErArGrBrrz04:05:59z.987001rrkuሴr)rNrrerr*r)r+r#ZplusZminusunknownrfZdatestrZofsrr>ZtimestrZofsstrZtailstrZisorrr test_tzinfo_isoformats(    z$TestDateTimeTZ.test_tzinfo_isoformatc Cs6|j}tdd}ttddd}dddd d d d |g}||}|||d }dddddddd|ffD]&\}}|dd} || |<|| } |jdi||i} || | |d7}q4||d|jdd} || j|| | j|d} ||| ||j| j|ddd}|j t |jdddS)Nr4rrrQrr"rErArGrBrIrDrr`rarbrCrDrErFrrrrrrcrrrrrr rks>         zTestDateTimeTZ.test_replacecCsDtdd}tdd}ttdd d}|jj|d}||j||t|j|||j}||j|| | | | | | ||}||j|| | tdd|| }|| |7}|j |d }| | | | | | | ||||j|j| ||dS) NNonerGZ44rBrZm300rIrr)rNrrrrrrurrPr*rrrcrr)r+ZfnoneZf44mZfm5hrbrrjrrrr test_more_astimezones*      z#TestDateTimeTZ.test_more_astimezonercCs4|jtj}||d||||dSr[)rrrrr*rPrarrr test_astimezone_default_utc-sz*TestDateTimeTZ.test_astimezone_default_utcrcCs|jdddddtjd}|}|||||dd|jdddd dtjd}|}|||||dd dS) NrlrsrGrIrrr/z -0500 ESTrBz -0400 EDT)rrrrPr*r)r+rbrrrr test_astimezone_default_eastern5s  z.TestDateTimeTZ.test_astimezone_default_easterncCs8tddddtjd}|}|}||j|jdS)NrLrsr"rBr)rrrrPr*r)r+rrr[rrr !test_astimezone_default_near_fold@sz0TestDateTimeTZ.test_astimezone_default_near_foldc Cs|j}Gdddt}|ddddddd |d }|jd d }|jdd }|jdd }|||fD]}|||fD]}||} t|j|jd } || | q6q/|ddddddd }|jd |d}|jd|d}|jd|d}|||fD]O}|||fD]G}||} ||us||ur||us||urtd} n&||ur|urnntd} n||urtdd } n ||usJtdd } || | q{qtdS)Nc@rk)zBTestDateTimeTZ.test_aware_subtract..OperandDependentOffsetcSrrrrrrr rcNrzLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetNrnrrrr rMrorrrZr#rsrrr rrArrQrrir)rrrrrr*) r+rfrrgrrrrrrjrrrr test_aware_subtractHs<         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"rErArGrBrIrDrrrc@r)z1TestDateTimeTZ.test_mixed_compare..VariescSrrrr]rrr rZr|z:TestDateTimeTZ.test_mixed_compare..Varies.__init__cSrrrrrrr rcrz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetNrrrrr rrrrrQr) rr*rrNrrrcrr}rrrr rZts$        z!TestDateTimeTZ.test_mixed_comparec sGfdddj}ddddddd td d d f}j|}||id di}|j||jd|jd|||d|j|j ddS)Ncrp)z2TestDateTimeTZ.test_subclass_datetimetz..CrOcrqrrrsrur]rr rrwz:TestDateTimeTZ.test_subclass_datetimetz..C.__new__cSrxr[)rrryrrr r{r|z:TestDateTimeTZ.test_subclass_datetimetz..C.newmethNr}rr]rr rrrrrr.rGrBrIrrrr"rrDrOrF) rrNr*r8r~rrcr{rrrrr]r test_subclass_datetimetzs "z'TestDateTimeTZ.test_subclass_datetimetzN)r9rLrMrrrrrCrUrrrBrArrrrrrr rrkrr r~rrrrrZrrrrr rs: E%A%#  $P'   , rcCs d|}|r|t|7}|S)NrI)rr)rbZ days_to_gorrr first_sunday_on_or_afters  rrQrrrGrEr6c@r) USTimeZonecC"t|d|_||_||_||_dSNrr stdoffsetreprnamestdnamedstnamer+rrrr rrr rZ  zUSTimeZone.__init__cCr`r[rr]rrr r^rdzUSTimeZone.__repr__cC||r|jS|jSr[rfr rrarrr re zUSTimeZone.tznamecC|j||Sr[rrfrarrr rcr|zUSTimeZone.utcoffsetcCs|dus |jdur tS|j|usJttj|jd}|dkr+|jdkr+|jdks-Jtt j|jd}|dkrF|jdkrF|jdksHJ||jddkrW|krZt StStSNrcrIrGrDr#r6r) rrrDSTSTARTrrrrrdDSTENDrr+rbrzendrrr rfs$$zUSTimeZone.dstNr9rLrMrZr^rercrfrrrr r  rrrrrHrJCentralZCSTZCDTrFMountainZMSTZMDTiPacificZPSTZPDTri0ZUTCfakec@sdeZdZeddddZeddddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestTimezoneConversionsrrGrDrEr#rMr"c Cs||t||||||}||}||krE|jdkrE||t|||t|||||n||||t}||} ||kr|jdkr|| |jdd|t7}||} || |jdddS|| |tdS)NrErr"r)r*rfrrPrrrr) r+rbrrdstondstoffasutcthere_and_backZ nexthour_utcZ nexthour_tzrrr checkinsides&       z#TestTimezoneConversions.checkinsidecCsF||t||||||}||}|||dSr[)r*rfrrP)r+rbrrr6r7rrr checkoutside/s   z$TestTimezoneConversions.checkoutsidec Cs|jj|d}|jj|d}tddtttddtddfD]8}||||||||||fD] }||||||q1||||||||fD] }||||qLqdS)Nrrrr"rQr)r4rr5rDAYrr8r9)r+rrr4r5rZduringZoutsiderrr convert_between_tz_and_utc:s z2TestTimezoneConversions.convert_between_tz_and_utccCsL|tt|tt|tt|tt|tt|ttdSr[)r;rutc_realr2utc_faker]rrr test_easyPs     z!TestTimezoneConversions.test_easyc CsH|jtdd}tddd}|j|d}|jjdd}|tjdd}||||jjd td }|jjd d}|tjdd}|||ttfD]U}tt fD]N}|j td d}|| d8}|| d} | j|d} d D]-} |j j| d} dD]} | j| d}| j| d} | |}||jdd|q}| t 7} qrqRqLdS)NrGriz-0900rrrArrIrrr"rE)rr"r"rErrrr) r4rrNrrPrr*r<r=r2r5rcr)r+ZfourbackZninewestrrjZsixutcrrZfirst_std_hourr6Z asutcbaseZtzhourZ expectedbaserZastzrrr test_trickyhs6           z#TestTimezoneConversions.test_trickycCsGdddt}|jjtd}||Gddd|}|t|j|Gddd|}|dd d jtd}|t|j|dS) Nc@r)z2TestTimezoneConversions.test_bogus_dst..okcStSr[rrarrr rcrz.ok.utcoffsetcSrBr[rCrarrr rfrz6TestTimezoneConversions.test_bogus_dst..ok.dstNrKrrrr okrMrDrc@rk)z5TestTimezoneConversions.test_bogus_dst..notokcSrr[rrarrr rfrz9TestTimezoneConversions.test_bogus_dst..notok.dstNr9rLrMrfrrrr notokrorFc@rk)z.tricky_notokcSs|jdkrdSdtS)Nrr#)rrrarrr rfs z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dstNrErrrr tricky_notokrorGrr")rrrrr<rPrur)r+rDrrFrGrbrrr test_bogus_dsts z&TestTimezoneConversions.test_bogus_dstc Cs|ttjtjtd}|ttj||jtd}t|}| |j t|ttj|||ttjt Gdddt }|dddd}|jjdtd }|j|d}d D]E}|j|d }|d krn|td d8}t|} | || ||j}||} | || |jtd|} | || |t7}|t7}q[|jjdtd }|j|d}dD]:}|j|d }t|} | || ||j}||} | || |jtd|} | || |t7}|t7}qdS)Nrc@rk)z.FauxUSTimeZonecSs ||jSr[)rrarrr rr_zDTestTimezoneConversions.test_fromutc..FauxUSTimeZone.fromutcNr9rLrMrrrrr FauxUSTimeZonerorJrFEasternZFESTZFEDTrGr?)rrr"rArGrBrrr"r)rr"r"rErArG)rurvrrrr)rr<rr*rrrrr4rrrPrr5) r+rZenowrJrKrzZfstartZwallrrjrrr rsN                    z$TestTimezoneConversions.test_fromutcN)r9rLrMrr4r5rr8r9r;r>rArHrrrrr r3s4 3 r3c@r)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)NcrKr[rrZas_dateZ as_datetimerr rrz+Oddballs.test_bug_1028306..crGr[rrrMrr rrcrJr[rrrMrr rrcrEr[rrrMrr rrcrLr[rrrMrr rrcrHr[rrrMrr rrcrMr[rrrMrr rrcrIr[rrrMrr rrTr"r)rdFr)rrrrrr}rrurvr*__eq__rdrrrrr)r+Z different_dayZ as_differentZdate_scZ datetime_scrrMr test_bug_1028306s4      zOddballs.test_bug_1028306c Cs^tttttttfD]}|t  d|_ Wdn1s'wYqdSrf) rrrrr)rrrruAttributeErrorr$)r+rrrr test_extra_attributess zOddballs.test_extra_attributesc CsGddd}Gdddt}d|dtdtd|d|dd fD]]}|tt|dddddd |ttd|ddddd |ttdd|dddd |ttddd|ddd |ttdddd|dd |ttddddd|d |ttdddddd| q$dS) Nc@r)z-Oddballs.test_check_arg_types..NumbercSs ||_dSr[value)r+rSrrr rZ)r_z6Oddballs.test_check_arg_types..Number.__init__cSr`r[rRr]rrr __int__+rdz5Oddballs.test_check_arg_types..Number.__int__N)r9rLrMrZrTrrrr Number(rrUc@rz)z,Oddballs.test_check_arg_types..FloatNr{rrrr Float.r}rVg$@g%@r#z10.9Z10)rdecimalZDecimalrurvr)r+rUrVZxxrrr test_check_arg_types's zOddballs.test_check_arg_typesN)r9rLrMrOrQrXrrrr rLs% rLc@rk)tzinfo2cCst|ts td|j|urtd|jdd}|jdd}|dus0|dus0|dur2t||krD||}|}||krD|S||fD] }||}||krX|S|jdd}||krh|SqHtd)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfrrr"NzNo suitable local time found)rSrrvrrrrcrf)r+rbZoff0Zoff1ldtZoffrrr rEs,      ztzinfo2.fromutcNrIrrrr rYCs rYc@r) USTimeZone2cCrrrr!rrr rZgr"zUSTimeZone2.__init__cCr`r[r#r]rrr r^mrdzUSTimeZone2.__repr__cCr$r[r%rarrr repr&zUSTimeZone2.tznamecCr'r[r(rarrr rcvr|zUSTimeZone2.utcoffsetcCs|dus |jdur tS|j|usJttj|jd}|dkr+|jdkr+|jdks-Jtt j|jd}|dkrF|jdkrF|jdksHJ|jdd}|t |kr[|kr\t S||krh|t krqnn|j rotSt S||kr}|t krntS|j rt StStSr)) rrrr*rrrrrdr+rrr,rrr rfys"$$ zUSTimeZone2.dstNr.rrrr r^er/r^Eastern2Central2 Mountain2Pacific2c@s<eZdZddZddZddZddZd d Zd d Zd S)Europe_Vilnius_1941cCs$tdddd|dtdddd|dgS)NrIrrrrrrr]rrr _utc_foldzEurope_Vilnius_1941._utc_foldcCs$tdddd|dtdddd|dgS)NrdrIrrrrrer]rrr _loc_foldrgzEurope_Vilnius_1941._loc_foldcCB|\}}||krdtS||kr|jrdtSdtSdtS)NrArErhrrr+rbZ fold_startZ fold_stoprrr rc zEurope_Vilnius_1941.utcoffsetcCri)Nrr"rjrkrrr rfrlzEurope_Vilnius_1941.dstcCs.|\}}||kr dS||krd|jSdS)NMSK)rmCESTrn)rhrrkrrr res  zEurope_Vilnius_1941.tznamecCsr|jdksJ|j|usJ|jdkrt|\}}||kr%|dtS||kr3|dtjddS|dtS)NrrdrArEr"r)rrrrzrfrrrkrrr rs    zEurope_Vilnius_1941.fromutcN) r9rLrMrfrhrcrfrerrrrr rcs  rcc@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)NrdrIrrrrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrrz"Mon Jun 23 23:00:00 1941 CEST+0200r"rz"Tue Jun 24 00:00:00 1941 CEST+0200) rcrrrrPr*rrrrfr})r+Vilniusgdtr]rrr 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)NrdrIrrrrz%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)rcrrPrrr*r)r+rpr]rqrrr test_vilnius_1941_toutcs*        z3TestLocalTimeDisambiguation.test_vilnius_1941_toutccCsztddd}tddddd}||jd||jd|ttddddddWddS1s6wYdSNrr"r)rrr*rrurvr+rrbrrr test_constructors s  "z-TestLocalTimeDisambiguation.test_constructorscCs@tddddd}|}||jd|}||jddS)Nr"r)rrr*rr)r+rbrrrr test_members z'TestLocalTimeDisambiguation.test_memberc Cstd}tddd}||jddjd||jddjd||jddjd||jddjd|jdtd}|jdtd}||jddjd||jddjd|t|jddWdn1spwY|t|jddWdn1swY|t|dddddWdn1swY|t|ddddddddd WddS1swYdS)Nrr"r)rrrrE) rrr*rrrrurrvrurrr rks,     "z(TestLocalTimeDisambiguation.test_replacecCs@td}tddd}|||jdd|||jdddSrt)rrr*rrurrr r2s z+TestLocalTimeDisambiguation.test_comparisoncCsPtd}tddd}|t|t|jdd|t|t|jdddSrt)rrr*r<rrurrr test_hash8s  z%TestLocalTimeDisambiguation.test_hashrcCs<d}t|}t|d}||jd||jddS)NiXUTr6rr")rrr*r)r+r[dt0rwrrr r>s  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")rrrr:rrr*r)r+tmr[r r8rrr test_fromtimestamp_lord_howeFs    z8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howecCs|tdjddSr)r*rrrr]rrr %test_fromtimestamp_low_fold_detectionVszATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectioncCs8tddddd}|jdd}||d|dS)NrqrsrEr"rrr6)rrr*r)r+ryrwrrr test_timestamp[s  z*TestLocalTimeDisambiguation.test_timestampcCshtd}td|dkr|dtddddd }|jd d }|jdd }||d |dS) Nrzr{r|r}rLrGrBr"r?rrr~)rrrr:rrrr*)r+rrs0s1rrr test_timestamp_lord_howebs  z4TestLocalTimeDisambiguation.test_timestamp_lord_howecCs|tddddd}|jdd}|}|}||d||d||t|||jd ||jd dS) NrqrsrEr"rrrHrr)rrrPr*rerr)r+ryrwZadt0Zadt1rrr rRls z+TestLocalTimeDisambiguation.test_astimezonec Csztdd}tddddd}tD]+\}}}||fD]!}|||}||}|||||dkr3dn|j|jqqdS)Nr"rrGr)rrrrrr*r) r+rrbrrrrr[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*rrurrr rs  z%TestLocalTimeDisambiguation.test_reprc Cs tddddtdtj}tddddtd}||t||t||jddt||jddtdD] }tdddd|td}||t||jddtq?dD] }tdd d d|td}||t||jddtqbdS) Nrr#rMr"rrErr@rGrD) rr_rr]r*rfrrr)r+ dt_summer dt_winterrrbrrr rsz$TestLocalTimeDisambiguation.test_dstcCstddddtdtj}tddddtd}||dt||dt||jdd dt||jdd dtdS) Nrr#rMr"rrErHrr)rr_rr]r*rcrr)r+rrrrr rs  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#rMrIrrDrGrBrrr")rrr)rMr"rE)rIrr) rr_rr]rr*rrrdr) r+Zu_summerZu_winterZt_summerZt_winterrr r8rrrr rs0        z(TestLocalTimeDisambiguation.test_fromutccCsLtdddtd}|||tjtdddtd}|||tjdS)Nrr"rrI)rr_r*rPrrrrrr test_mixed_compare_regularsz6TestLocalTimeDisambiguation.test_mixed_compare_regularcC<tdddddtd}|tj}||||||dS)Nrr#rMr"r?rrr_rPrrr)r+t_foldZ t_fold_utcrrr test_mixed_compare_fold  z3TestLocalTimeDisambiguation.test_mixed_compare_foldcCr)NrrGrDrEr?rr)r+t_gapZ t_gap_utcrrr test_mixed_compare_gaprz2TestLocalTimeDisambiguation.test_mixed_compare_gapcCstdddtd}|t|t|jddtdddddtd}tdd d d dtd}|t|t|jdd|t|t|jdddS) Nrr"rrrr#rMr?rGrDrE)rr_r*r<r)r+rrrrrr test_hash_awares  z+TestLocalTimeDisambiguation.test_hash_awareN)r9rLrMrrrsrvrwrkrrxr r~rrrrrrRrrrrrrrrrrrrr ros8       ! rocCs"t|\}}t|dt||Sr[)rteenextr)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 rZs zZoneInfo.__init__cCstd|td|f}|rT|ddt}|dd|7<|dd|7<tdt|D]$}|d|||ddt7<|d|||dt7<q/|S)Nrrr")rSECrr=)rrrrYrrrr rs$"zZoneInfo.invertc CsF|ddkr td|dtd}||dtjdkr%|td}|||dtjdkr:|td }|||dg}t |d D]}| t d |d qN||d }t |D]\}\}} } || |d| } td|| | f||<qhdgt|} t |D] \}} || | |<q||| }|S)NrGZTZifznot a zoneinfo filertrrAr8rr*r"z>lbbrIrE)readdecoderseekrfromfiler7 byteorderZbyteswaprrstructZunpackrqfindrr=)rfZfileobjZcountsrZ type_indicesZttisrZabbrsZgmtoffisdstZabbrindabbrridxr+rrr rs2     zZoneInfo.fromfilecCsHtj|j|}t|d }||WdS1swYdS)Nrb)ospathjoinzonerootopenr)rfr5rrrrr fromname3s $zZoneInfo.fromnamer\r"cCst|ts td|j|urtd||jd|jd|jd|j }||j dkr7|j d}d}nCt |j |}|j |d|ksIJ|t|j ksY||j |ksYJ|j |d|\}}|d|d}|td||j |dk}||d7}|r|jdd S|S) rZr[r\rr6rr"rrEr)rSrrvrrr EPOCHORDINALrrrrrbisect bisect_rightr=rr)r+rbrZttirrZtti_prevshiftrrr r;s0      zZoneInfo.fromutccCs\||jd|jd|jd|j}|j|j}t||}|j t d|d|S)Nrr6rrr") rrrrrrrrrrry)r+rbrrrrrrr _find_tiYs  zZoneInfo._find_ticC ||dSrrrarrr rcc zZoneInfo.utcoffsetcCs||d}|r tStSrf)rrr)r+rbrrrr rffs  z ZoneInfo.dstcCr)NrErrarrr renrzZoneInfo.tznameNccs|dur|j}tj|d}zt|}Wn tyYdSw| |D]}|}|r9|ds9|dVq%WddS1sEwYdS)Nzzone.tab#rE) rrrrrr stripr3r )rfZzonedirZzone_tabrlinerrr zonenamesqs"  "zZoneInfo.zonenamescCsd}}}}tj}}t}} tj} } d} } tj}}d}}t|dd}|D]v}|d7}||}|D]f\}}||krEq<|tkrp|d7}||f|| fkr[|}|} |} |tj|f|tj| fkro|}|} |} q<|tkr|d7}| }||f| |fkr|} |}|}|tj|f|tj|fkr|}|}|}q<|d7}q %s)rrrrr) rfZ same_abbrrrrrrbrZ prev_abbrrrrr print_all_nondst_foldss  zZoneInfo.print_all_nondst_foldsccs,|D]\}}|tkr|| fVqdSr[rrr+rrrrr foldss  zZoneInfo.foldsccs*|D] \}}|tkr||fVqdSr[rrrrr gapss  z ZoneInfo.gapsccs"|D] \}}|s|VqdSr[)rrrrr zeross zZoneInfo.zerosr[)r")Fr")r9rLrMrrZrvr classmethodrrrrrrrrcrfrerrrrrrrrrrrr rs4  $    0   rc@s8eZdZdZddZddZddZdd Zd d Zd S) ZoneInfoTestzAmerica/New_Yorkc Csxtjdkr |dtjdkr|dz t|j|_WdSty;}z|d|j|fWYd}~dSd}~ww)Nvxworksz"Skipping zoneinfo tests on VxWorksr%z"Skipping zoneinfo tests on WindowszSkipping %s: %s)r7rr:rrrrFileNotFoundError)r+errrrr rs    "zZoneInfoTest.setUpcCs<||jdd|jt|jf|jdd|jt|jfdS)Nr)r*rridr)r+rrrrr assertEquivDatetimessz!ZoneInfoTest.assertEquivDatetimesc Cs|j}|D]u\}}d|d||tjfD]E}||}||j|d}||jd|jtj d |}| ||| }||jdd||| | tj |jtj dqtj |fD]}||}|j|d}||}||jdqcqdS)Nrr rr") rrrr]rrr*rrrrPrrc r+rrbrrudtr]Zadtrcrrr test_foldss(    zZoneInfoTest.test_foldsc Cs,|j}|D]\}}d|d||tjfD]^}||}|j|d}||}||jd|jtj d |}| ||| }||jdd|jdd|||j|d||}| |jdd |jdd d|qtj |fD]}||}||j|d}||jdq|qdS)Nrr rr"rzAt %s.)rrrr]rrr*rrrrPrrcZ assertLessrrrr test_gapss,    zZoneInfoTest.test_gapsc Csd|jvs |jdr|d|j|j}tjd}|jtjd<zt| D]{\}}|j dkr6nq|t dddt }|t }dd d d |d|d |d fD]%}||}t |} t ||jdd} || | | } ||| qS|d krt ||d} | } | jdd}|| ||d||||dq+W|durtjd=n|tjd<tdS|durtjd=n|tjd<tw)NZRiyadh8zright/z Skipping %sTZir\r"iirri@i2rrEr)rr3r:rrenvirongetrtzsetrrrrrrrrr*)r+rrrrrrrr[ZsdtZtzdtrrbZts0Zts1rrr test_system_transitionssL             z$ZoneInfoTest.test_system_transitionsN) r9rLrMrrrrrrrrrr rs  rcseZdZfddZZS)ZoneInfoCompleteTestcshg}tdr,tD]!}td|tfi}||_t|D]}|dr*|||qq t |dS)NZtzdatazZoneInfoTest[%s]Ztest_) r rrrrrr-r3rsuperrZ)r+rr5ZTestmethodr8rr rZEs   zZoneInfoCompleteTest.__init__)r9rLrMrZ __classcell__rrrr rDsrc@r)IranTestz Asia/TehranN)r9rLrMrrrrr rQrrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+S),CapiTestcCs$|jjdr |dtdS)NZPurezNot relevant in pure Python)r8r9r4r: _testcapiZtest_datetime_capir]rrr rVs  zCapiTest.setUpc CsRdD]$}t|}|j|d||tjWdn1s!wYqdS)NTF) use_macro)rZget_timezone_utc_capirrrr)r+rZcapi_utcrrr test_utc_capi_s zCapiTest.test_utc_capic Cst\}}}ttddd}ttdd}d||fd||fd||fg}|D]U\}}} |j|dB||| tdd d |d } tdd d | d } || | || | tdd d d tjd } || tj| Wdn1svwYq&dS) Nrrrest_capi est_macro est_macro_nn)r5rrErGrrB) rZmake_timezones_capirrrr*rrerrP) r+rrrZ exp_namedZ exp_unnamedcasesr5Ztz_actZtz_exprwrrQrrr test_timezones_capifs&  zCapiTest.test_timezones_capic CGdddt}t|fD]?}dD]:}||}|j||d%t|\}}}|||j|||j|||jWdn1sEwYqq dS)Nc@rz)z=CapiTest.test_PyDateTime_DELTA_GET..TimeDeltaSubclassNr{rrrr TimeDeltaSubclassr}r)r7韆rrfr)rrrZPyDateTime_DELTA_GETr*rrr)r+rklassrr>rrrrrr test_PyDateTime_DELTA_GET z"CapiTest.test_PyDateTime_DELTA_GETc Cr)Nc@rz)z2CapiTest.test_PyDateTime_GET..DateSubclassNr{rrrr r|r}r|))rr"rE)rlrErr)rrrZPyDateTime_GETr*rrrd)r+r|rrr>rrrdrrr test_PyDateTime_GETrzCapiTest.test_PyDateTime_GETc CsGdddt}t|fD]Z}ddddddd d tjffD]J}||}|j||d 5t|\}}}}} |||j|||j|||j |||j | | |j Wdn1s`wYqq dS) Nc@rz)z;CapiTest.test_PyDateTime_DATE_GET..DateTimeSubclassNr{rrrr rr}r)rrrrrrrrrrrrrr) rrrrrZPyDateTime_DATE_GETr*rrrrrr) r+rrrr>rrrrrrrr test_PyDateTime_DATE_GETs(  z!CapiTest.test_PyDateTime_DATE_GETc CsGdddt}t|fD]W}dddddtjffD]J}||}|j||d5t|\}}}}} |||j|||j|||j |||j | | |j Wdn1s]wYqq dS) Nc@rz)z7CapiTest.test_PyDateTime_TIME_GET..TimeSubclassNr{rrrr rr}r)rrrr#rrrr#r) rrrrrZPyDateTime_TIME_GETr*rrrrrr) r+rrrr>rrrrrrrr test_PyDateTime_TIME_GETs$  z!CapiTest.test_PyDateTime_TIME_GETcCst\}}}|jdd||tjWdn1swY|jdd||tjWdn1s||tjttddd}|||t dd d |d }t dd d |d }||||| | WddS1swYdS) Nutc0)Ztestnameutc1non_utcrrrrrErGr) rZget_timezones_offset_zerorrrrrrr*rre)r+rrrZ non_utc_exprwrrrr test_timezones_offset_zeros   "z#CapiTest.test_timezones_offset_zeroc Cs Gdddt}tddd}|ddd}tddd}tj}||||||||||||d|||d|||dttddtdt j t ddg}|D]&}d D]!}|j ||d ||||Wdn1s}wYqaq]dS) Nc@rz)z.CapiTest.test_check_date..DateSubclassNr{rrrr r|r}r|r"T 2011-01-01rrrargexact) rrrZdatetime_check_dater}rrrrrrrr) r+r|r>ZdsrbZis_daterrrrrr test_check_dates,    zCapiTest.test_check_datec CsGdddt}tdd}|dd}tj}|||||||||d|||dttddtdtj t dddg}|D]&}d D]!}|j ||d ||||Wdn1sgwYqKqGdS) Nc@rz)z.CapiTest.test_check_time..TimeSubclassNr{rrrr rr}rrrTr"rrrr) rrZdatetime_check_timer}rrrrrrrr)r+rrrZis_timerrrrrr test_check_times&   zCapiTest.test_check_timec CsGdddt}tddddd}|ddddd}tj}|||||||||d|||dttddtdtj t dddg}|D]&}d D]!}|j ||d ||||Wdn1smwYqQqMdS) Nc@rz)z6CapiTest.test_check_datetime..DateTimeSubclassNr{rrrr rr}rrr"rrTrrr) rrZdatetime_check_datetimer}rrrrrrrr)r+rrbr^Z is_datetimerrrrrr test_check_datetime s& zCapiTest.test_check_datetimec CsGdddt}td}|d}tj}|||||||||d|||dttddtjt dddt dddg}|D]&}dD]!}|j ||d||||Wdn1sgwYqKqGdS) Nc@rz)z4CapiTest.test_check_delta..TimeDeltaSubclassNr{rrrr r(r}rr"Trrrr) rrZdatetime_check_deltar}rrrrrrrr)r+rrZtdsZ is_timedeltarrrrrr test_check_delta's& zCapiTest.test_check_deltac CsGdddt}t}|}ttdd}tj}||||||||||||d|||d|||dttddt dddt dddg}|D]&}d D]!}|j ||d ||||Wdn1sywYq]qYdS) Nc@rz)z2CapiTest.test_check_tzinfo..TZInfoSubclassNr{rrrr TZInfoSubclassBr}rrrTr"rrrr) rrrrZdatetime_check_tzinfor}rrrrrr) r+rrZtzisrZ is_tzinforrrrrr test_check_tzinfoAs, zCapiTest.test_check_tzinfoc Chtddd}dD])}|j|dt||j|j|j}|||Wdn1s,wYqdS)NrrrFTmacro)rrrZget_date_fromdaterrrdr*r+exp_dater c_api_daterrr test_date_from_date^ zCapiTest.test_date_from_datec Cstddddddd}dD]1}|j|d !t||j|j|j|j|j|j |j }| ||Wdn1s8wYq dS) Nrrrrrrrrr) rrrZget_datetime_fromdateandtimerrrdrrrrr*rrrr test_datetime_from_dateandtimeks" z'CapiTest.test_datetime_from_dateandtimecCstddddddd}dD]A}d D]<}|j||d +t||j|j|j|j|j|j |j |j }| ||| |j |j Wdn1sGwYqq dS) Nrrrrrrrrr"rrr) rrrZ#get_datetime_fromdateandtimeandfoldrrrdrrrrrr*)r+rrrr rrr %test_datetime_from_dateandtimeandfold|s* z.CapiTest.test_datetime_from_dateandtimeandfoldc Csntdddd}dD]+}|j|dt||j|j|j|j}|||Wdn1s/wYq dS)Nrrrrrr) rrrZget_time_fromtimerrrrr*)r+exp_timer c_api_timerrr test_time_from_timeszCapiTest.test_time_from_timec Cstdddd}dD];}dD]6}|j||d%t||j|j|j|j|j}| ||| |j|jWdn1s>wYq q dS)Nrrrrr rr) rrrZget_time_fromtimeandfoldrrrrrr*)r+rrrrrrr test_time_from_timeandfolds$ z#CapiTest.test_time_from_timeandfoldc Cr)Nrrrrr)rrrZget_delta_fromdsurrrr*)r+Z exp_deltarZ c_api_deltarrr test_delta_from_dsur zCapiTest.test_delta_from_dsuc Csntddd}dD]*}|j|dtt||}||tdddWdn1s/wYq dS)NrGrrr)rrrrZget_date_fromtimestamprTr*r)r+rrr>rrr test_date_from_timestampsz!CapiTest.test_date_from_timestampc Csdddttdddfddd ttdddfg}tj}|D]=}d D]8}|j||d '|\}}}t|d |i}t|} || |||} ||| Wdn1sTwYq!qdS) N)rrGrNF)rNTrr"rT)rrGrr rNF)rNTrr)caserr) rrrZget_datetime_fromtimestamprrrTrr*) r+rr*rrZdtuprZusetzZdt_origrrrrr test_datetime_from_timestamps(   z%CapiTest.test_datetime_from_timestampN)r9rLrMrrrrrrrrrrrrrr r rrrrrrrrrr rUs,   rcCs|t|Sr[)ZaddTestr)loaderZstandard_testspatternrrr load_testss r__main__)mrrrrrrWr7rrrmrzrrroperatorrrrrrrr r r testr Z test.supportr rrrrr)rrrrrrrrrr0rZ_loadsrRrrrr=rNrrgr+ZTestCaser'rNrhrlrprrrrrrrrrrrrrrrrr2rr:r*r+rrr0r1r2r<r=r3rLrYr^r_r`rarbrcrorrrrZ TestSuiterrrrr9mainrrrr s ,       8_A3=!a"<   *  M"32 gk