o
    hf                     @   sZ   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd de	eZdS )	    )RequestFactoryTestCaseoverride_settings)__version__)UpgradeNotificationPanel)WagtailTestUtils)UserProfilec                   @   s   e Zd ZdZdZdZdZdZedd Z	dd	 Z
ed
ddd Zedddd Zedddd Zdd Zed
ddd Zedddd Zedddd Zdd Zdd Zed
dd d! Zd"d# Zd$d% Zd&S )'TestUpgradeNotificationPanelzdata-w-upgrade-lts-only-valuez$data-w-upgrade-current-version-valuezdata-w-dismissible-id-valuezdata-w-dismissible-value-paramlast_upgrade_checkc                 C   s>   t  | _t | _| jdd| _| jdd| _| jd| _	d S )Ntester)usernamesupertester/)
r   panelr   request_factorycreate_userusercreate_superuser	superusergetrequest)cls r   m/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/tests/test_upgrade_notification.pysetUpTestData   s
   z*TestUpgradeNotificationPanel.setUpTestDatac                 C      |  | j  d S N)
assertTruer   get_upgrade_check_settingselfr   r   r   &test_get_upgrade_check_setting_default      zCTestUpgradeNotificationPanel.test_get_upgrade_check_setting_defaultFWAGTAIL_ENABLE_UPDATE_CHECKc                 C   r   r   )assertFalser   r   r   r   r   r   $test_get_upgrade_check_setting_false      zATestUpgradeNotificationPanel.test_get_upgrade_check_setting_falseLTSc                 C      |  | j d d S )Nr(   assertEqualr   r   r   r   r   r   "test_get_upgrade_check_setting_LTS      z?TestUpgradeNotificationPanel.test_get_upgrade_check_setting_LTSltsc                 C   r)   )Nr.   r*   r   r   r   r   "test_get_upgrade_check_setting_lts#   r-   z?TestUpgradeNotificationPanel.test_get_upgrade_check_setting_ltsc                 C   r   r   r%   r   upgrade_check_lts_onlyr   r   r   r   #test_upgrade_check_lts_only_default'   r"   z@TestUpgradeNotificationPanel.test_upgrade_check_lts_only_defaultc                 C   r   r   r0   r   r   r   r   (test_upgrade_check_lts_only_setting_true*   r'   zETestUpgradeNotificationPanel.test_upgrade_check_lts_only_setting_truec                 C   r   r   r   r   r1   r   r   r   r   'test_upgrade_check_lts_only_setting_LTS.   r'   zDTestUpgradeNotificationPanel.test_upgrade_check_lts_only_setting_LTSc                 C   r   r   r4   r   r   r   r   'test_upgrade_check_lts_only_setting_lts2   r'   zDTestUpgradeNotificationPanel.test_upgrade_check_lts_only_setting_ltsc                 C   s0   | j | j_ d| ji}| j|}| |d d S Nr    )r   r   r   render_htmlr+   r    parent_contextresultr   r   r   test_render_html_normal_user6   s   

z9TestUpgradeNotificationPanel.test_render_html_normal_userc                 C   s   | j | j_d| ji}| j|}| |}|d}| | | t	|d 
 ddh | || j | || j| j |d}| | | |dd | || j d S )	Nr   [data-controller]data-controller	w-upgradew-dismissible$[data-action='w-dismissible#toggle']
aria-labelClose)r   r   r   r   r9   get_soup
select_oneassertIsNotNoner+   setsplitr%   r   ATTR_UPGRADE_CHECK_LTSATTR_DISMISSIBLE_IDDISMISSIBLE_IDassertIsNoneATTR_LAST_DISMISSED_VALUE)r    r;   r<   soup
controllertoggler   r   r   test_render_html_superuser>   s&   







z7TestUpgradeNotificationPanel.test_render_html_superuserc                 C   s0   | j | j_d| ji}| j|}| |d d S r7   )r   r   r   r   r9   r+   r:   r   r   r   test_render_html_setting_falseT   s   

z;TestUpgradeNotificationPanel.test_render_html_setting_falsec              
   C   s(  | j | j_d| ji}ddg}|D ]}| j|dq t|d | j|}W d    n1 s/w   Y  | |}|d}| 	| | 
t|d  dd	h | 
|| jd
 | 
|| j| j |d}| 	| | 
|dd | || j W d    n1 sw   Y  qd S )Nr   r.   r(   )settingr#   r>   r?   r@   rA   truerB   rC   rD   )r   r   r   subTestr   r   r9   rE   rF   rG   r+   rH   rI   r   rJ   rK   rL   rM   rN   )r    r;   setting_valuesvaluer<   rO   rP   rQ   r   r   r   test_render_html_setting_lts]   s<   








z9TestUpgradeNotificationPanel.test_render_html_setting_ltsc                 C   s   t | j}|j| jdi |  | j| j_d| ji}| j	
|}| |}|d}| | | || j| j | || jt |d}| | | |dd | || jd d S )Nz6.2.2r   z+[data-controller='w-upgrade w-dismissible']rB   rC   rD   )r   get_for_userr   dismissiblesupdaterL   saver   r   r   r9   rE   rF   rG   r+   r   rK   ATTR_CURRENT_VERSIONr   rN   )r    profiler;   r<   rO   rP   rQ   r   r   r   "test_render_html_dismissed_versionz   s0   









z?TestUpgradeNotificationPanel.test_render_html_dismissed_versionN)__name__
__module____qualname__rJ   r^   rK   rN   rL   classmethodr   r!   r   r&   r,   r/   r2   r3   r5   r6   r=   rR   rS   rY   r`   r   r   r   r   r	   	   s8    







r	   N)django.testr   r   r   wagtailr   wagtail.admin.views.homer   wagtail.test.utilsr   wagtail.users.modelsr   r	   r   r   r   r   <module>   s    