B
    {[k  ã               @   sb   d dl Z d dlZd dlZG dd„ dejƒZG dd„ deƒZG dd„ deeƒZG dd	„ d	eeƒZdS )
é    Nc               @   sn   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )Ú
SDistTestsc             C   s   ddl m} |S )Nr   )ÚSDist)Úpkginfo.sdistr   )Úselfr   © r   ú7lib/python3.7/site-packages/pkginfo/tests/test_sdist.pyÚ_getTargetClass   s    zSDistTests._getTargetClassNc             C   s"   |d k	r|   ¡ ||ƒS |   ¡ |ƒS )N)r   )r   ÚfilenameÚmetadata_versionr   r   r   Ú_makeOne   s    zSDistTests._makeOnec             C   sN   |   |j|¡ |   |jd¡ |   |jd¡ |   |jd ¡ |   t|jƒg ¡ d S )NZ	mypackagez0.1)ÚassertEqualr	   ÚnameÚversionÚkeywordsÚlistZsupported_platforms)r   Úsdistr	   r   r   r   Ú_checkSample   s
    zSDistTests._checkSamplec             C   s   |   t|jƒddg¡ d S )NzDevelopment Status :: 4 - Betaz#Environment :: Console (Text Based))r   r   Zclassifiers)r   r   r   r   r   Ú_checkClassifiers   s    zSDistTests._checkClassifiersc             C   s4   dd l }|j t¡\}}d| }|  t| j|¡ d S )Nr   z*%s/../../docs/examples/nonesuch-0.1.tar.gz)ÚosÚpathÚsplitÚ__file__ÚassertRaisesÚ
ValueErrorr   )r   r   ÚdÚ_r	   r   r   r   Útest_ctor_w_invalid_filename   s    z'SDistTests.test_ctor_w_invalid_filenamec             C   s4   dd l }|j t¡\}}d| }|  t| j|¡ d S )Nr   z(%s/../../docs/examples/nopkginfo-0.1.zip)r   r   r   r   r   r   r   )r   r   r   r   r	   r   r   r   Útest_ctor_wo_PKG_INFO#   s    z SDistTests.test_ctor_wo_PKG_INFOc             C   sH   dd l }|j t¡\}}d| }|  |¡}|  |jd¡ |  ||¡ d S )Nr   z+%s/../../docs/examples/mypackage-0.1.tar.gzz1.0)r   r   r   r   r   r   r
   r   )r   r   r   r   r	   r   r   r   r   Útest_ctor_w_gztar)   s    
zSDistTests.test_ctor_w_gztarc             C   sV   dd l }|j t¡\}}d| }| j|dd}|  ||¡ |  |jd¡ |  |¡ d S )Nr   z+%s/../../docs/examples/mypackage-0.1.tar.gzz1.1)r
   )	r   r   r   r   r   r   r   r
   r   )r   r   r   r   r	   r   r   r   r   Ú&test_ctor_w_gztar_and_metadata_version1   s    z1SDistTests.test_ctor_w_gztar_and_metadata_versionc             C   sH   dd l }|j t¡\}}d| }|  |¡}|  |jd¡ |  ||¡ d S )Nr   z,%s/../../docs/examples/mypackage-0.1.tar.bz2z1.0)r   r   r   r   r   r   r
   r   )r   r   r   r   r	   r   r   r   r   Útest_ctor_w_bztar:   s    
zSDistTests.test_ctor_w_bztarc             C   sV   dd l }|j t¡\}}d| }| j|dd}|  |jd¡ |  ||¡ |  |¡ d S )Nr   z,%s/../../docs/examples/mypackage-0.1.tar.bz2z1.1)r
   )	r   r   r   r   r   r   r
   r   r   )r   r   r   r   r	   r   r   r   r   Ú&test_ctor_w_bztar_and_metadata_versionB   s    z1SDistTests.test_ctor_w_bztar_and_metadata_versionc             C   sH   dd l }|j t¡\}}d| }|  |¡}|  |jd¡ |  ||¡ d S )Nr   z(%s/../../docs/examples/mypackage-0.1.zipz1.0)r   r   r   r   r   r   r
   r   )r   r   r   r   r	   r   r   r   r   Útest_ctor_w_zipK   s    
zSDistTests.test_ctor_w_zipc             C   sV   dd l }|j t¡\}}d| }| j|dd}|  |jd¡ |  ||¡ |  |¡ d S )Nr   z(%s/../../docs/examples/mypackage-0.1.zipz1.1)r
   )	r   r   r   r   r   r   r
   r   r   )r   r   r   r   r	   r   r   r   r   Ú$test_ctor_w_zip_and_metadata_versionS   s    z/SDistTests.test_ctor_w_zip_and_metadata_version)NN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r   r   r   r      s   
		r   c                   sV   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zddd„Z‡ fdd„Z	‡  Z
S )ÚUnpackedMixinc                s   t t| ƒ ¡  t ¡ | _d S )N)Úsuperr'   ÚsetUpÚtempfileZmkdtempÚ_UnpackedMixin__tmpdir)r   )Ú	__class__r   r   r)   ^   s    zUnpackedMixin.setUpc                s   t  | j¡ tt| ƒ ¡  d S )N)ÚshutilZrmtreer+   r(   r'   ÚtearDown)r   )r,   r   r   r.   b   s    zUnpackedMixin.tearDownc             C   s   ddl m} |S )Nr   )ÚUnpackedSDist)r   r/   )r   r/   r   r   r   r   f   s    zUnpackedMixin._getTargetClassc             C   s>   dd l }| | j¡}t|ƒdkr4|j | j|d ¡S | jS d S )Nr   é   )r   Úlistdirr+   Úlenr   Újoin)r   r   Ztopnamesr   r   r   Ú_getTopDirectoryj   s
    zUnpackedMixin._getTopDirectoryc             C   s   |   ¡ S )N)r4   )r   r   r   r   Ú_getLoadFilenamer   s    zUnpackedMixin._getLoadFilenameNc             C   sZ   |   ¡  |¡\}}}z| | j¡ W d | ¡  X |  ¡ }|d k	rN|   ¡ ||ƒS |   ¡ |ƒS )N)r   Z_get_archiveZ
extractallr+   Úcloser5   )r   r	   r
   Úarchiver   Zload_filenamer   r   r   r   u   s    
zUnpackedMixin._makeOnec                s   |   ¡ }tt| ƒ ||¡ d S )N)r4   r(   r'   r   )r   r   r	   )r,   r   r   r   ƒ   s    zUnpackedMixin._checkSample)NN)r$   r%   r&   r)   r.   r   r4   r5   r   r   Ú__classcell__r   r   )r,   r   r'   ]   s   
r'   c               @   s   e Zd ZdS )Ú UnpackedSDistGivenDirectoryTestsN)r$   r%   r&   r   r   r   r   r9   ˆ   s   r9   c               @   s   e Zd Zdd„ ZdS )Ú UnpackedSDistGivenFileSDistTestsc             C   s   dd l }|j |  ¡ d¡S )Nr   zsetup.py)r   r   r3   r4   )r   r   r   r   r   r5   Œ   s    z1UnpackedSDistGivenFileSDistTests._getLoadFilenameN)r$   r%   r&   r5   r   r   r   r   r:   ‹   s   r:   )	r-   r*   ZunittestZTestCaser   Úobjectr'   r9   r:   r   r   r   r   Ú<module>   s   X+