o
    ËÉhzÚ  ã                	   @   s¦  d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 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 d dlmZmZmZmZ d dlmZmZmZmZ d dlm Z  ej!r×ej"e   dddddd ¡e jj#dZ$ej"e   dddddd ¡e jj#dZ%ej"e   dddddd¡e jj#dZ&ej"e   dddddd¡e jj#dZ'ej"e   dddddd¡e jj#dZ(ej"e   dddddd¡e jj#dZ)ej"e   ddddd d ¡e jj#dZ*nFe   dddddd ¡Z$e   dddddd ¡Z%e   dddddd¡Z&e   dddddd¡Z'e   dddddd¡Z(e   dddddd¡Z)e   ddddd d ¡Z*G dd„ de eƒZ+G dd„ de eƒZ,G dd„ de eƒZ-G d d!„ d!e eƒZ.G d"d#„ d#e.ƒZ/G d$d%„ d%e.ƒZ0dS )&é    N)Úsettings)Úquote)ÚGroupÚ
Permission)ÚContentType)ÚTestCaseÚoverride_settings)Úreverse)Útimezone)Úfreeze_time)ÚEditingSession)ÚGroupPagePermissionÚPageÚWorkflowÚWorkflowContentType)ÚAdvertÚAdvertWithCustomPrimaryKeyÚFullFeaturedSnippetÚ
SimplePage)ÚWagtailTestUtilsiã  é   é
   é   iä  é   é;   é3   é4   é5   é6   é   c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zeeƒd	d
„ ƒZ	eeƒdd„ ƒZ
eeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZeeƒdd„ ƒZdd„ Zdd „ Zeeƒd!d"„ ƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-S ).ÚTestPingViewc                 C   sl  | j ddddd| _| jddddd| _| jd	dd
dd| _| j| jd t ¡ | _t	dddd| _
| jj| j
d ttƒ | j
j| jd| _W d   ƒ n1 sRw   Y  ttƒ | j
j| jd| _W d   ƒ n1 sow   Y  t	dddd| _| jj| jd tj t¡}tjj| j|| j
jtd| _tjj| j|| j
jtd| _tjj| j|| j
jtd| _d S )NÚbobÚpasswordÚBobÚTestuser©r"   Ú
first_nameÚ	last_nameÚvicÚVicÚ	OtheruserÚgordonÚGordonÚ	Thirduser©Úuserú	Test pageú	test-pageú	test page©ÚtitleÚslugÚcontent©Úinstancez
Other pagez
other-pagez
other page©r/   Úcontent_typeÚ	object_idÚlast_seen_at)Úcreate_superuserr/   Úcreate_userÚ
other_userÚ
third_userÚloginr   Úget_first_root_nodeÚ	root_pager   ÚpageÚ	add_childr   ÚTIMESTAMP_ANCIENTÚsave_revisionÚoriginal_revisionÚTIMESTAMP_PASTÚ
other_pager   ÚobjectsÚget_for_modelr   ÚcreateÚidÚTIMESTAMP_1ÚsessionÚTIMESTAMP_2Úother_sessionÚold_session©ÚselfÚpage_content_type© rW   úi/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/tests/test_editing_sessions.pyÚsetUp7   sT   ÿÿÿ

ÿ
ÿÿüüüzTestPingView.setUpc                 C   s:   | j  tdddt| jjƒ| jjfd¡}|  |jd¡ d S )Nú"wagtailadmin_editing_sessions:pingÚtestappÚinvalidmodel©Úargsé”  )	ÚclientÚpostr	   ÚstrrD   rN   rP   ÚassertEqualÚstatus_code©rU   ÚresponserW   rW   rX   Útest_ping_invalid_modelh   s   þÿz$TestPingView.test_ping_invalid_modelc                 C   sd   t jjdd}tjj| jtj t ¡|jt	d}| j
 tdddt|jƒ|jfd¡}|  |jd¡ d S )	NÚEditors©Únamer9   rZ   ÚauthÚgroupr]   r_   )r   rK   Úgetr   rM   r/   r   rL   ÚpkrO   r`   ra   r	   rb   rN   rc   rd   )rU   ÚeditorsrP   rf   rW   rW   rX   Ú$test_ping_non_page_non_snippet_modelq   s   
üþÿz1TestPingView.test_ping_non_page_non_snippet_modelc                 C   s2   | j  tdddd| jjfd¡}|  |jd¡ d S )NrZ   ÚwagtailcorerD   é?B r]   r_   )r`   ra   r	   rP   rN   rc   rd   re   rW   rW   rX   Útest_ping_non_existent_object   s   þÿz*TestPingView.test_ping_non_existent_objectc              	   C   sê   | j  tddd| jj| jjfd¡}|  |jd¡ | ¡ }|  |d | jj¡ |  |d | j	jdt
 ¡ d	d d
œg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d|¡ |  d|¡ | j ¡  |  | jjt¡ |  | jj¡ d S )NrZ   rq   rD   r]   éÈ   Ú
session_idÚother_sessionsúVic OtheruserF©ru   r/   r<   Ú
is_editingÚrevision_idÚhtmlúol.w-editing-sessions__list lir   r   úCurrently viewing)r`   ra   r	   rD   rN   rP   rc   rd   ÚjsonrR   rQ   Ú	isoformatÚget_soupÚselectÚlenÚtextÚassertInÚrefresh_from_dbr<   ÚTIMESTAMP_NOWÚassertFalsery   ©rU   rf   Úresponse_jsonÚsoupÚrendered_sessionsÚsession_textrW   rW   rX   Útest_ping_existing_sessionŠ   s8   þÿûÿþ


z'TestPingView.test_ping_existing_sessionc              	   C   sð   | j  tddd| jj| jjfdddi¡}|  |jd¡ | ¡ }|  |d | jj¡ |  |d	 | j	jd
t
 ¡ dd dœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d
|¡ |  d|¡ | j ¡  |  | jjt¡ |  | jj¡ d S )NrZ   rq   rD   r]   ry   Ú1rt   ru   rv   rw   Frx   r{   r|   r   r   r}   )r`   ra   r	   rD   rN   rP   rc   rd   r~   rR   rQ   r   r€   r   r‚   rƒ   r„   r…   r<   r†   Ú
assertTruery   rˆ   rW   rW   rX   Ú,test_ping_existing_session_with_editing_flag­   s:   þûûýþ


z9TestPingView.test_ping_existing_session_with_editing_flagc           	   	   C   sª  | j  tddd| jj| jjfdd| jji¡}|  |jd¡ | 	¡ }|  |d | jj¡ |  |d | j
jd	t ¡ d
d dœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d	|¡ |  d|¡ |  d|¡ | j ¡  |  | jjt¡ |  | jj¡ ttƒ | jj| jd}W d   ƒ n1 s•w   Y  | j  tddd| jj| jjfdd| jji¡}|  |jd¡ | 	¡ }|  |d | jj¡ |  |d | j
jd	t ¡ d
|jdœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d|¡ |  d|¡ | d¡}|  |¡ |  d|j¡ | d¡}|  |¡ |  d|j¡ | j ¡  |  | jjt¡ |  | jj¡ | j
 ¡  | j  tddd| jj| jjfdd| jji¡}|  |jd¡ | 	¡ }|  |d | jj¡ |  |d d d	t ¡ d
|jdœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d|¡ |  d|¡ | d¡}|  |¡ |  d|j¡ | d¡}|  |¡ |  d|j¡ | j ¡  |  | jjt¡ |  | jj¡ d S )NrZ   rq   rD   r]   rz   rt   ru   rv   rw   Frx   r{   r|   r   r   r}   úsaved a new versionr.   z!Vic Otheruser saved a new versionúOtemplate[data-w-teleport-target-value="#title-text-w-overwrite-changes-dialog"]úMtemplate[data-w-teleport-target-value="#subtitle-w-overwrite-changes-dialog"]zžProceeding will overwrite the changes made by Vic Otheruser. Refreshing the page will show you the new changes, but you will lose any of your unsaved changes.) r`   ra   r	   rD   rN   rP   rH   rc   rd   r~   rR   rQ   r   r€   r   r‚   rƒ   r„   ÚassertNotInr…   r<   r†   r‡   ry   r   ÚTIMESTAMP_3rG   r?   Ú
select_oneÚassertIsNotNoneÚstringÚdelete)	rU   rf   r‰   rŠ   r‹   rŒ   Únew_revisionÚdialog_titleÚdialog_subtitlerW   rW   rX   Útest_ping_with_revisionÓ   sò   þ
ûûÿþ



ÿþ
ûûÿþ

ÿ
ÿ
ý

þ
ûûÿþ

ÿ
þÿ
ý
z$TestPingView.test_ping_with_revisionc              
   C   s  t tƒ | jj| jd W d   ƒ n1 sw   Y  tjj| jt	j 
t¡| jjtd}t tƒ | jj| jd}W d   ƒ n1 sDw   Y  | j tddd| jj| jjfdd| jji¡}|  |jd¡ | ¡ }|  |d	 | jj¡ |  |d
 |jdt ¡ d|jdœ| jjdt ¡ dd dœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d|¡ |  d|¡ | d¡}|   |¡ |  d|j!¡ | d¡}	|   |	¡ |  d|	j!¡ |d j}
|  d|
¡ |  d|
¡ |  d|
¡ | j "¡  |  | jj#t$¡ |  %| jj&¡ d S )Nr.   r9   rZ   rq   rD   r]   rz   rt   ru   rv   úGordon ThirduserFrx   rw   r{   r|   é   r   z$Gordon Thirduser saved a new versionr}   r’   r“   z¡Proceeding will overwrite the changes made by Gordon Thirduser. Refreshing the page will show you the new changes, but you will lose any of your unsaved changes.r   r‘   )'r   r•   rD   rG   r?   r   rK   rM   r@   r   rL   r   rN   ÚTIMESTAMP_4r`   ra   r	   rP   rH   rc   rd   r~   r   rR   rQ   r€   r   r‚   rƒ   r„   r”   r–   r—   r˜   r…   r<   r†   r‡   ry   )rU   Úthird_sessionÚlatest_revisionrf   r‰   rŠ   r‹   rŒ   r›   rœ   Úother_session_textrW   rW   rX   Ú4test_ping_with_multiple_revisions_since_own_revisiong  s†   
ÿ
ü
ÿþ
ûù
÷öþ

ÿ
þÿ
ý

zATestPingView.test_ping_with_multiple_revisions_since_own_revisionc           
   
   C   s¬  t tƒ | j ¡ }W d   ƒ n1 sw   Y  | j tddd| jj| jjfdd| j	ji¡}|  
|jd¡ | ¡ }|  
|d | jj¡ |  
|d d d	t ¡ d
|jdœ| jjdt ¡ d
d dœg¡ |  |d ¡}| d¡}|  
t|ƒd¡ |d j}|  d|¡ |  d|¡ | d¡}|  |¡ |  d|j¡ | d¡}|  |¡ |  d|j¡ |d j}	|  d|	¡ |  d|	¡ |  d|	¡ | j ¡  |  
| jjt¡ |  | jj¡ d S )NrZ   rq   rD   r]   rz   rt   ru   rv   Ú Frx   rw   r{   r|   rŸ   r   zSystem saved a new versionr}   r’   r“   z—Proceeding will overwrite the changes made by System. Refreshing the page will show you the new changes, but you will lose any of your unsaved changes.r   r‘   )r   r•   rD   rG   r`   ra   r	   rN   rP   rH   rc   rd   r~   r   rR   rQ   r€   r   r‚   rƒ   r„   r”   r–   r—   r˜   r…   r<   r†   r‡   ry   )
rU   r¢   rf   r‰   rŠ   r‹   rŒ   r›   rœ   r£   rW   rW   rX   Ú,test_ping_with_new_revision_that_has_no_user½  st   
ÿþ
ûú	û÷þ

ÿ
þÿ
ý

z9TestPingView.test_ping_with_new_revision_that_has_no_userc           	      C   s¨  | j ddddd}| j ddddd}tjj| jtj t¡| jj	t
d	}tjj|tj t¡| jj	td	}tjj|tj t¡| jj	td
d}ttƒ | jj| jd}W d   ƒ n1 s[w   Y  | j tddd| jj	| jj	fdd| jj	i¡}|  |jd¡ | ¡ }|  |d | jj	¡ |  |d |j	dt ¡ d|j	dœ|j	dt ¡ d
d dœ| jj	dt
 ¡ dd dœ|j	dt ¡ dd dœg¡ | j ¡  |  | jjt¡ |  | jj¡ d S )NÚalyxr"   ÚAlyxÚ
Fourthuserr%   ÚchellÚChellÚ	Fifthuserr9   T©r/   r:   r;   r<   ry   r.   rZ   rq   rD   r]   rz   rt   ru   rv   rž   Frx   zChell Fifthuserrw   zAlyx Fourthuser)r>   r   rK   rM   r@   r   rL   r   rD   rN   rQ   rO   r    r   r•   rG   r`   ra   r	   rP   rH   rc   rd   r~   r   rR   r…   r<   r†   r‡   ry   )	rU   Úfourth_userÚ
fifth_userr¡   Úfourth_sessionÚfifth_sessionrš   rf   r‰   rW   rW   rX   Útest_ping_session_ordering  sŠ   ÿÿ
ü
û
û
ÿþ
ûû	û	ûûçþ
$z'TestPingView.test_ping_session_orderingc              	   C   s  | j  tddd| jjdfd¡}|  |jd¡ | ¡ }|d }tj	j
|d}|  |j| j¡ |  |jt¡ |  |j¡ |  |d	 | jjd
t ¡ dd dœg¡ |  |d tddd| jj|jfd¡ |  |d td|jfd¡ |  t|jƒt¡ |  |jj| jj¡ |  |jt¡ d S )NrZ   rq   rD   rr   r]   rt   ru   ©rN   rv   rw   Frx   Úping_urlÚrelease_urlú%wagtailadmin_editing_sessions:release)r`   ra   r	   rD   rN   rc   rd   r~   r   rK   rm   r/   r<   r†   r‡   ry   rR   rQ   r   ÚtypeÚcontent_objectr   )rU   rf   r‰   Únew_session_idrP   rW   rW   rX   Útest_ping_new_sessionV  sP   þÿûýþþþþþ	z"TestPingView.test_ping_new_sessionc              
   C   sR  | j  tddd| jjdfdddi¡}|  |jd¡ | ¡ }|d	 }tj	j
|d
}|  |j| j¡ |  |jt¡ |  |j¡ |  |d | jjdt ¡ dd dœg¡ |  t|jƒt¡ |  |jj| jj¡ |  |jt¡ | j ¡  |  | jjt¡ |  | jj¡ | j  tddd| jj| jjfd¡}|  |jd¡ | ¡ }|  |d	 | jj¡ |  |d |jdt ¡ dd dœ| jjdt ¡ dd dœg¡ |  |d ¡}| d¡}|  t|ƒd¡ |d j}|  d|¡ |  d|¡ |  d¡}|  !|¡ |  d¡}	|  !|	¡ |d j}
|  d|
¡ |  d|
¡ |  d|
¡ | j ¡  |  | jjt¡ |  | jj¡ d S )NrZ   rq   rD   rr   r]   ry   rŽ   rt   ru   r³   rv   rw   Frx   úBob TestuserTr{   r|   rŸ   r   z*You have unsaved changes in another windowr}   r’   r“   r   r‘   )"r`   ra   r	   rD   rN   rc   rd   r~   r   rK   rm   r/   r<   r†   r   ry   rR   rQ   r   r·   r¸   r   rP   r…   rO   r‡   r€   r   r‚   rƒ   r„   r”   r–   ÚassertIsNone)rU   rf   r‰   r¹   rP   rŠ   r‹   rŒ   r›   rœ   r£   rW   rW   rX   Ú'test_ping_new_session_with_editing_flagŒ  s˜   þûûýþ
þÿûû÷þ

ÿ
ÿ


z4TestPingView.test_ping_new_session_with_editing_flagc              
   C   s”  | j  tddd| jjdfdd| jji¡}|  |jd¡ | ¡ }|d }t	j
j|d	}|  |j| j¡ |  |jt¡ |  |j¡ |  |d
 | jjdt ¡ dd dœg¡ |  t|jƒt¡ |  |jj| jj¡ |  |jt¡ | j ¡  |  | jjt¡ |  | jj¡ | j  tddd| jj| jjfd¡}|  |jd¡ | ¡ }|  |d | jj¡ |  |d
 | jjdt ¡ dd dœg¡ | j ¡  |  | jjt¡ |  | jj¡ ttƒ | jj| jd}W d   ƒ n1 sæw   Y  | j  tddd| jj|fdd| jji¡}|  |jd¡ | ¡ }|  |d |¡ |  |d
 | jjdt ¡ d|jdœ| jjdt ¡ dd dœg¡ | j  tddd| jj| jjfdd| jji¡}|  |jd¡ | ¡ }|  |d | jj¡ |  |d
 |dt ¡ d|jdœ| jjdt ¡ dd dœg¡ | ¡  | j  tddd| jj| jjfdd| jji¡}|  |jd¡ | ¡ }|  |d | jj¡ |  |d
 d dt ¡ d|jdœ| jjdt ¡ dd dœg¡ d S )NrZ   rq   rD   rr   r]   rz   rt   ru   r³   rv   rw   Frx   r.   r»   )r`   ra   r	   rD   rN   rH   rc   rd   r~   r   rK   rm   r/   r<   r†   r‡   ry   rR   rQ   r   r·   r¸   r   rP   r…   rO   r   r    rG   r™   )rU   rf   r‰   r¹   rP   rš   rW   rW   rX   Ú#test_ping_new_session_with_revisioní  s  þ
ûûýþ
þÿûýþ

ÿþ
ûûûîþþ
ûûûõþþ
ûûûôþz0TestPingView.test_ping_new_session_with_revisionc                 C   s¾   d| j _| j  ¡  tjjdd}| j j |¡ tjj	|d 
¡  tjj|| jtjjddd | j tdd	d
| jjdfd¡}|  |jd¡ | j tdd	d
| jjdfd¡}|  |jd¡ d S )NFrh   ri   )rl   Úchange_page©Úcodename)rl   rD   Ú
permissionrZ   rq   rD   rr   r]   r_   rt   )r/   Úis_superuserÚsaver   rK   rm   ÚgroupsÚaddr   Úfilterr™   rM   rJ   r   r`   ra   r	   rD   rN   rc   rd   )rU   ro   rf   rW   rW   rX   Ú+test_user_must_have_edit_permission_on_page¬  s0   
ýþÿþÿz8TestPingView.test_user_must_have_edit_permission_on_pagec                 C   sŒ   | j  ¡ }| | j | j¡ tjjdd}|j ¡  	¡  d| j
_| j
 ¡  | j
j |¡ | j tddd| j j| jjfd¡}|  |jd¡ d S )	NÚ
Moderatorsri   FrZ   rq   rD   r]   rt   )rD   Úget_workflowÚstartr?   r   rK   rm   Úpage_permissionsÚallr™   r/   rÃ   rÄ   rÅ   rÆ   r`   ra   r	   rN   rP   rc   rd   )rU   ÚworkflowÚ
moderatorsrf   rW   rW   rX   Ú7test_moderator_without_explicit_edit_permission_on_pageÌ  s   

þÿzDTestPingView.test_moderator_without_explicit_edit_permission_on_pagec                 C   sZ   d| j _| j| j _t| j _| j  ¡  | j t	ddd| j j
| jj
fd¡}|  |jd¡ d S )NTrZ   rq   rD   r]   rt   )rD   Úlockedr?   Ú	locked_byrI   Ú	locked_atrÄ   r`   ra   r	   rN   rP   rc   rd   re   rW   rW   rX   Útest_locked_pageä  s   

þÿzTestPingView.test_locked_pagec              	   C   sl  t jjdd}d| j_| j ¡  tjjdd}| jj 	|¡ |j
 	tjjdd¡ tjj| jtj t ¡|jtd}tjj| jtj t ¡|jtd	d
 tjj| jtj t ¡|jtdd
}tjj| jtj t ¡|jtd | j tdddt|jƒ|jfd¡}|  |jd¡ | ¡ }|  |d |j¡ |  |d |jdt ¡ d	d dœg¡ | ¡  |  |jt ¡ |  !|j"¡ d S )NúTest snippet©rƒ   Frh   ri   Úchange_advertrÀ   r9   Tr­   rZ   ÚtestsÚadvertr]   rt   ru   rv   rw   rx   )#r   rK   rM   r/   rÃ   rÄ   r   rm   rÅ   rÆ   Úpermissionsr   r   r   rL   rn   rO   r?   rQ   r•   rI   r`   ra   r	   rb   rN   rc   rd   r~   r   r…   r<   r†   r‡   ry   )rU   Úsnippetro   rP   Úother_session_2rf   r‰   rW   rW   rX   Útest_ping_snippet_modeló  sp   
ÿ
ü
û
û	
üþÿûÿþz$TestPingView.test_ping_snippet_modelc                 C   s’   t jjdd}d| j_| j ¡  tjjdd}| jj 	|¡ t
jj| jtj t ¡|jtd}| j tddd	t|jƒ|jfd
¡}|  |jd¡ d S )NrÕ   rÖ   Frh   ri   r9   rZ   rØ   rÙ   r]   r_   )r   rK   rM   r/   rÃ   rÄ   r   rm   rÅ   rÆ   r   r   rL   rn   rO   r`   ra   r	   rb   rN   rc   rd   )rU   rÛ   ro   rP   rf   rW   rW   rX   Ú*test_ping_snippet_model_without_permission8  s$   

üþÿz7TestPingView.test_ping_snippet_model_without_permissionc                 C   sØ   t jjdd}|j| jd tj t ¡}tj ¡ }t	jj||d | 
¡ }| || j¡ tjjdd}d| j_| j ¡  | jj |¡ tjj| jtj t ¡|jtd}| j td	d
d|j|jfd¡}|  |jd¡ d S )NrÕ   rÖ   r.   )r:   rÎ   rÉ   ri   Fr9   rZ   rØ   Úfullfeaturedsnippetr]   rt   )r   rK   rM   rG   r?   r   rL   r   rm   r   rÊ   rË   r   r/   rÃ   rÄ   rÅ   rÆ   r   rn   rO   r`   ra   r	   rN   rc   rd   )rU   rÛ   Úsnippet_content_typerÎ   rÏ   rP   rf   rW   rW   rX   Ú:test_moderator_without_explicit_edit_permission_on_snippetO  s6   
þ

üþÿzGTestPingView.test_moderator_without_explicit_edit_permission_on_snippetc                 C   s|   t jjdd}d|_| j|_t|_| ¡  t	jj| j
tj t ¡|jtd}| j tddd|j|jfd¡}|  |jd	¡ d S )
NrÕ   rÖ   Tr9   rZ   rØ   rß   r]   rt   )r   rK   rM   rÑ   r?   rÒ   rI   rÓ   rÄ   r   r/   r   rL   rn   rO   r`   ra   r	   rN   rc   rd   )rU   rÛ   rP   rf   rW   rW   rX   Útest_locked_snippetv  s$   
üþÿz TestPingView.test_locked_snippetc                 C   sP   | j  tddd| jjdfd¡}|  |jd¡ |  tj	 
¡ | j| j| jg¡ d S )NrZ   rq   rD   rr   r]   é•  )r`   rm   r	   rD   rN   rc   rd   ÚassertCountEqualr   rK   rÍ   rP   rR   rS   re   rW   rW   rX   Útest_must_postŽ  s   þÿþzTestPingView.test_must_postc                 C   sn   | j  tddd| jj| jjfdddi¡}|  |jd¡ |  | ¡ dd	i¡ |  	t
j ¡ | j| j| jg¡ d S )
NrZ   rq   rD   r]   ry   Úinvalidi  ÚerrorzInvalid data)r`   ra   r	   rD   rN   rP   rc   rd   r~   rä   r   rK   rÍ   rR   rS   re   rW   rW   rX   Útest_invalid_data›  s   þûþzTestPingView.test_invalid_dataN)Ú__name__Ú
__module__Ú__qualname__rY   rg   rp   rs   r   r†   r   r   r   r¤   r¦   r²   rº   r½   r¾   rÈ   rÐ   rÔ   rÝ   rÞ   rá   râ   rå   rè   rW   rW   rW   rX   r    6   sH    1		
"
%
 
U
E
R
5
`
 ?

D'r    c                   @   s$   e Zd Zdd„ Zeeƒdd„ ƒZdS )ÚTestCleanupc                 C   s†   | j ddddd| _t ¡ | _tdddd	| _| jj| jd
 tj	 
t¡}tj	j| j|| jjtd| _tj	j| j|| jjtd| _d S )Nr!   r"   r#   r$   r%   r0   r1   r2   r3   r7   r9   )r=   r/   r   rB   rC   r   rD   rE   r   rK   rL   r   rM   rN   rO   rP   rI   rS   rT   rW   rW   rX   rY   ¬  s&   ÿ
üüzTestCleanup.setUpc                 C   sD   t  ¡  |  t jj| jjd ¡ ¡ |  t jj| j	jd ¡ ¡ d S )Nr³   )
r   Úcleanupr   rK   rÇ   rP   rN   Úexistsr‡   rS   ©rU   rW   rW   rX   Útest_cleanupÄ  s    zTestCleanup.test_cleanupN)ré   rê   rë   rY   r   r†   rð   rW   rW   rW   rX   rì   «  s    rì   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestReleaseViewc                 C   s¨   | j ddddd| _| j| jd t ¡ | _tddd	d
| _| jj| jd | j	ddddd| _
tj t¡}tjj| j|| jjtd| _tjj| j
|| jjtd| _d S )Nr!   r"   r#   r$   r%   r.   r0   r1   r2   r3   r7   r(   r)   r*   r9   )r=   r/   rA   r   rB   rC   r   rD   rE   r>   r?   r   rK   rL   r   rM   rN   rO   rP   rR   rT   rW   rW   rX   rY   Ì  s.   ÿ
ÿüüzTestReleaseView.setUpc                 C   sd   | j  td| jjfd¡}|  |jd¡ |  tj	j
| jjd ¡ ¡ |  tj	j
| jjd ¡ ¡ d S ©Nr¶   r]   rt   r³   )r`   ra   r	   rP   rN   rc   rd   r‡   r   rK   rÇ   rî   r   rR   re   rW   rW   rX   Útest_releaseé  ó   ÿÿzTestReleaseView.test_releasec                 C   sd   | j  td| jjfd¡}|  |jd¡ |  tj	j
| jjd ¡ ¡ |  tj	j
| jjd ¡ ¡ d S )Nr¶   r]   rã   r³   )r`   rm   r	   rP   rN   rc   rd   r   r   rK   rÇ   rî   rR   re   rW   rW   rX   rå   ó  rô   zTestReleaseView.test_must_postc                 C   sd   | j  td| jjfd¡}|  |jd¡ |  tj	j
| jjd ¡ ¡ |  tj	j
| jjd ¡ ¡ d S rò   )r`   ra   r	   rR   rN   rc   rd   r   r   rK   rÇ   rP   rî   re   rW   rW   rX   Ú'test_cannot_release_other_users_sessioný  s   
ÿÿÿz7TestReleaseView.test_cannot_release_other_users_sessionN)ré   rê   rë   rY   ró   rå   rõ   rW   rW   rW   rX   rñ   Ë  s
    

rñ   c                   @   s^   e Zd ZdZeZdd„ Zdd„ Zdd„ Zdd	„ Z	e
eƒd
d„ ƒZe
eƒedddd„ ƒƒZdS )ÚTestModuleInEditViewzwagtailadmin_pages:editc                 C   s|   | j ddddd| _| j| jd tj | j¡| _|  ¡ | _	t
jj| j| j| j	jtd| _t
jj| j| j| j	jtd| _d S )Nr!   r"   r#   r$   r%   r.   r9   )r=   r/   rA   r   rK   rL   Úmodelr:   Úcreate_objectÚobjectr   rM   rn   rO   rP   rI   rS   rï   rW   rW   rX   rY     s$   ÿ
üüzTestModuleInEditView.setUpc                 C   s.   t  ¡ }tdddd}|j|d | ¡  |S )NÚFooÚfooÚbarr3   r7   )r   rB   r   rE   rG   )rU   rC   rD   rW   rW   rX   rø   $  s
   z"TestModuleInEditView.create_objectc                 C   s    | j  t| jt| jjƒfd¡S )Nr]   )r`   rm   r	   Úurl_namer   rù   rn   rï   rW   rW   rX   rm   +  s    zTestModuleInEditView.getc                 C   sF   |  d¡}|  |¡ |  | d¡d¡ |  | d¡t| jjjƒ¡ d S )Núinput[name="revision_id"]r·   ÚhiddenÚvalue)r–   r—   rc   rm   rb   rù   r¢   rN   ©rU   rŠ   Úrevision_inputrW   rW   rX   ÚassertRevisionInput.  s   

þz(TestModuleInEditView.assertRevisionInputc                 C   sì   |   tj ¡  ¡ d¡ |  ¡ }|   |jd¡ |  tjj| j	j
d ¡ ¡ |  tjj| jj
d ¡ ¡ |   tj ¡  ¡ d¡ tjj| j	j
dj| j| jjd}|   |j| j¡ |  |j¡}| d¡}|  |¡ |   | d¡d¡ |  |¡ d S )NrŸ   rt   r³   ©r:   r;   ú"form[data-controller~="w-session"]údata-w-session-interval-valueÚ10000)rc   r   rK   rÍ   Úcountrm   rd   r   rÇ   rP   rN   rî   r‡   rS   Úexcluder:   rù   rn   r/   r€   r6   r–   r—   r  ©rU   rf   Únew_sessionrŠ   ÚmodulerW   rW   rX   Ú$test_edit_view_with_default_interval7  s    þ

z9TestModuleInEditView.test_edit_view_with_default_intervali0u  )Ú%WAGTAIL_EDITING_SESSION_PING_INTERVALc              	   C   s>  |   tj ¡  ¡ d¡ |  ¡ }|   |jd¡ |  tjj| j	j
d ¡ ¡ |  tjj| jj
d ¡ ¡ |   tj ¡  ¡ d¡ tjj| j	j
dj| j| jjd}|   |j| j¡ |  |j¡}| d¡}|  |¡ |   | d¡td| jj| jjt| jjƒ|j
fd¡ |   | d	¡td
|j
fd¡ |   | d¡d¡ |  |¡ d S )NrŸ   rt   r³   r  r  zdata-w-swap-src-valuerZ   r]   zdata-w-action-url-valuer¶   r  Ú30000)rc   r   rK   rÍ   r  rm   rd   r   rÇ   rP   rN   rî   r‡   rS   r	  r:   rù   rn   r/   r€   r6   r–   r—   r	   Ú	app_labelr÷   r   r  r
  rW   rW   rX   Ú#test_edit_view_with_custom_intervalR  sD   þ


üþþþþ	z8TestModuleInEditView.test_edit_view_with_custom_intervalN)ré   rê   rë   rý   r   r÷   rY   rø   rm   r  r   r†   r  r   r  rW   rW   rW   rX   rö   
  s    	
rö   c                   @   s$   e Zd ZeZedd„ ƒZdd„ ZdS )Ú(TestModuleInEditViewWithRevisableSnippetc                 C   ó   | j j d¡S ©NÚedit©r÷   Úsnippet_viewsetÚget_url_namerï   rW   rW   rX   rý   …  ó   z1TestModuleInEditViewWithRevisableSnippet.url_namec                 C   s   | j jjdd}| ¡  |S )NÚShodanrÖ   )r÷   rK   rM   rG   )rU   ÚobjrW   rW   rX   rø   ‰  s   z6TestModuleInEditViewWithRevisableSnippet.create_objectN)ré   rê   rë   r   r÷   Úpropertyrý   rø   rW   rW   rW   rX   r  ‚  s
    
r  c                   @   s,   e Zd ZeZedd„ ƒZdd„ Zdd„ ZdS )Ú+TestModuleInEditViewWithNonRevisableSnippetc                 C   r  r  r  rï   rW   rW   rX   rý   ’  r  z4TestModuleInEditViewWithNonRevisableSnippet.url_namec                 C   s   | j jjdddS )NÚGLaDOSz
m0n5t3r!/#)rƒ   Ú	advert_id)r÷   rK   rM   rï   rW   rW   rX   rø   –  s   z9TestModuleInEditViewWithNonRevisableSnippet.create_objectc                 C   s   |  d¡}|  |¡ d S )Nrþ   )r–   r¼   r  rW   rW   rX   r  ™  s   
z?TestModuleInEditViewWithNonRevisableSnippet.assertRevisionInputN)	ré   rê   rë   r   r÷   r  rý   rø   r  rW   rW   rW   rX   r    s    
r  )1ÚdatetimeÚdjango.confr   Údjango.contrib.admin.utilsr   Údjango.contrib.auth.modelsr   r   Ú"django.contrib.contenttypes.modelsr   Údjango.testr   r   Údjango.urlsr	   Údjango.utilsr
   Ú	freezegunr   Úwagtail.admin.modelsr   Úwagtail.modelsr   r   r   r   Úwagtail.test.testapp.modelsr   r   r   r   Úwagtail.test.utilsr   ÚUSE_TZÚ
make_awareÚutcrF   rI   rO   rQ   r•   r    r†   r    rì   rñ   rö   r  r  rW   rW   rW   rX   Ú<module>   sp    ÿÿÿÿÿÿÿ        } ?x