o
    tf9                     @   s@  d dl Z d dlmZmZ d dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZ ddlmZ ejdd	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dd Zdd Zeddd Zdd  Zg d!Zejd"ed#d$ Zejd"ed%d& Zejd"ed'd( Z d)d* Z!dS )+    N)Mockpatch)ConfigConfigurable)PyPIExtensionManagerReadOnlyExtensionManager)ExtensionManagerExtensionPackagePluginManager   )fake_client_factoryzversion, expected)	)1r   )1.0r   )1.0.0r   )z1.0.0a52z1.0.0-alpha.52)z1.0.0b3z1.0.0-beta.3)z	1.0.0rc22z1.0.0-rc.22)z1.0.0rc23.post2z1.0.0-rc.23)z1.0.0rc24.dev2z1.0.0-rc.24)z1.0.0rc25.post4.dev2z1.0.0-rc.25c                 C   s   t | |ks	J d S )N)r   Zget_semver_version)versionexpected r   i/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/jupyterlab/tests/test_extensions.py(test_ExtensionManager_get_semver_version   s   r   c                    sT   t dddd  fdd}| td| t }| I d H }| gdfks(J d S )	N
extension1Extension 1 description prebuiltc                     s
   d iS )Nr   r   argskwargsr   r   r   mock_installed%   s   zGtest_ExtensionManager_list_extensions_installed.<locals>.mock_installedZ_get_installed_extensionsr   r	   setattrr   list_extensions)monkeypatchr   manager
extensionsr   r   r   /test_ExtensionManager_list_extensions_installed"   s   r$   c                    sh   t dddd t dddd fdd}| td	| t }|d
I d H }| gdfks2J d S )Nr   r   r   r   
extension2Extension 2 descriptionc                         dd fS Nr   r%   r   r   r)   r   r   	mock_list5      z>test_ExtensionManager_list_extensions_query.<locals>.mock_listlist_packagesextr   r   )r!   r*   r"   r#   r   r)   r   +test_ExtensionManager_list_extensions_query1   s   r.   z"tornado.httpclient.AsyncHTTPClient)Znew_callablec                    s   t dddd t ddddtdddigi | _ fd	d
}|td| tddhid}|dI d H }| gdfksCJ d S )Nr   r   r   r   r%   r&   allowed_extensionsnamec                     r'   r(   r   r   r)   r   r   r*   H   r+   zDtest_ExtensionManager_list_extensions_query_allow.<locals>.mock_listr,   allowed_extensions_urishttp://dummy-allowed-extensionZext_optionsr-   r   r	   jsondumpsencodebodyr   r   r    Zmock_clientr!   r*   r"   r#   r   r)   r   1test_ExtensionManager_list_extensions_query_allowA      r:   c                    s   t dddd t ddddtdddigi | _ fd	d
}|td| tddhid}|dI d H }|gdfksCJ d S )Nr   r   r   r   r%   r&   blocked_extensionsr0   c                     r'   r(   r   r   r)   r   r   r*   ]   r+   zDtest_ExtensionManager_list_extensions_query_block.<locals>.mock_listr,   blocked_extensions_urishttp://dummy-blocked-extensionr3   r-   r   r4   r9   r   r)   r   1test_ExtensionManager_list_extensions_query_blockV   r;   r?   c                    s   t dddd t ddddtddigddigd | _ fd	d
}|td| tdhdhdd}|dI d H }| gdfksIJ d S )Nr   r   r   r   r%   r&   r0   )r/   r<   c                     r'   r(   r   r   r)   r   r   r*   w   r+   zJtest_ExtensionManager_list_extensions_query_allow_block.<locals>.mock_listr,   r2   r>   )r1   r=   r3   r-   r   r4   r9   r   r)   r   7test_ExtensionManager_list_extensions_query_allow_blockk   s&   r@   c                     8   t  } | dI d H }|jdksJ |jdksJ d S )Nr   errorz%Extension installation not supported.)r   installstatusmessager"   resultr   r   r   test_ExtensionManager_install   
   rH   c                     rA   )Nr   rB   z Extension removal not supported.)r   	uninstallrD   rE   rF   r   r   r   test_ExtensionManager_uninstall   rI   rK   z(jupyterlab.extensions.pypi.xmlrpc.clientc                    s   t ddddddddd	}t d
dddddddddd
}ttddgddgddgddgddgd
dgd
dggdd}t|d| _t }dd }||_|dI d H }|||gdfksZJ d S )Njupyterlab-git4A JupyterLab extension for version control using git,https://github.com/jupyterlab/jupyterlab-gitr   0.37.1Jupyter Development TeamBSD-3-Clause(https://pypi.org/project/jupyterlab-git/)r0   descriptionhomepage_urlpkg_typelatest_versionauthorlicensepackage_manager_urljupyterlab-github)JupyterLab viewer for GitHub repositoriesChttps://github.com/jupyterlab/jupyterlab-github/blob/main/README.md3.0.1Ian Rose6https://github.com/jupyterlab/jupyterlab-github/issues+https://pypi.org/project/jupyterlab-github//https://github.com/jupyterlab/jupyterlab-github)
r0   rS   rT   rU   rV   rW   rX   Zbug_tracker_urlrY   Zrepository_urlz0.33.0z0.34.0z0.34.1z0.37.0z3.0.0)return_value)Zbrowsec                    s  | dkrti dddddd dd ddd	d
dd dddddddi ddddddddddddi dddddg d d!g d"g d#d$g d%g d&g d'g d(d)d*g d+d,d-d.d.d.d/d0d d1d d2d S i dd3dd4dd dd dd5d	d6dd dddddddd7d8d9d:dd;dd<dddddd=ddi dd>dddg d?d!g d"d@gd$g d%g d&g d'g d(dAd*g d+dBd-d.d.d.d/d0d d1d d2d S )CNrL   r0   r   rO   Zstable_versionZbugtrack_urlZpackage_urlrR   Zrelease_urlz/https://pypi.org/project/jupyterlab-git/0.37.1/Zdocs_urlZ	home_pagerN   Zdownload_urlr   project_urlZproject_urlsrW   rP   Zauthor_emailZ
maintainerZmaintainer_emailsummaryrM   rX   rQ   keywordsz7Jupyter,JupyterLab,JupyterLab3,jupyterlab-extension,GitplatformLinuxZclassifiers)Framework :: Jupyter"Framework :: Jupyter :: JupyterLab'Framework :: Jupyter :: JupyterLab :: 30Framework :: Jupyter :: JupyterLab :: Extensions<Framework :: Jupyter :: JupyterLab :: Extensions :: PrebuiltzIntended Audience :: Developersz%Intended Audience :: Science/Research&License :: OSI Approved :: BSD LicenseProgramming Language :: Python#Programming Language :: Python :: 3z&Programming Language :: Python :: 3.10%Programming Language :: Python :: 3.6%Programming Language :: Python :: 3.7%Programming Language :: Python :: 3.8%Programming Language :: Python :: 3.9requiresZrequires_dist)zjupyter-serverznbdime (~=3.1)Znbformat	packagingZpexpectzcoverage ; extra == 'dev'z,jupyter-packaging (~=0.7.9) ; extra == 'dev'z#jupyterlab (~=3.0) ; extra == 'dev'zpre-commit ; extra == 'dev'zpytest ; extra == 'dev'zpytest-asyncio ; extra == 'dev'zpytest-cov ; extra == 'dev'z!pytest-tornasync ; extra == 'dev'zcoverage ; extra == 'tests'z.jupyter-packaging (~=0.7.9) ; extra == 'tests'z%jupyterlab (~=3.0) ; extra == 'tests'zpre-commit ; extra == 'tests'zpytest ; extra == 'tests'z!pytest-asyncio ; extra == 'tests'zpytest-cov ; extra == 'tests'z#pytest-tornasync ; extra == 'tests'z!hybridcontents ; extra == 'tests'zjupytext ; extra == 'tests'providesZprovides_distZ	obsoletesZobsoletes_distrequires_pythonz<4,>=3.6Zrequires_externalZ_pypi_ordering7   Z	downloads)Zlast_dayZ	last_weekZ
last_monthZcheesecake_code_kwalitee_idZcheesecake_documentation_idZcheesecake_installability_idrZ   r]   r`   z1https://pypi.org/project/jupyterlab-github/3.0.1/r\   r_   ra   )ZHomepagezBug TrackerzSource Coder^   zjupyter@googlegroups.comr[   zJupyter,JupyterLab,JupyterLab3)rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   zjupyterlab (~=3.0)z>=3.6   r   )nlbr   r   r   mock_pkg_metadata   s  M	
%&?@ABCDEFGHIM	
&'()*+,-./012zJtest_PyPiExtensionManager_list_extensions_query.<locals>.mock_pkg_metadatagitr   )r	   r   ServerProxyr   Z_fetch_package_metadatar    )Zmocked_rpcclientr   r%   proxyr"   r~   r#   r   r   r   /test_PyPiExtensionManager_list_extensions_query   sT   
 r   c                     s8   d} t tdd| iid}t|d}|j| ksJ d S )Nz https://mylocal.pypi.server/pypir   base_urlconfigparent)r   r   r   r   )ZBASE_URLr   r"   r   r   r   +test_PyPiExtensionManager_custom_server_urlO  s
   
r   )user
sys_prefixsystemlevelc                    4   t tdd| iid}t|d}|j| ksJ d S )Nr   r   r   r   r   r   r   r   r   r   r"   r   r   r   &test_PyPiExtensionManager_custom_level\     
r   c                    r   Nr
   r   r   r   r   r   r   r   r   /test_PyPiExtensionManager_inherits_custom_levelc  r   r   c                    r   r   )r   r   r
   r   r   r   r   r   test_PluginManager_custom_levelj  r   r   c                     s   t  } | jdksJ d S )Nr   )r
   r   )r"   r   r   r    test_PluginManager_default_levelq  s   r   )"r5   Zunittest.mockr   r   ZpytestZtraitlets.configr   r   Zjupyterlab.extensionsr   r   Zjupyterlab.extensions.managerr   r	   r
   r   r   markZparametrizer   r$   r.   r:   r?   r@   rH   rK   r   r   ZLEVELSr   r   r   r   r   r   r   r   <module>   sD   






		
 5



