o
    h                     @   s~   d dl Z 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e d	G d
d de
eZdS )    N)RequestFactoryTestCaseoverride_settings)reverse)WhatsNewInWagtailVersionPanel)WagtailTestUtils)UserProfilec                   @   sd   e Zd Zedd Zdd Zdd Zeddd	d
 Zdd Z	edddd Z
dd Zdd ZdS )!TestWhatsNewInWagtailVersionPanelc                 C   s<   t  | _| j | _t | _| jdd| _t	| j| _
d S )Ntester)username)r   panelget_dismissible_iddismissible_idr   request_factorycreate_useruserr   get_for_userprofile)cls r   b/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/tests/test_whats_new.pysetUpTestData   s
   z/TestWhatsNewInWagtailVersionPanel.setUpTestDatac                 C   s   | j d}| j|_d|iS )N/request)r   getr   )selfr   r   r   r   get_parent_context   s   z4TestWhatsNewInWagtailVersionPanel.get_parent_contextc                 C      |  | j  d S N)
assertTruer   get_whats_new_banner_settingr   r   r   r   )test_get_whats_new_banner_setting_default   s   zKTestWhatsNewInWagtailVersionPanel.test_get_whats_new_banner_setting_defaultFWAGTAIL_ENABLE_WHATS_NEW_BANNERc                 C   r   r   )assertFalser   r    r!   r   r   r   'test_get_whats_new_banner_setting_false   s   zITestWhatsNewInWagtailVersionPanel.test_get_whats_new_banner_setting_falsec                 C   sJ   | j |  }ddd| j dg}|D ]}| || q| d| d S Ndata-controller="w-dismissible"=data-w-dismissible-dismissed-class="w-dismissible--dismissed"data-w-dismissible-id-value=""!Things in Wagtail 4 have changed!)r   render_htmlr   r   assertInr   resultexpected_data_attrs	data_attrr   r   r   test_render_html_user_initial    s   z?TestWhatsNewInWagtailVersionPanel.test_render_html_user_initialc                 C   s    | j |  }| |d d S )N )r   r-   r   assertEqualr   r0   r   r   r   test_render_html_setting_false+   s   z@TestWhatsNewInWagtailVersionPanel.test_render_html_setting_falsec                 C   s^   | j   | j  | j|  }ddd| j dg}|D ]}| || q| d| d S r'   )	r   deleter   refresh_from_dbr   r-   r   r   r.   r/   r   r   r    test_render_html_user_no_profile0   s   

zBTestWhatsNewInWagtailVersionPanel.test_render_html_user_no_profilec                 C   s>   d| j j| j< | j jdgd | j|  }| |d d S )NTdismissiblesupdate_fieldsr4   )r   r;   r   saver   r-   r   r5   r6   r   r   r   test_render_html_user_dismissed=   s   zATestWhatsNewInWagtailVersionPanel.test_render_html_user_dismissedN)__name__
__module____qualname__classmethodr   r   r"   r   r&   r3   r7   r:   r?   r   r   r   r   r	      s    


r	   z"Wagtail 4 banner has been removed.c                   @   sJ   e Zd ZdZdd Zdd Zdd Zedd	d
d Zdd Z	dd Z
dS )TestWhatsNewOnDashboardzHTest 'What's New In Wagtail' banner rendered by `wagtailadmin_home` viewc                 C   s(   |   | _t| j| _t  | _d S r   )loginr   r   r   r   r   r   r   r!   r   r   r   setUpH   s   
zTestWhatsNewOnDashboard.setUpc                 C   s   | j tdS )Nwagtailadmin_home)clientr   r   r!   r   r   r   r   M   s   zTestWhatsNewOnDashboard.getc                 C   N   |   }|jd}ddd| j dg}|D ]}| || q| |d d S Nutf-8r(   r)   r*   r+   r,   )r   contentdecoder   r.   assertContainsr   responsehtml_contentr1   r2   r   r   r   test_get_enabled_initialP   s   z0TestWhatsNewOnDashboard.test_get_enabled_initialFr#   c                 C   rI   rJ   )r   rL   rM   r   assertNotInassertNotContainsrO   r   r   r   test_get_disabled_initial\   s   z1TestWhatsNewOnDashboard.test_get_disabled_initialc                 C   sb   | j   | j  |  }|jd}ddd| j dg}|D ]}| || q | 	|d d S rJ   )
r   r8   r   r9   r   rL   rM   r   r.   rN   rO   r   r   r   r:   i   s   

z8TestWhatsNewOnDashboard.test_render_html_user_no_profilec                 C   sl   d| j j| j< | j jdgd |  }|jd}ddd| j dg}|D ]}| || q%| |d	 d S )
NTr;   r<   rK   r(   r)   r*   r+   r,   )	r   r;   r   r>   r   rL   rM   rS   rT   rO   r   r   r   test_get_enabled_dismissedw   s   z2TestWhatsNewOnDashboard.test_get_enabled_dismissedN)r@   rA   rB   __doc__rF   r   rR   r   rU   r:   rV   r   r   r   r   rD   D   s    
rD   )unittestdjango.testr   r   r   django.urlsr   wagtail.admin.views.homer   wagtail.test.utilsr   wagtail.users.modelsr   r	   skiprD   r   r   r   r   <module>   s    9