U
    {®Þh·.  ã                   @   sn   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ G dd„ deeƒZd	S )
é    )ÚGroupÚ
Permission)ÚTestCase)Úreverse)ÚDocument)Ú
CollectionÚGroupCollectionPermissionÚPageÚget_root_collection_id)ÚWagtailTestUtilsc                   @   s–   e Zd ZdZdZdZdZdd„ Zdd„ Zd	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 )%ÚTestChooserz@Test chooser panel rendered by `wagtaildocs_chooser:choose` viewz#You haven't uploaded any documents.z6You haven't uploaded any documents in this collection.zupload one nowc                 C   s   t jjdd| _d S )Né   ©Úid)r	   ÚobjectsÚgetZ	root_page©Úself© r   úu/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/documents/tests/test_document_chooser.pyÚsetUp   s    zTestChooser.setUpc                 C   s   |   ¡  d S )N)Úloginr   r   r   r   Úlogin_as_superuser   s    zTestChooser.login_as_superuserc                 C   s~   t jjdd}tjjddd}|j |¡ tjjddd}tjj|tjjdd	|d
 | j	ddd}|j
 |¡ |  |¡ d S )NzThe Editors©ÚnameÚwagtailadminÚaccess_admin©Zcontent_type__app_labelÚcodenameÚwagtaildocsÚchoose_documenté   )Údepth©ÚgroupÚ
collectionZ
permissionZeditorÚpassword©Úusernamer&   )r   r   Úcreater   r   ÚpermissionsÚaddr   r   Úcreate_userÚgroupsr   )r   Zeditors_groupÚaccess_admin_permZchoose_document_permissionÚuserr   r   r   Úlogin_as_editor   s$     ÿ ÿýzTestChooser.login_as_editorc                 C   s¤   t jjdd}tjjddd}|j |¡ tjjtƒ d}|j	tddd}t
jj||tjjd	d
dd |j	tddd | jddd}|j |¡ |  |¡ d S )NÚBakersr   r   r   r   r   ÚBakery©Úinstancer   r    r#   ÚOfficeZbakerr&   r'   )r   r   r)   r   r   r*   r+   r   r
   Ú	add_childr   r,   r-   r   )r   Zbakers_groupr.   ÚrootZbakery_collectionr/   r   r   r   Úlogin_as_baker4   s(     ÿ ÿýzTestChooser.login_as_bakerNc                 C   s   | j  tdƒ|pi ¡S )Nzwagtaildocs_chooser:choose)Úclientr   r   )r   Úparamsr   r   r   r   O   s    zTestChooser.getc                 C   sv   |   ¡  d}tjj|d |  ¡ }|  |jd¡ |  |d¡ |  ||¡ |  	|| j
¡ |  	|| j¡ |  	|| j¡ d S )Núdocument.pdf©ÚtitleéÈ   ú)wagtailadmin/generic/chooser/chooser.html)r0   r   r   r)   r   ÚassertEqualÚstatus_codeÚassertTemplateUsedÚassertContainsÚassertNotContainsÚ_NO_DOCS_TEXTÚ_NO_COLLECTION_DOCS_TEXTÚ_UPLOAD_ONE_TEXT©r   Ú	doc_titleÚresponser   r   r   Útest_chooser_docs_existR   s    z#TestChooser.test_chooser_docs_existc                 C   s‚   |   ¡  d}tjj|tjjddd d}tjj|tjjddd |  ¡ }|  |jd¡ |  |d¡ |  	||¡ |  
||¡ d S )	Nzbun_recipe.pdfr2   r   ©r=   r%   zpayroll.xlsxr5   r>   r?   )r8   r   r   r)   r   r   r@   rA   rB   rC   rD   )r   Zbun_recipe_titleZpayroll_titlerJ   r   r   r   Ú6test_chooser_only_docs_in_chooseable_collection_appearf   s      ÿ ÿzBTestChooser.test_chooser_only_docs_in_chooseable_collection_appearc                 C   sš   |   ¡  |  ¡ }|  |jd¡ |  |d¡ |  |d¡ tjjt	jjddt
jjddtjjddd	d
 |  ¡ }|  |jd¡ |  |d¡ |  |d¡ d S )Nr>   r?   r   r1   r   r5   r   r    r   r#   )r8   r   r@   rA   rB   rD   r   r   r)   r   r   r   rC   ©r   rJ   r   r   r   ÚStest_chooser_collection_selector_appears_only_if_multiple_collections_are_choosable}   s"     ÿý	z_TestChooser.test_chooser_collection_selector_appears_only_if_multiple_collections_are_choosablec                 C   sJ   |   ¡  |  ¡ }|  |jd¡ |  |d¡ |  || j¡ |  || j¡ d S ©Nr>   r?   ©r   r   r@   rA   rB   rC   rE   rG   rN   r   r   r   Ú#test_chooser_no_docs_upload_allowed    s    z/TestChooser.test_chooser_no_docs_upload_allowedc                 C   sJ   |   ¡  |  ¡ }|  |jd¡ |  |d¡ |  || j¡ |  || j¡ d S rP   ©	r0   r   r@   rA   rB   rC   rE   rD   rG   rN   r   r   r   Ú%test_chooser_no_docs_upload_forbidden®   s    z1TestChooser.test_chooser_no_docs_upload_forbiddenc                 C   s|   |   ¡  d}tjj|d |  ddi¡}|  |jd¡ |  |d¡ |  ||¡ |  	|| j
¡ |  	|| j¡ |  	|| j¡ d S )Nr;   r<   ÚqÚ r>   ú wagtaildocs/chooser/results.html)r   r   r   r)   r   r@   rA   rB   rC   rD   rE   rF   rG   rH   r   r   r   Útest_results_docs_exist¾   s    z#TestChooser.test_results_docs_existc                 C   sP   |   ¡  |  ddi¡}|  |jd¡ |  |d¡ |  || j¡ |  || j¡ d S ©NrU   rV   r>   rW   rQ   rN   r   r   r   Ú#test_results_no_docs_upload_allowedÒ   s    z/TestChooser.test_results_no_docs_upload_allowedc                 C   sP   |   ¡  |  ddi¡}|  |jd¡ |  |d¡ |  || j¡ |  || j¡ d S rY   rS   rN   r   r   r   Ú%test_results_no_docs_upload_forbiddenà   s    z1TestChooser.test_results_no_docs_upload_forbiddenc                 C   s’   |   ¡  tƒ }tjj|d}tdd}|j|d d}tjj||d |  d|jdœ¡}|  	|j
d	¡ |  |d
¡ |  || j¡ |  || j¡ d S )Nr   úNothing to see herer   r3   r;   rL   rV   ©rU   Zcollection_idr>   rW   )r   r
   r   r   r   r6   r   r)   r   r@   rA   rB   rC   rF   rG   )r   Úroot_idr7   Úempty_collectionrI   rJ   r   r   r   Ú.test_results_no_collection_docs_upload_allowedï   s    
z:TestChooser.test_results_no_collection_docs_upload_allowedc                 C   sŒ   |   ¡  tƒ }tjj|d}tdd}|j|d tjj|d |  d|jdœ¡}|  	|j
d¡ |  |d	¡ |  || j¡ |  || j¡ d S )
Nr   r\   r   r3   )r%   rV   r]   r>   rW   )r0   r
   r   r   r   r6   r   r)   r   r@   rA   rB   rC   rF   rD   rG   )r   r^   r7   r_   rJ   r   r   r   Ú0test_results_no_collection_docs_upload_forbidden  s    
z<TestChooser.test_results_no_collection_docs_upload_forbidden)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rE   rF   rG   r   r   r0   r8   r   rK   rM   rO   rR   rT   rX   rZ   r[   r`   ra   r   r   r   r   r      s&   
#r   N)Zdjango.contrib.auth.modelsr   r   Zdjango.testr   Zdjango.urlsr   Zwagtail.documents.modelsr   Zwagtail.modelsr   r   r	   r
   Zwagtail.test.utilsr   r   r   r   r   r   Ú<module>   s   