o
    ËÉ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ÚgetÚ	root_page©Úself© r   úm/var/www/html/ndineBlogger/venv/lib/python3.10/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©Úcontent_type__app_labelÚcodenameÚwagtaildocsÚchoose_documenté   )Údepth©ÚgroupÚ
collectionÚ
permissionÚeditorÚpassword©Úusernamer+   )r   r   Úcreater   r   ÚpermissionsÚaddr   r   Úcreate_userÚgroupsr   )r   Úeditors_groupÚaccess_admin_permÚ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&   ÚOfficeÚbakerr+   r,   )r   r   r.   r   r   r/   r0   r   r
   Ú	add_childr   r1   r2   r   )r   Úbakers_groupr4   ÚrootÚbakery_collectionr6   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)r7   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.pdfr9   r   ©rG   r(   zpayroll.xlsxr<   rH   rI   )rB   r   r   r.   r   r   rJ   rK   rL   rM   rN   )r   Úbun_recipe_titleÚpayroll_titlerT   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 )NrH   rI   r   r8   r   r<   r"   r#   r   r&   )rB   r   rJ   rK   rL   rN   r   r   r.   r   r   r   rM   ©r   rT   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 ©NrH   rI   ©r   r   rJ   rK   rL   rM   rO   rQ   rZ   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 r\   ©	r7   r   rJ   rK   rL   rM   rO   rN   rQ   rZ   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 )NrE   rF   ÚqÚ rH   ú wagtaildocs/chooser/results.html)r   r   r   r.   r   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   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 ©Nra   rb   rH   rc   r]   rZ   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 re   r_   rZ   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   r:   rE   rV   rb   ©ra   Úcollection_idrH   rc   )r   r
   r   r   r   r>   r   r.   r   rJ   rK   rL   rM   rP   rQ   )r   Úroot_idr@   Úempty_collectionrS   rT   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   rh   r   r:   )r(   rb   ri   rH   rc   )r7   r
   r   r   r   r>   r   r.   r   rJ   rK   rL   rM   rP   rN   rQ   )r   rk   r@   rl   rT   r   r   r   Ú0test_results_no_collection_docs_upload_forbidden  s   
z<TestChooser.test_results_no_collection_docs_upload_forbiddenr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rO   rP   rQ   r   r   r7   rB   r   rU   rY   r[   r^   r`   rd   rf   rg   rm   rn   r   r   r   r   r      s(    
#r   N)Údjango.contrib.auth.modelsr   r   Údjango.testr   Údjango.urlsr   Úwagtail.documents.modelsr   Úwagtail.modelsr   r   r	   r
   Úwagtail.test.utilsr   r   r   r   r   r   Ú<module>   s    