U
    {®Þ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*nŒ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)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   sD  | 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 5 Q R X ttƒ | j
j| jd| _W 5 Q R X 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"   Z
first_nameÚ	last_nameÚvicÚVicÚ	OtheruserZgordonZGordonZ	Thirduser©Úuserú	Test pageú	test-pageú	test page©ÚtitleZ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©ÚselfZpage_content_type© rQ   úq/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/tests/test_editing_sessions.pyÚsetUp7   sf       ÿ   ÿ   ÿ


  ÿüüü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:pingZtestappZinvalidmodel©Úargsé”  )	ÚclientÚpostr	   Ústrr?   rI   rK   ÚassertEqualÚstatus_code©rP   ÚresponserQ   rQ   rR   Ú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©Únamer4   rT   ÚauthÚgrouprU   rW   )r   rF   Úgetr   rH   r+   r   rG   ÚpkrJ   rX   rY   r	   rZ   rI   r[   r\   )rP   ÚeditorsrK   r^   rQ   rQ   rR   Ú$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 )NrT   Úwagtailcorer?   é?B rU   rW   )rX   rY   r	   rK   rI   r[   r\   r]   rQ   rQ   rR   Ú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 )NrT   ri   r?   rU   éÈ   Ú
session_idÚother_sessionsúVic OtheruserF©rm   r+   r7   Ú
is_editingÚrevision_idÚhtmlúol.w-editing-sessions__list lir   r   úCurrently viewing)rX   rY   r	   r?   rI   rK   r[   r\   ÚjsonrM   rL   Ú	isoformatÚget_soupÚselectÚlenÚtextÚassertInÚrefresh_from_dbr7   ÚTIMESTAMP_NOWÚassertFalserq   ©rP   r^   Úresponse_jsonÚsoupÚrendered_sessionsÚsession_textrQ   rQ   rR   Ú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 )NrT   ri   r?   rU   rq   Ú1rl   rm   rn   ro   Frp   rs   rt   r   r   ru   )rX   rY   r	   r?   rI   rK   r[   r\   rv   rM   rL   rw   rx   ry   rz   r{   r|   r}   r7   r~   Ú
assertTruerq   r€   rQ   rQ   rR   Ú,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 5 Q R X | 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 )NrT   ri   r?   rU   rr   rl   rm   rn   ro   Frp   rs   rt   r   r   ru   ú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.) rX   rY   r	   r?   rI   rK   rC   r[   r\   rv   rM   rL   rw   rx   ry   rz   r{   r|   ÚassertNotInr}   r7   r~   r   rq   r   ÚTIMESTAMP_3rB   r:   Ú
select_oneÚassertIsNotNoneÚstringÚdelete)	rP   r^   r   r‚   rƒ   r„   Únew_revisionÚdialog_titleÚdialog_subtitlerQ   rQ   rR   Útest_ping_with_revisionÓ   sð    þ
ûûÿþ



þ
ûûÿþ

ÿ
ÿ
ý

þ
ûûÿþ

ÿ
þÿ
ý
z$TestPingView.test_ping_with_revisionc              
   C   sæ  t tƒ | jj| jd W 5 Q R X tjj| jt	j 
t¡| jjtd}t tƒ | jj| jd}W 5 Q R X | 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*   r4   rT   ri   r?   rU   rr   rl   rm   rn   úGordon ThirduserFrp   ro   rs   rt   é   r   z$Gordon Thirduser saved a new versionru   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   r?   rB   r:   r   rF   rH   r;   r   rG   r   rI   ÚTIMESTAMP_4rX   rY   r	   rK   rC   r[   r\   rv   rw   rM   rL   rx   ry   rz   r{   r|   rŒ   rŽ   r   r   r}   r7   r~   r   rq   )rP   Úthird_sessionÚlatest_revisionr^   r   r‚   rƒ   r„   r“   r”   Úother_session_textrQ   rQ   rR   Ú4test_ping_with_multiple_revisions_since_own_revisiong  s‚    

ü
þ
ûù
÷öþ

ÿ
þÿ
ý

zATestPingView.test_ping_with_multiple_revisions_since_own_revisionc           
   
   C   s˜  t tƒ | j ¡ }W 5 Q R X | 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 )NrT   ri   r?   rU   rr   rl   rm   rn   Ú Frp   ro   rs   rt   r—   r   zSystem saved a new versionru   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   r?   rB   rX   rY   r	   rI   rK   rC   r[   r\   rv   rw   rM   rL   rx   ry   rz   r{   r|   rŒ   rŽ   r   r   r}   r7   r~   r   rq   )
rP   rš   r^   r   r‚   rƒ   r„   r“   r”   r›   rQ   rQ   rR   Ú,test_ping_with_new_revision_that_has_no_user½  sr    
þ
ûú	û÷þ

ÿ
þÿ
ý

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 5 Q R X | 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 )NZalyxr"   ZAlyxZ
Fourthuserr%   ZchellZChellZ	Fifthuserr4   T©r+   r5   r6   r7   rq   r*   rT   ri   r?   rU   rr   rl   rm   rn   r–   Frp   zChell Fifthuserro   zAlyx Fourthuser)r9   r   rF   rH   r;   r   rG   r   r?   rI   rL   rJ   r˜   r   r   rB   rX   rY   r	   rK   rC   r[   r\   rv   rw   rM   r}   r7   r~   r   rq   )	rP   Zfourth_userZ
fifth_userr™   Zfourth_sessionZfifth_sessionr’   r^   r   rQ   rQ   rR   Ú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 )NrT   ri   r?   rj   rU   rl   rm   ©rI   rn   ro   Frp   Zping_urlZrelease_urlú%wagtailadmin_editing_sessions:release)rX   rY   r	   r?   rI   r[   r\   rv   r   rF   re   r+   r7   r~   r   rq   rM   rL   rw   ÚtypeÚcontent_objectr   )rP   r^   r   Únew_session_idrK   rQ   rQ   rR   Ú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 )NrT   ri   r?   rj   rU   rq   r†   rl   rm   r¡   rn   ro   Frp   úBob TestuserTrs   rt   r—   r   z*You have unsaved changes in another windowru   rŠ   r‹   r   r‰   )"rX   rY   r	   r?   rI   r[   r\   rv   r   rF   re   r+   r7   r~   r‡   rq   rM   rL   rw   r£   r¤   r   rK   r}   rJ   r   rx   ry   rz   r{   r|   rŒ   rŽ   ÚassertIsNone)rP   r^   r   r¥   rK   r‚   rƒ   r„   r“   r”   r›   rQ   rQ   rR   Ú'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 5 Q R X | 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 )NrT   ri   r?   rj   rU   rr   rl   rm   r¡   rn   ro   Frp   r*   r§   )rX   rY   r	   r?   rI   rC   r[   r\   rv   r   rF   re   r+   r7   r~   r   rq   rM   rL   rw   r£   r¤   r   rK   r}   rJ   r   r˜   rB   r‘   )rP   r^   r   r¥   rK   r’   rQ   rQ   rR   Ú#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 )NFr`   ra   )rd   Zchange_page©Úcodename)rd   r?   Z
permissionrT   ri   r?   rj   rU   rW   rl   )r+   Úis_superuserÚsaver   rF   re   ÚgroupsÚaddr   Úfilterr‘   rH   rE   r   rX   rY   r	   r?   rI   r[   r\   )rP   rg   r^   rQ   rQ   rR   Ú+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Ú
Moderatorsra   FrT   ri   r?   rU   rl   )r?   Úget_workflowÚstartr:   r   rF   re   Zpage_permissionsÚallr‘   r+   r­   r®   r¯   r°   rX   rY   r	   rI   rK   r[   r\   )rP   ÚworkflowÚ
moderatorsr^   rQ   rQ   rR   Ú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 )NTrT   ri   r?   rU   rl   )r?   Úlockedr:   Ú	locked_byrD   Ú	locked_atr®   rX   rY   r	   rI   rK   r[   r\   r]   rQ   rQ   rR   Ú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{   Fr`   ra   Zchange_advertr«   r4   TrŸ   rT   ÚtestsÚadvertrU   rl   rm   rn   ro   rp   )#r   rF   rH   r+   r­   r®   r   re   r¯   r°   Zpermissionsr   r   r   rG   rf   rJ   r:   rL   r   rD   rX   rY   r	   rZ   rI   r[   r\   rv   rw   r}   r7   r~   r   rq   )rP   Úsnippetrg   rK   Zother_session_2r^   r   rQ   rQ   rR   Ú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¿   Fr`   ra   r4   rT   rÀ   rÁ   rU   rW   )r   rF   rH   r+   r­   r®   r   re   r¯   r°   r   r   rG   rf   rJ   rX   rY   r	   rZ   rI   r[   r\   )rP   rÂ   rg   rK   r^   rQ   rQ   rR   Ú*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*   )r5   r·   r³   ra   Fr4   rT   rÀ   ÚfullfeaturedsnippetrU   rl   )r   rF   rH   rB   r:   r   rG   r   re   r   r´   rµ   r   r+   r­   r®   r¯   r°   r   rf   rJ   rX   rY   r	   rI   r[   r\   )rP   rÂ   Zsnippet_content_typer·   r¸   rK   r^   rQ   rQ   rR   Ú: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¿   Tr4   rT   rÀ   rÅ   rU   rl   )r   rF   rH   rº   r:   r»   rD   r¼   r®   r   r+   r   rG   rf   rJ   rX   rY   r	   rI   r[   r\   )rP   rÂ   rK   r^   rQ   rQ   rR   Ú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 )NrT   ri   r?   rj   rU   é•  )rX   re   r	   r?   rI   r[   r\   ÚassertCountEqualr   rF   r¶   rK   rM   rN   r]   rQ   rQ   rR   Ú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 )
NrT   ri   r?   rU   rq   Úinvalidi  ÚerrorzInvalid data)rX   rY   r	   r?   rI   rK   r[   r\   rv   rÉ   r   rF   r¶   rM   rN   r]   rQ   rQ   rR   Útest_invalid_data›  s    þûþzTestPingView.test_invalid_dataN)Ú__name__Ú
__module__Ú__qualname__rS   r_   rh   rk   r   r~   r…   rˆ   r•   rœ   rž   r    r¦   r©   rª   r²   r¹   r½   rÃ   rÄ   rÆ   rÇ   rÊ   rÍ   rQ   rQ   rQ   rR   r    6   sF   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%   r,   r-   r.   r/   r2   r4   )r8   r+   r   r=   r>   r   r?   r@   r   rF   rG   r   rH   rI   rJ   rK   rD   rN   rO   rQ   rQ   rR   rS   ¬  s,       ÿ
üüzTestCleanup.setUpc                 C   sD   t  ¡  |  t jj| jjd ¡ ¡ |  t jj| j	jd ¡ ¡ d S )Nr¡   )
r   Úcleanupr‡   rF   r±   rK   rI   Úexistsr   rN   ©rP   rQ   rQ   rR   Útest_cleanupÄ  s    zTestCleanup.test_cleanupN)rÎ   rÏ   rÐ   rS   r   r~   rÕ   rQ   rQ   rQ   rR   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*   r,   r-   r.   r/   r2   r'   r(   r)   r4   )r8   r+   r<   r   r=   r>   r   r?   r@   r9   r:   r   rF   rG   r   rH   rI   rJ   rK   rM   rO   rQ   rQ   rR   rS   Ì  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¢   rU   rl   r¡   )rX   rY   r	   rK   rI   r[   r\   r   r   rF   r±   rÓ   r‡   rM   r]   rQ   rQ   rR   Útest_releaseé  s    ÿÿ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¢   rU   rÈ   r¡   )rX   re   r	   rK   rI   r[   r\   r‡   r   rF   r±   rÓ   rM   r]   rQ   rQ   rR   rÊ   ó  s    ÿÿ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×   )rX   rY   r	   rM   rI   r[   r\   r‡   r   rF   r±   rK   rÓ   r]   rQ   rQ   rR   Ú'test_cannot_release_other_users_sessioný  s     ÿÿÿz7TestReleaseView.test_cannot_release_other_users_sessionN)rÎ   rÏ   rÐ   rS   rØ   rÊ   rÙ   rQ   rQ   rQ   rR   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*   r4   )r8   r+   r<   r   rF   rG   Úmodelr5   Úcreate_objectÚobjectr   rH   rf   rJ   rK   rD   rN   rÔ   rQ   rQ   rR   rS     s*       ÿ
üüzTestModuleInEditView.setUpc                 C   s.   t  ¡ }tdddd}|j|d | ¡  |S )NZFooZfooÚbarr/   r2   )r   r=   r   r@   rB   )rP   r>   r?   rQ   rQ   rR   rÜ   $  s
    z"TestModuleInEditView.create_objectc                 C   s    | j  t| jt| jjƒfd¡S )NrU   )rX   re   r	   Úurl_namer   rÝ   rf   rÔ   rQ   rQ   rR   re   +  s    zTestModuleInEditView.getc                 C   sF   |  d¡}|  |¡ |  | d¡d¡ |  | d¡t| jjjƒ¡ d S )Núinput[name="revision_id"]r£   ZhiddenÚvalue)rŽ   r   r[   re   rZ   rÝ   rš   rI   ©rP   r‚   Zrevision_inputrQ   rQ   rR   Ú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—   rl   r¡   ©r5   r6   ú"form[data-controller~="w-session"]údata-w-session-interval-valueZ10000)r[   r   rF   r¶   Úcountre   r\   r‡   r±   rK   rI   rÓ   r   rN   Úexcluder5   rÝ   rf   r+   rx   r1   rŽ   r   rã   ©rP   r^   Znew_sessionr‚   ÚmodulerQ   rQ   rR   Ú$test_edit_view_with_default_interval7  s     þ

z9TestModuleInEditView.test_edit_view_with_default_intervali0u  )Z%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—   rl   r¡   rä   rå   zdata-w-swap-src-valuerT   rU   zdata-w-action-url-valuer¢   ræ   Z30000)r[   r   rF   r¶   rç   re   r\   r‡   r±   rK   rI   rÓ   r   rN   rè   r5   rÝ   rf   r+   rx   r1   rŽ   r   r	   Z	app_labelrÛ   r   rã   ré   rQ   rQ   rR   Ú#test_edit_view_with_custom_intervalR  sD    þ


üþþþþ	z8TestModuleInEditView.test_edit_view_with_custom_intervalN)rÎ   rÏ   rÐ   rß   r   rÛ   rS   rÜ   re   rã   r   r~   rë   r   rì   rQ   rQ   rQ   rR   rÚ   
  s   	
rÚ   c                   @   s$   e Zd ZeZedd„ ƒZdd„ ZdS )Ú(TestModuleInEditViewWithRevisableSnippetc                 C   s   | j j d¡S ©NZedit©rÛ   Zsnippet_viewsetZget_url_namerÔ   rQ   rQ   rR   rß   …  s    z1TestModuleInEditViewWithRevisableSnippet.url_namec                 C   s   | j jjdd}| ¡  |S )NZShodanr¿   )rÛ   rF   rH   rB   )rP   ÚobjrQ   rQ   rR   rÜ   ‰  s    z6TestModuleInEditViewWithRevisableSnippet.create_objectN)rÎ   rÏ   rÐ   r   rÛ   Úpropertyrß   rÜ   rQ   rQ   rQ   rR   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   s   | j j d¡S rî   rï   rÔ   rQ   rQ   rR   rß   ’  s    z4TestModuleInEditViewWithNonRevisableSnippet.url_namec                 C   s   | j jjdddS )NZGLaDOSz
m0n5t3r!/#)r{   Z	advert_id)rÛ   rF   rH   rÔ   rQ   rQ   rR   rÜ   –  s    z9TestModuleInEditViewWithNonRevisableSnippet.create_objectc                 C   s   |  d¡}|  |¡ d S )Nrà   )rŽ   r¨   râ   rQ   rQ   rR   rã   ™  s    
z?TestModuleInEditViewWithNonRevisableSnippet.assertRevisionInputN)	rÎ   rÏ   rÐ   r   rÛ   rñ   rß   rÜ   rã   rQ   rQ   rQ   rR   rò     s
   
rò   )1ÚdatetimeZdjango.confr   Zdjango.contrib.admin.utilsr   Zdjango.contrib.auth.modelsr   r   Z"django.contrib.contenttypes.modelsr   Zdjango.testr   r   Zdjango.urlsr	   Zdjango.utilsr
   Z	freezegunr   Zwagtail.admin.modelsr   Zwagtail.modelsr   r   r   r   Zwagtail.test.testapp.modelsr   r   r   r   Zwagtail.test.utilsr   ZUSE_TZZ
make_awareÚutcrA   rD   rJ   rL   r   r˜   r~   r    rÑ   rÖ   rÚ   rí   rò   rQ   rQ   rQ   rR   Ú<module>   s|    ÿ ÿ ÿ ÿ ÿ ÿ ÿ        } ?x