U
    H4f5                     @   sV   d dl Z d dlmZ d dlZG dd de jZdd Zdd Ze	d	krRe j
dd
 dS )    N)cPicklec                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	
TestPicklezZ
    A test case template to parse an ISO datetime string into a
    datetime object.
    c                 C   sH   t d}tdtjd D ](}t||}| |t|d|  qdS )zT
        Parse an ISO datetime string and compare it to the expected value.
        z2012-10-26T09:33+00:00r      zpickle proto %d failedN)isodateZparse_datetimerangepickleHIGHEST_PROTOCOLdumpsassertEqualloads)selfZdtiprotopikl r   =/tmp/pip-unpacked-wheel-giipsm8b/isodate/tests/test_pickle.pytest_pickle_datetime   s    
zTestPickle.test_pickle_datetimec                 C   s   ddl m} | }g }tdtjd D ]d}z&t||}|t|krNtdW q& tk
r } z|d|t	|f  W 5 d}~X Y q&X q&| 
t|ddt|  dS )z5
        Pickle / unpickle duration objects.
        r   )Durationr   z	not equalzpickle proto %d failed (%s)Nzpickle protos failed: %s)Zisodate.durationr   r   r   r   r	   r   	Exceptionappendreprr
   lenstr)r   r   Zdurfailedr   r   er   r   r   test_pickle_duration   s    *zTestPickle.test_pickle_durationc                 C   s"   |  tjtttjk dS )zE
        isodate.UTC objects remain the same after pickling.
        N)
assertTruer   UTCr   r   r	   )r   r   r   r   test_pickle_utc)   s    zTestPickle.test_pickle_utcN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r      s   
r   c                  C   s    t  } | t  t | S )z<
    Construct a TestSuite instance for all test cases.
    )unittestZ	TestSuiteZaddTestZ
TestLoaderZloadTestsFromTestCaser   )Zsuiter   r   r   
test_suite0   s    r#   c                 C   s   t  S )N)r#   )loadertestspatternr   r   r   
load_tests:   s    r'   __main__)ZdefaultTest)r"   Z	six.movesr   r   r   ZTestCaser   r#   r'   r   mainr   r   r   r   <module>   s   (
