
    daf                         d Z ddlZddlZddlZddlmZ ddlZddlZd Zd Z	 G d dej                        Z G d d	ej                        Zed
k(  r ej                          yy)z
Unittest for time.strftime
    N)supportc                 2    | d   dk(  r| d d dz   | dd  z   } | S )N    0	    )ss    -/root/Python-3.12.4/Lib/test/test_strftime.py
fixasctimer      s,    ts{bqECK!AB%H    c                     t        j                  |       }|j                  t        j                  |      |      }|j                  dd      }|j                  dd      }|j                  dd      }|S )z
    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                   *    e Zd Zd Zd Zd Zd Zd Zy)StrftimeTestc                 &   t        j                  |      | _        t        j                  |      }|d   dk  rd| _        nd| _        t        j                  t        j
                  |d   ddddddddf	            | _        	 |d   rt         j                  d   | _        nt         j                  d   | _        |d   dkD  r|d   dz
  | _
        || _        y |d   dkD  r|d   | _
        || _        y d| _
        || _        y # t        $ r
 d| _        Y Xw xY w)	N      z(AM|am)z(PM|pm)r      r    )timegmtimegmt	localtimer   mktimejan1tznametzAttributeErrorclock12now)selfr*   s     r   _update_variableszStrftimeTest._update_variables"   s    ;;s#nnS!q6B;)	!diNN4;;A1aAq!Q/O#PQ		1vQtw KKN$' q6B;s1v{  VaZA   dl  	DG	s   6C= =DDc                 \    ddl m}m}  ||      } ||d       | j                  |||       y )Nr   )	setlocaleLC_TIMEC)localer.   r/   
addCleanup)r+   r.   r/   saved_locales       r   setUpzStrftimeTest.setUp8   s)    - )'3	7L9r   c                    t        j                          }| j                  |       | j                  |       | j                  |       t        j
                  r>t        dt        j                  dt        j                  j                         d          t        dd      D ]V  }t        d      D ]F  }|||dz  z   dz  d	z  z   }| j                  |       | j                  |       | j                  |       H X y )
NzStrftime test, platform: z, Python version: r         d      i  )r    r,   	strftest1	strftest2r   verboseprintsysplatformversionsplitrange)r+   r*   jiargs        r   test_strftimezStrftimeTest.test_strftime>   s    iiks#ss??<<!2!2!4Q!79 : r1 	$A2Y $QquWbL--&&s+s#s#	$	$r   c                    t         j                  rt        dt        j                  |             | j
                  }dt        j                  |d      dfdt        j                  |d      dfdt        j                  |d      d	fd
t        j                  |d      dfdd|d   z  dfdd|d   z  dfdd| j                  z  dfdd|d   z  dfdd|d   z  dfdd|d   z  dfd| j                  dfd d|d!   z  d"fd#d|d   | j                  d   z   dz  z  d$fd%d&d|d   z   dz  z  d'fd(d|d   | j                  d   dz
  dz  z   dz  z  d)fd*d+|d   |d   |d!   fz  d,fd-d|d.   d/z  z  d0fd1d|d.   z  d2fd3f}|D ]  }	 t        j                  |d.   |      }t#        j$                  t'        |d   | j                              rK|r|d.   d6k(  r| j!                  d7|d.   d8|d   d9       t| j!                  d:|d.   d;|d   d<|d   d=|        y # t        $ r$}| j!                  d4|d.   d5|       Y d }~d }~ww xY w)>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%Sr7   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   r9   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   r=   r>   r    ctimer*   calendarday_abbrday_name
month_abbr
month_namer)   r   r%   strftime
ValueErrorfailr   matchr   )r+   r*   expectationseresulterrors         r   r;   zStrftimeTest.strftest1O   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  	8AQqtS1 xx	!A$		2F;VAY#-		qT1Q4) * 		qT1Q41v7 8	8  Q		1Q4OPPQs   :H	I H;;I c                 ~   t        t        |            d d }| j                  }dt        t	        j
                  |            dfdd|d   |d   |d   d	z  fz  d
fdd| j                  z  dfdd|d   |d   |d   d	z  fz  dfdd|d   z  dfdt        j                  |d      dfdd|d   z  dfddd| j                  |d   |d   | j                  fz  dfdd|d   |d   fz  d fd|d!fd"d#d$|d   |d   |d   fz  d%fd&d'|d   d	z  z  d(ff}|D ]  }	 t	        j                  |d   |      }t!        j"                  t%        |d   | j                        |      r*t        j                  s[t        d,|d   d*|d   d-       t|r|d   d.k(  r*t        j                  st        d/|d   d*|d   d-       t        j                  st        d0|d   d*|d   d1       t        d2|d   d3|        y # t        $ r@}d)|d   d*|d   d+t        |      }t        j                  rt        |       Y d }~,d }~ww xY w)4Nz%cznear-asctime() formatz%xz%02d/%02d/%02dr   rK   r   r9   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%hrJ   z%kr   zhour, blank padded ( 0-23))z%n
znewline characterz%rz%02d:%02d:%02d %srN   r7   z%I:%M:%S %pz%Rz	%02d:%02dz%H:%Mzseconds since the Epoch in UCT)z%t	ztab characterz%TrO   rP   z%3yrL   z.year without century rendered using fieldwidthzError for nonstandard 'rR   z): zSupports nonstandard 'rS   r   zDoes not appear to support 'zConflict for nonstandard 'z):z  Expected rT   )strintr*   r   r    asctimer'   rV   rY   r)   r   r[   r\   r   r=   r>   r   r^   r   )r+   r*   nowsecsnonstandard_expectationsr`   ra   msgs          r   r<   z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 * 	HAqtS1 xx	!A$		2F;??QqT1Q4PQvayC/??aD!A$( ) ??aD!A$( )1vFG)	H  tQqT3v;0??#Js   G33	H<<5H77H<N)__name__
__module____qualname__r,   r4   rG   r;   r<   r	   r   r   r   r       s    ,:$".8`0Hr   r   c                   "    e Zd ZdZd Zd Zd Zy)
Y1900TestszA 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                 :   d}t         j                  dk(  st         j                  j                  d      r5| j                  t              5  t        j                  d|       d d d        y | j                  t        j                  d|      d       y # 1 sw Y   y xY w)N)	ik  r   r   r   r   r   r   r   r   win32)aixsunossolarisrQ   99)r?   r@   
startswithassertRaisesr\   r    r[   assertEqual)r+   ts     r   test_y_before_1900zY1900Tests.test_y_before_1900   sy    *LLG#<<""#>?"":. 'dA&' ' T]]43T:' 's   
BBc                 P    | j                  t        j                  dd      d       y )NrQ   )	il  r   r   r   r   r   r   r   r   00rz   r    r[   r+   s    r   test_y_1900zY1900Tests.test_y_1900   "    MM$ >?	Gr   c                 P    | j                  t        j                  dd      d       y )NrQ   )	i  r   r   r   r   r   r   r   r   13r   r   s    r   test_y_after_1900zY1900Tests.test_y_after_1900   r   r   N)rm   rn   ro   __doc__r|   r   r   r	   r   r   rq   rq      s    ;GGr   rq   __main__)r   rV   r?   r   testr   r    unittestr   r   TestCaser   rq   rm   mainr	   r   r   <module>r      sm     
 	   

OH8$$ OHdG"" G. zHMMO r   