o
    i6                     @   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 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dS )!    N)Mockpatch)ConfigConfigurable)PyPIExtensionManagerReadOnlyExtensionManager)ExtensionManagerExtensionPackage   )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   get_semver_version)versionexpected r   [/var/www/edux/Edux_v2/venv/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_installed_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)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ext_optionsr.   r
   r	   jsondumpsencodebodyr    r   r!   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_extensionsr2   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-extensionr5   r.   r
   r7   r<   r   r*   r   1test_ExtensionManager_list_extensions_query_blockV   r?   rC   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'   r2   )r1   r@   c                     r(   r)   r   r   r*   r   r   r+   w   r,   zJtest_ExtensionManager_list_extensions_query_allow_block.<locals>.mock_listr-   r4   rB   )r3   rA   r5   r.   r
   r7   r<   r   r*   r   7test_ExtensionManager_list_extensions_query_allow_blockk   s&   rD   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   
   rL   c                     rE   )Nr   rF   z Extension removal not supported.)r   	uninstallrH   rI   rJ   r   r   r   test_ExtensionManager_uninstall   rM   rO   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/)r2   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)
r2   rW   rX   rY   rZ   r[   r\   bug_tracker_urlr]   repository_urlz0.33.0z0.34.0z0.34.1z0.37.0z3.0.0)return_value)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 )CNrP   r2   r   rS   stable_versionbugtrack_urlpackage_urlrV   release_urlz/https://pypi.org/project/jupyterlab-git/0.37.1/docs_url	home_pagerR   download_urlr   project_urlproject_urlsr[   rT   author_email
maintainermaintainer_emailsummaryrQ   r\   rU   keywordsz7Jupyter,JupyterLab,JupyterLab3,jupyterlab-extension,GitplatformLinux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requiresrequires_dist)zjupyter-serverznbdime (~=3.1)nbformat	packagingpexpectzblack ; extra == 'dev'z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black ; extra == 'tests'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'providesprovides_dist	obsoletesobsoletes_distrequires_pythonz<4,>=3.6requires_external_pypi_ordering7   	downloads)last_day	last_week
last_monthcheesecake_code_kwalitee_idcheesecake_documentation_idcheesecake_installability_idr^   ra   rd   z1https://pypi.org/project/jupyterlab-github/3.0.1/r`   rc   re   )HomepagezBug TrackerzSource Coderb   zjupyter@googlegroups.comr_   zJupyter,JupyterLab,JupyterLab3)r{   r|   r}   r~   r   r   r   r   r   r   r   r   zjupyterlab (~=3.0)z>=3.6   r   )nlbr   r   r   mock_pkg_metadata   s  O	
%&ABCDEFGHIJKO	
&'()*+,-./012zJtest_PyPiExtensionManager_list_extensions_query.<locals>.mock_pkg_metadatagitr
   )r	   r   ServerProxyr   _fetch_package_metadatar!   )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   )BASE_URLr   r#   r   r   r   +test_PyPiExtensionManager_custom_server_urlQ  s
   
r   )r8   unittest.mockr   r   pytesttraitlets.configr   r   jupyterlab.extensionsr   r   jupyterlab.extensions.managerr   r	   r   r   markparametrizer   r%   r/   r>   rC   rD   rL   rO   r   r   r   r   r   r   <module>   s4   






		
 7