
    0hhz                         S r SSKrSSKrSSKrSSKJr  SSKrSSKrS rS r	 " S S\R                  5      r " S S	\R                  5      r\S
:X  a  \R                  " 5         gg)z
Unittest for time.strftime
    N)supportc                 4    U S   S:X  a  U S S S-   U SS  -   n U $ )N    0	    )ss    ;/opt/python-3.13.8/usr/lib/python3.13/test/test_strftime.py
fixasctimer      s,    ts{bqECK!AB%H    c                     [         R                  " U 5      nUR                  [         R                  " U5      U5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nU$ )zy
Escape text to deal with possible locale values that have regex
syntax while allowing regex syntax used for comparison.
z\%%z\::z\??)reescapereplace)textampmnew_texts      r   	escapestrr      sf    
 yyH		$6Hs+Hs+Hs+HOr   c                   2    \ rS rSrS rS rS rS rS rSr	g)	StrftimeTest    c                 ^   [         R                  " U5      U l        [         R                  " U5      nUS   S:  a  SU l        OSU l        [         R
                  " UR                  SSSSSSSS4	5      n[         R                  " [         R                  " U5      5      U l         US   (       a  [         R                  S   U l
        O[         R                  S   U l
         US   S:  a  US   S-
  U l        OUS   S:  a  US   U l        OSU l        Xl        g ! [         a
    S	U l
         NLf = f)
N      z(AM|am)z(PM|pm)   r   r    )timegmtimegmt	localtimer   struct_timetm_yearmktimejan1tznametzAttributeErrorclock12now)selfr.   r)   s      r   _update_variablesStrftimeTest._update_variables"   s   ;;s#nnS!q6B;)	!di

 NN4;;t#45		1vQtw KKN$' q6B;s1v{VaZAdl  	DG	s   #"D D D,+D,c                 Z    SSK JnJn  U" U5      nU" US5        U R                  XU5        g )Nr   )	setlocaleLC_TIMEC)localer3   r4   
addCleanup)r/   r3   r4   saved_locales       r   setUpStrftimeTest.setUpF   s'    - )'3	L9r   c                    [         R                   " 5       nU R                  U5        U R                  U5        U R                  U5        [        R
                  (       a@  [        S[        R                  < S[        R                  R                  5       S   < 35        [        SS5       HX  n[        S5       HF  nXUS-  -   S-  S	-  -   nU R                  U5        U R                  U5        U R                  U5        MH     MZ     g )
NzStrftime test, platform: z, Python version: r         d      i  )r"   r0   	strftest1	strftest2r   verboseprintsysplatformversionsplitrange)r/   r.   jiargs        r   test_strftimeStrftimeTest.test_strftimeL   s    iiks#ss??<<!2!2!4Q!79 : r1A2YquWbL--&&s+s#s#	  r   c                    [         R                  (       a   [        S[        R                  " U5      5        U R
                  nS[        R                  US      S4S[        R                  US      S4S[        R                  US      S	4S
[        R                  US      S4SSUS   -  S4SSUS   -  S4SSU R                  -  S4SSUS   -  S4SSUS   -  S4SSUS   -  S4SU R                  S4S SUS!   -  S"4S#SUS   U R                  S   -   S-  -  S$4S%S&SUS   -   S-  -  S'4S(SUS   U R                  S   S-
  S-  -   S-  -  S)4S*S+US   US   US!   4-  S,4S-SUS.   S/-  -  S04S1SUS.   -  S24S34nU H  n [        R                  " US.   U5      n["        R$                  " ['        US   U R                  5      W5      (       a  MS  U(       a	  US.   S6:X  a"  U R!                  S7US.   < S8US   < S935        M  U R!                  S:US.   < S;US   < S<US   < S=U< 35        M     g ! [         a&  nU R!                  S4US.   < S5U< 35         S nANS nAff = f)>Nzstrftime test forz%a   zabbreviated weekday namez%Azfull weekday namez%br   abbreviated month namez%Bzfull month namez%dz%02d   zday of month as number (00-31)z%Hr   zhour (00-23)z%Izhour (01-12)z%j%03d   zjulian day (001-366)z%mzmonth as number (01-12)z%M   zminute, (00-59)z%pzAM or PM as appropriatez%Sr=   zseconds of current time (00-60)z%Uz!week number of the year (Sun 1st)z%wz0?%dzweekday as a number (Sun 1st)z%Wz!week number of the year (Mon 1st)z%X%02d:%02d:%02d%H:%M:%S%yr   r?   zyear without centuryz%Yzyear with century)z%%r   zsingle percent signz
strftime 'z' format gave error: r   z$strftime does not support standard '
' format ()zConflict for z (z): expected 
, but got )r   rC   rD   r"   ctimer.   calendarday_abbrday_name
month_abbr
month_namer-   r   r)   strftime
ValueErrorfailr   matchr   )r/   r.   expectationseresulterrors         r   rA   StrftimeTest.strftest1]   s   ??%tzz#7hh 8$$SV,.HI8$$SV,.AB8&&s1v.0HI8&&s1v.0AB6CF?$DE6CF?N36DLL(.96CF?$:;6CF?$=>6CF?$56499786CF?$EF6c!ftyy|3a78026aAh!^,.MN6c!f		!q(8!';;a?@/1 #s1vs1vs1v&>>
K6SVCZ(*@A4#a&="56.1
6 AQqtS1 xx	!A$		2F;;VAY#-		qT1Q4) * 		qT1Q41v7 8   Q		1Q4OPPQs    H00
I :II c                    [        [        U5      5      S S nU R                  nS[        [        R
                  " U5      5      S4SSUS   US   US   S	-  4-  S
4SSU R                  -  S4SSUS   US   US   S	-  4-  S4SSUS   -  S4S[        R                  US      S4SSUS   -  S4SSSU R                  US   US   U R                  4-  S4SSUS   US   4-  S 4SUS!4S"S#S$US   US   US   4-  S%4S&S'US   S	-  -  S(44nU GH  n [        R                  " US   U5      n[         R"                  " [%        US   U R                  5      U5      (       a3  [        R                  (       a  [        S,US   < S*US   < S-35        M  M  U(       a	  US   S.:X  a3  [        R                  (       a  [        S/US   < S*US   < S-35        M  M  [        R                  (       d  M  [        S0US   < S*US   < S135        [        S2US   < S3U< 35        GM     g ! [         aI  nS)US   < S*US   < S+[        U5      < 3n[        R                  (       a  [        U5         S nAGMc  S nAff = f)4Nr    z%cznear-asctime() formatz%xz%02d/%02d/%02dr   rR   r   r?   z%m/%d/%y %H:%M:%Sz%Zz%sztime zone namez%Dzmm/dd/yyz%ez%2dz,day of month as number, blank padded ( 0-31)z%hrQ   z%kr   zhour, blank padded ( 0-23))z%n
znewline characterz%rz%02d:%02d:%02d %srU   r=   z%I:%M:%S %pz%Rz	%02d:%02dz%H:%Mzseconds since the Epoch in UCT)z%t	ztab characterz%TrV   rW   z%3yrS   z.year without century rendered using fieldwidthzError for nonstandard 'rY   z): zSupports nonstandard 'rZ   r   zDoes not appear to support 'zConflict for nonstandard 'z):z  Expected r[   )strintr.   r   r"   asctimer+   r]   r`   r-   r   rb   rc   r   rC   rD   r   re   r   )r/   r.   nowsecsnonstandard_expectationsrg   rh   msgs          r   rB   StrftimeTest.strftest2   s   c#h-$hh :dll3/02IJ#s1vs1vAs
&DD!4$''>#34 #s1vs1vAs
&DDjQ53q6>#QR8&&s1v.0HI53q6>#?@-&$,,AA		)RR;#a&#a&!117;7<=)#s1vs1vs1v&>>
KFc!fSj)<>'$
 0 *AqtS1 xx	!A$		2F;;??QqT1Q4PQ #vayC/??aD!A$( ) # ???aD!A$( )1vFG) *  tQqT3v;0??#Js   H!!
I4+=I//I4)r   r-   r$   r)   r.   r+   N)
__name__
__module____qualname____firstlineno__r0   r9   rM   rA   rB   __static_attributes__r	   r   r   r   r       s    "H:$".8`0Hr   r   c                   *    \ rS rSrSrS rS rS rSrg)
Y1900Tests   zA limitation of the MS C runtime library is that it crashes if
a date before 1900 is passed with a format string containing "%y"
c                 T   Sn[         R                  S:X  d$  [         R                  R                  S5      (       a6  U R                  [        5         [
        R                  " SU5        S S S 5        g U R                  [
        R                  " SU5      S5        g ! , (       d  f       g = f)N)	ik  r   r   r   r   r   r   r   r   win32)aixsunossolarisrX   99)rE   rF   
startswithassertRaisesrc   r"   rb   assertEqual)r/   ts     r   test_y_before_1900Y1900Tests.test_y_before_1900   ss    *LLG#<<""#>??"":.dA& /. T]]43T: /.s   B
B'c                 R    U R                  [        R                  " SS5      S5        g )NrX   )	il  r   r   r   r   r   r   r   r   00r   r"   rb   r/   s    r   test_y_1900Y1900Tests.test_y_1900   "    MM$ >?	Gr   c                 R    U R                  [        R                  " SS5      S5        g )NrX   )	i  r   r   r   r   r   r   r   r   13r   r   s    r   test_y_after_1900Y1900Tests.test_y_after_1900   r   r   r	   N)	ru   rv   rw   rx   __doc__r   r   r   ry   r	   r   r   r{   r{      s    ;GGr   r{   __main__)r   r]   rE   r   testr   r"   unittestr   r   TestCaser   r{   ru   mainr	   r   r   <module>r      sk     
 	   

]H8$$ ]H@G"" G. zMMO r   