o
    i                     @   s   d dl m Z  d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
 d dlmZmZ G dd deZG dd	 d	eZG d
d deZG dd dejZdS )    )datetimeN)call	MagicMockpatch)newest_packageslatest_updated_packages	HTTPError)_getPackagec                   @   2   e Zd ZdZejejedZ	e
e	 ZdS )GoodNewestResponse   z
newest.xmlN__name__
__module____qualname__status_codeospathjoindirname__file__xmlopenreadcontent r   r   K/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/tests/test_parse.pyr          r   c                   @   r   )GoodUpdatedResponser   zupdated.xmlNr   r   r   r   r   r      r   r   c                   @   s   e Zd ZdZdZdS )BadResponse,  MockedN)r   r   r   r   reasonr   r   r   r   r       s    r    c                   @   s   e Zd Zdd Zdd Zdd Zededd	d
 Zededdd Z	ede
ddd Zede
ddd Zede
ddd Zede
ddd Zededdd Zededdd Zededdd ZdS )	TestParsec                 C   s   |   | _|  | _d S )N)setup_newestnewestsetup_updatedupdated)selfr   r   r   setUp    s   
zTestParse.setUpc                 C   s@   ddddd}dddd	d}d
dddd}t |t |t |gS )Ngobble"http://pypi.python.org/pypi/gobble*Automatic functional testing for CLI apps.09 Aug 2014 06:57:42 GMT)nameurldescriptiondateflask_autorestz*http://pypi.python.org/pypi/flask_autorestz@auto create restful apis for database, with the help of dataset.z09 Aug 2014 05:24:58 GMTranrodz"http://pypi.python.org/pypi/ranrodz1download route53 hosted zones as local json filesz09 Aug 2014 05:20:21 GMTr
   r)   item1item2item3r   r   r   r%   $   s    zTestParse.setup_newestc                 C   sF   dddddd}ddd	d
dd}dddddd}t |t |t |gS )Npycoin0.50'http://pypi.python.org/pypi/pycoin/0.50IUtilities for Bitcoin and altcoin addresses and transaction manipulation.09 Aug 2014 08:40:20 GMT)r/   versionr0   r1   r2   zdjango-signupz0.6.0z/http://pypi.python.org/pypi/django-signup/0.6.0zFA user registration app for Django with support for custom user modelsz09 Aug 2014 08:33:53 GMTpyADCz0.1.3z'http://pypi.python.org/pypi/pyADC/0.1.3z@Python implementation of the ADC(S) Protocol for Direct Connect.z09 Aug 2014 08:19:56 GMTr5   r6   r   r   r   r'   3   s&   zTestParse.setup_updatedzrequests.get)return_valuec              
   C   b   zt   W d S  ty0 } z| d|j | |j|j | |j|j W Y d }~d S d }~ww Nr!   )r   r   assertEqualr   errnor#   messager)   get_mocker   r   r   test_newest_packages_bad_getE      z&TestParse.test_newest_packages_bad_getc              
   C   rB   rC   )r   r   rD   r   rE   r#   rF   rG   r   r   r   test_updated_packages_bad_getO   rK   z'TestParse.test_updated_packages_bad_getc                 C   sj   t  }| td|j | | jd j|d j | | jd j|d j | | jd j|d j d S )N3https://pypi.python.org/pypi?%3Aaction=packages_rssr         )r   rD   r   	call_argsr&   r/   r)   rH   pr   r   r   test_newest_packagesY   s   
zTestParse.test_newest_packagesc                 C   sl   t  }| td|j | d|d j | d|d j | d|d j | tdd|d j	 d S )NrM   r+   r   r,   r-   r.   %d %b %Y %H:%M:%S %Z)
r   rD   r   rP   r/   r0   r1   r   strptimer2   rQ   r   r   r   test_newest_packageb   s   

zTestParse.test_newest_packagec                 C   0   t  }| td|j | d|d   d S )NrM   z<Package gobble>r   )r   rD   r   rP   __repr__rQ   r   r   r   test_newest_package_repro   
   
z"TestParse.test_newest_package_reprc                 C   s.   t  }| td|j | d |d j d S )NrM   r   )r   rD   r   rP   r?   rQ   r   r   r   test_newest_package_versionv   s
   
z%TestParse.test_newest_package_versionc                 C   s   t  }| td|j | | jd j|d j | | jd j|d j | | jd j|d j | | jd j|d j | | jd j|d j | | jd j|d j d S )N*https://pypi.python.org/pypi?%3Aaction=rssr   rN   rO   )r   rD   r   rP   r(   r/   r?   rQ   r   r   r   test_updated_packages}   s   
zTestParse.test_updated_packagesc                 C   s~   t  }| td|j | d|d j | d|d j | d|d j | d|d j | t	dd|d j
 d S )	Nr\   r:   r   r;   r<   r=   r>   rT   )r   rD   r   rP   r/   r?   r0   r1   r   rU   r2   rQ   r   r   r   test_updated_package   s   

zTestParse.test_updated_packagec                 C   rW   )Nr\   z<Package pycoin>r   )r   rD   r   rP   rX   rQ   r   r   r   test_updated_package_repr   rZ   z#TestParse.test_updated_package_reprN)r   r   r   r*   r%   r'   r   r    rJ   rL   r   rS   rV   rY   r[   r   r]   r^   r_   r   r   r   r   r$      s,    


	

	











r$   )r   r   unittestmockr   r   r   yargr   r   r   
yarg.parser	   r
   objectr   r   r    TestCaser$   r   r   r   r   <module>   s    