
    ]j                         d Z ddlZddlZddlZddlmZ ddlmZmZ ddlmZ ej                  Z
 G d dej                        Z G d d	e      Zed
k(  r ej                          yy)z3
All related DST croniter tests are isolated here.
    N)datetime)cron_mcroniter)basec                   4    e Zd ZdZdZd Zd Zd Zd Zd	dZ	y)
CroniterDST138Testz<
    See https://github.com/kiorky/croniter/issues/138.
    UTCc           	      d   t         j                  j                  dd      | _        t	        ddddd      | _        t        d| j
                        | _        t	        ddddd	      t	        ddddd
      t	        ddddd      g| _        t        j                  t        j                  c| _
        | _        y )NTZ i           .   z*/5 * * * *2   7      r   )osenviron
setdefault_timer   r   r   iterresultstimetznametimezoneselfs    U/root/env/lib/python3.12/site-packages/croniter/tests/test_croniter_dst_repetition.pysetUpzCroniterDST138Test.setUp   s    ZZ**44
T1b!R0	]DII6	T1b!R(T1b!R(T1b!Q'

 &*[[$--"T]    c                     t         t        _        | j                  st        j
                  d= n| j                  t        j
                  d<   t        j                          y )Nr   )ORIG_OVERFLOW32B_MODEr   OVERFLOW32B_MODEr   r   r   r   tzsetr   s    r   tearDownzCroniterDST138Test.tearDown$   s8    "7zz

4 #zzBJJt

r!   c                 (    | j                  d       y)z2
        test local tz, forcing 32b mode.
        Tm32bN_testr   s    r   test_issue_138_dt_to_ts_32bz.CroniterDST138Test.test_issue_138_dt_to_ts_32b,   s     	


r!   c                 (    | j                  d       y)z6
        test local tz, forcing non 32b mode.
        Fr(   Nr*   r   s    r   test_issue_138_dt_to_ts_nz,CroniterDST138Test.test_issue_138_dt_to_ts_n2   s     	


r!   c                    |t         _        |t        j                  d<   t	        j
                          t        d      D cg c]!  }| j                  j                  t              # }}| j                  || j                         y c c}w )Nr      )r   r$   r   r   r   r%   ranger   get_nextr   assertEqualr   )r   tzr)   iress        r   r+   zCroniterDST138Test._test8   s`    "&

4

5:1X>tyy!!(+>>dll+ ?s    &BN)r	   T)
__name__
__module____qualname____doc___tzr    r&   r,   r.   r+    r!   r   r   r      s(     C	@,r!   r   c                       e Zd ZdZy)CroniterDST138TestLocalzUTC-8N)r7   r8   r9   r;   r<   r!   r   r>   r>   @   s    
Cr!   r>   __main__)r:   r   r   unittestr   r   r   croniter.testsr   r$   r#   TestCaser   r>   r7   mainr<   r!   r   <module>rD      sb   
 
    % // +, +,\0  zHMMO r!   